matlab上机实验指导书(4)

2018-12-12 22:49

矩阵和标量相乘是矩阵中的每个元素与此标量相乘。

3. 矩阵除法

在MATLAB中有两种矩阵除法运算:\\和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则A\\B和B/A运算可以实现。A\\B等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。对于矩阵运算,一般A\\B≠B/A。

4. 矩阵的乘方

一个矩阵的乘方运算可以表示成A^x,要求A为方阵,x为标量。例如: A=[1,2,3;4,5,6;7,8,0]; A^2 ans=

30 36 15 66 81 42 39 54 69 显然,A^2即A*A。

5. MATLAB的常用矩阵运算函数 (1)size()函数

size()函数用于计算矩阵的行数和列数,其调用格式为: [m,n]=size(a) 将矩阵a的行数赋值给m、列数赋值给n 例如,运行如下命令: a=[1 3 5 7 9

2 4 6 8 10];

[m,n]=size(a) 运行结果为: m= 2 n= 5

(2)length()函数

length()函数用于计算矩阵的长度(列数),调用格式为: a=length(b) 将矩阵b的列数赋值给变量a

例如,运行如下命令: b=ones(1,100); a=length(b) 运行结果为: a= 100

14

3. prod()函数

prod()函数用于实现矩阵元素的求积运算,其调用格式为: ? prod(a) 若a为向量,则该调用格式将计算出向量a所有元素之积。若a为矩阵,则该调用格式将产生一行向量,其元素分别为矩阵a的各列元素之积。

? prod(a,k) 该调用格式将对矩阵a按k定义的方向进行求积运算,若k=1则按列的方向求积,若k=2则按行的方向求积。

例如,运行如下命令: b=[1 1 1 1 2 2 2 2

3 3 3 3]; p1=prod(b) p2=prod(b,2) 运行结果为: p1=

6 6 6 6 p2= 1 16 81

4. sum()函数

sum()函数用于实现矩阵元素的求和运算,其调用格式与prod()函数类似。 5. max()函数

max()函数用于求出矩阵元素的最大值,其调用格式为:

? max(a) 若a为向量,则该调用格式将求出向量a所有元素中的最大值。若a为矩阵,该调用格式将产生一行向量,其元素分别为矩阵a的各列元素的最大值。

? max(a,k) 该调用格式将对矩阵a按k定义的方向求最大值,若k=1则按列的方向求最大值,若k=2则按行的方向求最大值。

另外,与max()相类似的函数还有min()(求最小值)和mean()(求平均值)函数,它们的调用格式与max函数完全相同。

(6)fliplr()函数

fliplr()函数用于实现矩阵的反折运算,即调用格式为: a=fliplr(b)

该命令将产生维数与矩阵b相同的矩阵a,其元素是由矩阵b的元素按列的方向进行反折而得。例如,执行:

b=0:10 a=fliplr(b) 则结果为: b=

15

0 1 2 3 4 5 6 7 8 9 10 a=

10 9 8 7 6 5 4 3 2 1 0

2.6 数组运算

在MATLAB中,数组和矩阵是两个完全不同的概念,它们遵循着不同的运算规则。MATLAB中数组运算符由矩阵运算符前面加一点“.”来表示,如.*、./、.^等。

1. 数组的加和减

数组的加减运算与矩阵的加减运算相同。

2. 数组的乘和除

数组的乘法用符号.*表示。如果A、B两数组具有相同的维数,则A.*B表示A和B单个元素之间的对应相乘。例如:

x=[1 2 3];y=[4 5 6]; z=x.*y z=

4 10 18

数组的除法用符号./或.\\表示。如果A、B两数组具有相同的维数,则A./B表示A数组的元素除以B数组的对应元素。B.\\A等价于A./B。例如:

x=[1 2 3];y=[4 5 6]; z1=x./y z2=y.\\x 输出分别为:

z1=

0.2500 0.4000 0.5000 z2=

0.2500 0.4000 0.5000 3. 数组的乘方

数组的乘方用符号“.^”表示。若两个数组的维数一致,则两数组对应元素进行乘方运算,例如:

x=[1 2 3];y=[4 5 6]; z=x.^y z=

1 32 729

指数可以是标量,底也可以是标量。例如: x=[1 2 3]; z=x.^2

16

z=

1 4 9

x=[1 2 3];y=[4 5 6]; z=2.^[x y] z=

2 4 8 16 32 64

2.7 多项式及其运算

MATLAB提供了标准多项式的常用函数,包括求根、相乘、相除等。 1.多项式的表达与创建

MATLAB采用将多项式系数按降幂次序排列形成的行向量来表征一多项式。设多项式为:

A(S)=anSn+an-1Sn-1+?+a1S+a0

则表征该多项式的行向量为:P=[an an-1 ? a1 a0]。

因此,在MATLAB中,创建多项式即可用创建行向量的方法,直接输入按顺序排列的多项式系数即可。例如,输入语句:

A=[2 2 1 1];

即表示创建多项式2S3+2S2+S+1, 并赋值给变量A。

2.多项式求根

MATLAB提供的roots函数用于求多项式的全部根。其调用格式为:X=roots(A)。 例:试用roots函数求多项式x4+8x3-10的根。 其MATLAB命令为: A=[1 8 0 0 –10]; X=roots(A) X=

-8.0194

-0.5075+0.9736i -0.5075-0.9736i 1.0344

3. 由指定根求多项式

函数poly用于由指定根求多项式系数向量,调用格式为: A=poly(p)

其中p为多项式根(行或列向量表示),A为返回的多项式系数(行向量表示)。例如

p=[2 1]; %指定多项式的根为2和1 poly(p) %求满足指定根的多项式 ans=

17

1 -3 2

可见roots()与poly()互为逆运算。

4.多项式相乘(卷积)

函数conv()用于求两个多项式的乘积多项式,其调用格式为: R=conv(A,B)

其中A、B分别为表征两个多项式的行向量,R为返回的乘积多项式的系数向量(按降幂次序排列)。例如:

A=[1 3 2]; %创建多项式S2+3S+2 B=[1 2 1]; %创建多项式S2+2S+1

R=conv(A,B) %求多项式A与B的乘积多项式 R=

1 5 9 7 2

5.多项式相除(解卷积)

函数deconv()用于进行两个多项式的相除运算,它是相乘运算(conv)的逆运算,其调用格式为:

[B,t]=deconv(R,A)

其中R为被除多项式,A为除数多项式,B为商多项式,t为余多项式。即多项式R除以多项式A后得商多项式B和余多项式t。例如:

R=[1 5 9 7 2]; %创建多项式s4+5s3+9s2+7s+2 A=[1 2 3]; %创建多项式s2+2s+3

[B,t]=deconv(R,A) %求多项式R除以多项式A后的商多项式B和余多式

t

B=

1 3 0 t=

0 0 0 -2 2

若余多项式系数向量为零向量,则表示R能被A除尽。

18


matlab上机实验指导书(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:江西省抚州市南城一中、崇仁一中联考2017-2018学年高一下学期期

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: