- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章 数值运算
2
6.1 多项式
多项式是形如p(x)=a0xn+a1xn-1+…+an-1x+an的式子,在MATLAB中,多项式用行向量表示P=[a0 a1…an-1 an]。
6.1.1 多项式的创建
1. 直接输入系数
直接输入向量,MATLAB将按降幂自动将向量的元素分配给多项式各项的系数,该向量可以是行向量或列向量。
P=[3 5 0 1 0 12];
y=poly2sym(P)
y =
3*x^5+5*x^4+x^2+12
(注意缺项补零)
3
2. 由多项式的根逆推多项式
若已知某多项式的根,可用poly函数反推出与其相对应的多项式。
root=[-4 -2+2i -2-2i 5]
root =
-4.0000 -2.0000+2.0000i -2.0000-2.0000i 5.0000
p=poly(root)
p =
1 3 -16 -88 -160
poly2sym(p)
ans =
x^4+3*x^3-16*x^2-88*x-160
4
6.1.2 多项式的运算
1. 多项式的求值
(1)代数多项式求值:polyval函数
polyval(P,X)计算向量P为系数的多项式在点X的值,如果X是矩阵或者向量,该命令对X的每个元素都进行计算。
(2)矩阵多项式求值:polyvalm函数
Y=polyvalm(P,X)计算向量P为系数的多项式在矩阵X的值,向量X必须为方阵。
Y=P(1)×Xn+P(2)×Xn-1+…+P(N)×X+P(N+1)×I
5
p=[1 2 3];
poly2sym(p)
ans =
x^2+2*x+3
a=[1 2;3 4];
polyval(p,2)
ans =
11
polyval(p,a)
ans =
6 11
18 27
polyvalm(p,a)
ans =
12 14
21 33
b=[1 2 3;4 5 6];
polyvalm(p,b)
??? Error using == polyvalm
Matrix must be square.
6
2. 多项式的根
求多项式的根,即求使多项式为零的值。设多项式由行向量p表示,其系数按降序排列,使用roots函数计算多项式的根,格式为roots(p)。
例:计算多项式x4+3x2+12x-7的根。
p=[1 0 3 12 -7]
p =
1 0 3 12 -7
roots(p)
ans =
0.7876 + 2.4351i
0.7876 - 2.4351i
-2.0872
0.5121
polyval(p,ans)
ans =
1.0e-013 *
-0.0178 + 0.8793i
-0.0178 - 0.8793i
0.1954
0
7
3. 多项式的四则运算
(1)加法和减法
如果两个多项式的向量阶数相同,可直接进行加减法计算;如果向量阶数不同,不能直接进行运算,需要在低阶多项式的前面补0,使其具有相同的阶数。
a=[8 2 2 8];b=[6 1 6 1];
poly2sym(a)
ans =
8*x^3+2*x^2+2*x+8
poly2sym(b)
ans =
6*x^3+x^2+6*x+1
c=a+b
c =
14 3 8 9
poly2sym(c)
ans =
14*x^3+3*x^2+8*x+9
d=a-b
d =
2 1 -4 7
poly2sym(d)
ans =
2*x^3+x^2-4*x+7
e=[2 4 5];
d+e
??? Error using == plus
Matrix dimensions must agree.
d+[0 e]
ans =
2 3 0 12
poly2sym(ans)
ans =
2*x^3+3*x^2+12
9
(2)乘法:convolution
使用conv函数对多项式进行乘法计算,其格式为conv(a,b)
例:计算(x3+2x2+3x+4)(5x3+6x2+7x+8)
a=[1 2 3 4];b=[5 6 7 8];
poly2sym(a
文档评论(0)