数学建模ch02.docx

上传人:b****5 文档编号:3150856 上传时间:2022-11-18 格式:DOCX 页数:33 大小:93.96KB
下载 相关 举报
数学建模ch02.docx_第1页
第1页 / 共33页
数学建模ch02.docx_第2页
第2页 / 共33页
数学建模ch02.docx_第3页
第3页 / 共33页
数学建模ch02.docx_第4页
第4页 / 共33页
数学建模ch02.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

数学建模ch02.docx

《数学建模ch02.docx》由会员分享,可在线阅读,更多相关《数学建模ch02.docx(33页珍藏版)》请在冰豆网上搜索。

数学建模ch02.docx

数学建模ch02

第二章数值数组及其运算

数值数组(NumericArray)和数组运算(ArrayOperations)始终是MATLAB的核心内容。

自MATLAB5.x版起,由于其“面向对象”的特征,这种数值数组(以下简称为数组)成为了MATALB最重要的一种内建数据类型(Built-inDataType),而数组运算就是定义在这种数据结构上的方法(Method)。

本章系统阐述:

一、二维数值数组的创建、寻访;数组运算和矩阵运算的区别;实现数组运算的基本函数;多项式的表达、创建和操作;常用标准数组生成函数和数组构作技法;高维数组的创建、寻访和操作;非数NaN、“空”数组概念和应用;关系和逻辑操作。

顺便指出:

(1)本章所涉内容和方法,不仅使用于数值数组,而且也将部分地延伸使用于在其他数据结构中。

(2)MATLAB5.x和6.x版在本章内容上的差异极微。

(3)MATLAB6.5版新增的两种逻辑操作,在第2.13.2节给予介绍。

.1引导

【例2.1-1】绘制函数

时的曲线。

x=0:

0.1:

1

y=x.*exp(-x)

plot(x,y),xlabel('x'),ylabel('y'),title('y=x*exp(-x)')

x=

Columns1through7

00.10000.20000.30000.40000.50000.6000

Columns8through11

0.70000.80000.90001.0000

y=

Columns1through7

00.09050.16370.22220.26810.30330.3293

Columns8through11

0.34760.35950.36590.3679

图2.1-1

.2一维数组的创建和寻访

.2.1一维数组的创建

.2.2一维数组的子数组寻访和赋值

【例2.2.2-1】子数组的寻访(Address)。

rand('state',0)

x=rand(1,5)

x=

0.95010.23110.60680.48600.8913

x(3)

ans=

0.6068

x([125])

ans=

0.95010.23110.8913

x(1:

3)

ans=

0.95010.23110.6068

x(3:

end)%

ans=

0.60680.48600.8913

x(3:

-1:

1)%

ans=

0.60680.23110.9501

x(find(x>0.5))

ans=

0.95010.60680.8913

x([12344321])

ans=

Columns1through7

0.95010.23110.60680.48600.48600.60680.2311

Column8

0.9501

【例2.2.2-2】子数组的赋值(Assign)。

x(3)=0

x=

0.95010.231100.48600.8913

x([14])=[11]

x=

1.00000.231101.00000.8913

.3二维数组的创建

.3.1直接输入法

【例2.3.1-1】在MATLAB环境下,用下面三条指令创建二维数组C。

a=2.7358;b=33/79;

C=[1,2*a+i*b,b*sqrt(a);sin(pi/4),a+5*b,3.5+i]

C=

1.00005.4716+0.4177i0.6909

0.70714.82443.5000+1.0000i

【例2.3.1-2】复数数组的另一种输入方式。

M_r=[1,2,3;4,5,6],M_i=[11,12,13;14,15,16]

CN=M_r+i*M_i

M_r=

123

456

M_i=

111213

141516

CN=

1.0000+11.0000i2.0000+12.0000i3.0000+13.0000i

4.0000+14.0000i5.0000+15.0000i6.0000+16.0000i

.3.2利用M文件创建和保存数组

【例2.3.2-1】创建和保存数组AM的MyMatrix.m文件。

(1)

%MyMatrix.mCreationandpreservationofmatrixAM

AM=[101,102,103,104,105,106,107,108,109;...

201,202,203,204,205,206,207,208,209;...

301,302,303,304,305,306,307,308,309];

(2)

(3)

.4二维数组元素的标识

.4.1“全下标”标识

.4.2“单下标”标识

.4.3“逻辑1”标识

