第四章 MATLAB的数值计算功能(内容参考)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第四章MATLAB 的数值计算功能

一.多项式`

1.多项式的表达与创建

Matlab用矢量表达多项式系数,元素按降幂排列:

P(x)=a0x n+a1x n-1+a2x n-2…a n-1x+a0

其系数矢量为:P=[a0 a1… a n-1 a n]

如将根矢量表示为:

ar=[ ar1 ar2… ar n]

则根矢量与系数矢量之间关系为:

(x-ar1)(x- ar2) … (x- ar n)= a0x n+a1x n-1+a2x n-2…a n-1x+a0多项式系数矢量可通过调用函数p=poly(ar)产生

例1:由根矢量创建多项式。将多项式(x-6)(x-3)(x-8)表示为系数形式a=[6 3 8]

pa=poly(a) %求系数矢量

ppa=poly2sym(pa) %以符号形式表示原多项式

ezplot(ppa,[-50,50])

pa =

1 -17 90 -144

ppa =

x^3-17*x^2+90*x-144

注:(1)根矢量元素为n ,则多项式系数矢量元素为n+1;

2)函数poly2sym(pa) 把多项式系数矢量表达成符号形式的多项式,缺省情况下自变量符号为x,可以指定自变量。

(3)使用简单绘图函数可以直接绘制符号形式多项式的曲线。

例2:求三阶方阵A的特征多项式系数,并转换为多项式形式。

a=[6 3 8;7 5 6; 1 3 5]

Pa=poly(a) %求矩阵的特征多项式系数矢量

Ppa=poly2sym(pa)

Pa =

1.0000 -16.0000 38.0000 -83.0000

Ppa =

x^3-17*x^2+90*x-144

注:n 阶方阵的特征多项式系数矢量一定是n +1阶的。

例3:由给定复数根矢量求多项式系数矢量。

r=[-0.5 -0.3+0.4i -0.3-0.4i];

p=poly(r)

pr=real(p)

ppr=poly2sym(pr)

p =

1.0000 1.1000 0.5500 0.1250

pr =

1.0000 1.1000 0.5500 0.1250

ppr =

x^3+11/10*x^2+11/20*x+1/8

注:(1)要形成实系数多项式,根矢量中的复数根必须共轭成对;

(2)含复数根的根矢量所创建的多项式系数矢量中,可能带有很小的虚部,此时可采用取实部的命令(real)把虚部滤掉。

例4:将多项式的系数表示形式转换为根表现形式,poly和roots互为逆函数。

求x3-6x2-72x-27的根

a=[1 -6 -72 -27]

r=roots(a)

r =

12.1229

-5.7345

-0.3884

MATLAB约定,多项式系数矢量用行矢量表示,根矢量用列矢量表示。>>

1. 多项式的乘除运算

多项式乘法用函数conv(a,b)实现,除法用函数deconv(a,b)实现。

例1:a(s)=s2+2s+3, b(s)=4s2+5s+6,计算a(s)与b(s)的乘积。

a=[1 2 3]; b=[4 5 6];

c=conv(a,b)

cs=poly2sym(c,’s’)

c =

4 13 28 27 18

cs =

4*s^4+13*s^3+28*s^2+27*s+18

例2:展开(s2+2s+2)(s+4)(s+1) (多个多项式相乘)

c=conv([1,2,2],conv([1,4],[1,1]))

cs=poly2sym(c,’s’)(指定变量为s)

c =

1 7 16 18 8

cs =

s^4+7*s^3+16*s^2+18*s+8

例2:求多项式s^4+7*s^3+16*s^2+18*s+8分别被(s+4),(s+3)除后的结果。

c=[1 7 16 18 8];

[q1,r1]=deconv(c,[1,4]) q—商矢量,r—余数矢量

[q2,r2]=deconv(c,[1,3])

cc=conv(q2,[1,3]) 对除(s+3)结果检验

test=((c-r2)==cc)

q1 =

1 3 4 2

r1 =

0 0 0 0 0

q2 =

1 4 4 6

r2 =

0 0 0 0 -10

cc =

1 7 16 18 18

test =

1 1 1 1 1

1. 其他常用的多项式运算命令

pa=polyval(p,s) 按数组运算规则计算给定s 时多项式p 的值。 pm=polyvalm(p,s) 按矩阵运算规则计算给定s 时多项式p 的值。

[r,p,k]=residue(b,a) 部分分式展开,b,a 分别是分子分母多项式系数

矢量,r,p,k 分别是留数、极点和直项矢量

p=polyfit(x,y,n) 用n 阶多项式拟合x ,y 矢量给定的数据。 polyder(p) 多项式微分。

注: 对于多项式b(s)与不重根的n 阶多项式a(s)之比,其部分分式展开为:)()()(2211s k p s r L p s r p s r s a s b n n +-++-+-=

式中:p 1,p 2,…,p n 称为极点,r 1,r 2,…,r n 称为留数,k(s)称为直项,假如a(s)含有m 重根p j ,则相应部分应写成:

m j m j j j j j

p s r L p s r p s r )()(121-++-+--++

例3:对 (3x 4+2x 3+5x 2+4x+6)/(x 5+3x 4+4x 3+2x 2+7x+2) 做部分分式展开

a=[1 3 4 2 7 2];

相关文档
最新文档