5.2matlab多项式计算(多项式的四则运算、求导、求值、求根)
1、多项式的表⽰
在MATLAB中创建多项式向量时,注意三点:
(1)多项式系数向量的顺序是从⾼到低。
(2)多项式系数向量包含0次项系数,所以其长度为多项式最⾼次数加1。
(3)如果有的项没有,系数向量相应位置应⽤0补⾜。
2、多项式的四则运算
(1)多项式的加减运算
多项式的加减运算⾮常简单,即相应向量相加减。
(2)多项式乘法
conv (P1,P2):多项式相乘函数。
在这⾥,P1、P2是两个多项式系数向量。
(3)多项式除法
[Q,r]=deconv(P1,P2):多项式相除函数。
其中,Q返回多项式P1除以P2的商式,r返回P1除以P2的余式。这⾥,Q和r仍是多项式系数向量。
deconv是conv的逆函数,因此有
Pl=conv(Q,P2)+r
即商式(Q)乘以除式(P2)加⽌余式( r)等⼿被除式(P1)
>> f =[3-50-756];
g =[35-3];
g1 =[000 g];
y1 = f+g1 %多项式相加,等长向量可加减
y1 =
3-50-4103
>> y2 = f-g1 %多项式相减
y2 =
3-50-1009
>> y3 =conv(f,g)%多项式相乘,积向量的长度为两个因⼦向量的长度之和减1
y3 =
90-34-6-206415-18
>>[y4 r]=deconv(f,g)%多项式相除,y4是商式,r是余式
y4 =
1.0000-3.3333 6.5556-16.5926
r =
matlab求导0000107.6296-43.7778
>> y5 =conv(y4,g)+r %商式乘以除式加上余式,看看是否与被除式f相等
y5 =
3.0000-5.00000-7.0000 5.0000 6.0000
3、多项式的求导
polyder( ):多项式求导函数。调⽤格式:
( 1 ) p=polyder( P):求多项式P的导函数。
( 2 ) p=polyder(P,Q):求P·Q的导函数。
( 3 ) [p,q]=polyder(P,Q):求P/Q的导函数,导函数的分⼦存⼊p,分母存⼊q。
>> a =[310-6];
b =[12];
y0 =polyder(a)%计算多项式a的导函数
y0 =
920
>> y1 =polyder(a,b)%计算两个多项式的乘积的导函数,等价于先求m =conv(a,b),再求polyder(m)
y1 =
12214-6
>>[p q]=polyder(a,b)%计算两个多项式的商的导函数,p存分⼦,q存分母。如果换成先求商再求导,输出不同。
p =
61946
q =
144
4、多项式的求值
(1)polyval(p,x):代数多项式求值。
其中,p为多项式系数向量;x可以是标量、向量或矩阵。若x为标量,则求多项式在该点的值;若x为向量或矩阵,则对向量或矩阵中的每个元素求多项式的值。(这个函数可⼀次性并⾏地求出⼀批娄数据
的多项式的值,⾃变量有多少个数据,函数就求多少个值。)
(2)polyvalm(p,x):矩阵多项式求值。
其调⽤格式与polyval相同,但含义不同。polyvalm函数要求x为⽅阵,以⽅阵为⾃变量求多项式的值。
当polyval(p,x)与polyvalm(p,x)的输⼊参数相同时两者的计算结果有没有可能相等?
当x是标量时,两者的计算结果相等。
例3:以多项式x ^4+ 8*x ^3-10为例,取⼀个2×2矩阵为⾃变量,分别⽤polyval和polyvalm计算该多项式的值。
5、多项式的求根
roots§:多项式求根函数。
其中,p为多项式的系数向量。包括实根和共辄复根。
若已知多项式的全部根,则可以⽤poly函数建⽴起该多项式,其调⽤格式为:
p=poly(x)
>> a =[1800-10];
x =roots(a)%求根
x =
-8.0194+0.0000i
1.0344+0.0000i
-0.5075+0.9736i
-0.5075-0.9736i
>> y =poly(x)%若已知多项式的全部根,则可以⽤poly函数建⽴起该多项式,p=poly(x)
y =
1.00008.00000.00000.0000-10.0000
发布评论