【例2.4.3-1】找出数组

中所有绝对值大于3的元素。

A=zeros(2,5);

A(:

)=-4:

5

L=abs(A)>3

islogical(L)

X=A(L)

A=

-4-2024

-3-1135

L=

10001

00001

ans=

1

X=

-4

4

5

【例2.4.3-2】演示逻辑数组与一般双精度数值数组的关系和区别。

(本例在例2.4.3-1基础上进行)。

(1)

Num=[1,0,0,0,1;0,0,0,0,1];

N_L=Num==L

c_N=class(Num)

c_L=class(L)

N_L=

11111

11111

c_N=

double

c_L=

double

(2)

islogical(Num)

Y=A(Num)

ans=

0

?

?

?

Indexintomatrixisnegativeorzero.Seereleasenotesonchangesto

logicalindices.

.5二维数组的子数组寻访和赋值

【例2.5-1】不同赋值方式示例。

A=zeros(2,4)

A=

0000

0000

A(:

)=1:

8

A=

1357

2468

s=[235];

A(s)

Sa=[102030]'

A(s)=Sa

ans=

235

Sa=

10

20

30

A=

120307

10468

A(:

[23])=ones

(2)

A=

1117

10118

.6执行数组运算的常用函数

.6.1函数数组运算规则的定义:

.6.2执行数组运算的常用函数

【例2.6.2-1】演示pow2的数组运算性质。

A=[1:

4;5:

8]

A=

1234

5678

pow2(A)

ans=

24816

3264128256

.7数组运算和矩阵运算

.7.1数组运算和矩阵运算指令对照汇总

【例2.7.1-1】两种不同转置的比较

clear;A=zeros(2,3);

A(:

)=1:

6;

A=A*(1+i)

A_A=A.'

A_M=A'

A=

1.0000+1.0000i3.0000+3.0000i5.0000+5.0000i

2.0000+2.0000i4.0000+4.0000i6.0000+6.0000i

A_A=

1.0000+1.0000i2.0000+2.0000i

3.0000+3.0000i4.0000+4.0000i

5.0000+5.0000i6.0000+6.0000i

A_M=

1.0000-1.0000i2.0000-2.0000i

3.0000-3.0000i4.0000-4.0000i

5.0000-5.0000i6.0000-6.0000i

.8多项式的表达方式及其操作

.8.1多项式的表达和创建

10一多项式表达方式的约定

10二多项式行向量的创建方法

【例2.8.1.2-1】求3阶方阵A的特征多项式。

A=[111213;141516;171819];

PA=poly(A)

PPA=poly2str(PA,'s')

PA=

1.0000-45.0000-18.00000.0000

PPA=

s^3-45s^2-18s+1.8303e-014

【例2.8.1.2-2】由给定根向量求多项式系数向量。

R=[-0.5,-0.3+0.4*i,-0.3-0.4*i];

P=poly(R)

PR=real(P)

PPR=poly2str(PR,'x')

P=

1.00001.10000.55000.1250

PR=

1.00001.10000.55000.1250

PPR=

x^3+1.1x^2+0.55x+0.125

.8.2多项式运算函数

【例2.8.2-1】求

的“商”及“余”多项式。

p1=conv([1,0,2],conv([1,4],[1,1]));

p2=[1011];

[q,r]=deconv(p1,p2);

cq='商多项式为';cr='余多项式为';

disp([cq,poly2str(q,'s')]),disp([cr,poly2str(r,'s')])

商多项式为s+5

余多项式为5s^2+4s+3

【例2.8.2-2】两种多项式求值指令的差别。

S=pascal(4)

P=poly(S);

PP=poly2str(P,'s')

PA=polyval(P,S)

PM=polyvalm(P,S)

S=

1111

1234

13610

141020

PP=

s^4-29s^3+72s^2-29s+1

PA=

1.0e+004*

0.00160.00160.00160.0016

0.00160.0015-0.0140-0.0563

0.0016-0.0140-0.2549-1.2089

0.0016-0.0563-1.2089-4.3779

PM=

1.0e-010*

0.00160.00330.00900.0205

0.00450.01010.02860.0697

0.00950.02100.06530.1596

0.01630.03870.12260.3019

【例2.8.2-3】部分分式展开。

a=[1,3,4,2,7,2];

b=[3,2,5,4,6];

[r,s,k]=residue(b,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 少儿英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1