第四章 MATLAB的数值计算功能(内容参考)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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];