MATLAB多项式计算

MATLAB多项式计算

在MATLAB中,n次多项式用一个长度为n+1的行向量表示(因为是n个幂次项系数加上一个常数项),缺少的幂次项系数为0。
例如 n次多项式:
P(x)=anxn+an-1xn-1+an-2xn-2+…+a1x+a0
表示为:
[an,an-1,an-2,…,a1,a0]

1.多项式的加减运算

事实上,多项式的加减运算就是其所对应的系数向量的加减运算。
次数相同的两个多项式,可直接对多项式系数向量进行加减运算。
次数不同的两个多项式,则应该把低次的多项式系数不足的高次项用0补足,使同式中的各多项式具有相同的次数。

%次数相同
%计算(2x^2+2x)+(3x^2+3x)
>> a=[2,2,0]
>> b=[3,3,0]
>> c=a+b
c =
     5     5     0

%次数不同
%计算(x^3-2x^2+5x+3)+(6x-1),对于和式的后一个多项式6x-1,它仅为1次多项式,而前面的是3次。为确保两者次数相同,应把后者的系数向量处理成[0,0,6,-1]。命令如下:
>> a=[1,-2,5,3];
>> b=[0,0,6,-1];
>> c=a+b
c =
     1    -2    11     2

2.多项式的乘法运算

函数 conv(P1,P2)
用于求多项式P1和P2的乘积。其中,P1、P2是两个多项式系数向量

%求多项式x4+8x3-10与多项式2x2-x+3的乘积。

>> A=[1,8,0,0,-10];
>> B=[2,-1,3];
>> C=conv(A,B)
C =
     2    15    -5    24   -20    10   -30

%执行结果得到一个6次多项式:
%2x6+15x5-5x4+24x3-20x2+10x-30

3.多项式的除法运算

函数 [Q,r]=deconv(P1,P2)
用于对多项式P1和P2作除法运算。其中,Q返回多项式P1除以P2的商式r返回P1除以P2的余式。这里,Q和r仍是多项式系数向量。
deconv是conv的逆函数,即有P1=conv(P2,Q)+r

%求多项式x4+8x3-10除以多项式2x2-x+3的结果。

>> A=[1,8,0,0,-10];
>> B=[2,-1,3];
>> [P,r]=deconv(A,B)
P =
    0.5000    4.2500    1.3750
r =
         0         0         0  -11.3750  -14.1250

4.多项式的导函数

函数 polyder
p=polyder§:求多项式P的导函数。

>> x=[2,1,0,5]
>> p=polyder(x)
p =
     6     2     0
%对于2x^3+x^2+5 求导得到 6x^2+2 ,得到的结果向量就是[6,2,0] 

p=polyder(P,Q):求P·Q的导函数。

>> P=[1,2,3,4]
>> Q=[3,2,1]
>> p=polyder(P,Q)
p =
    15    32    42    40    11
%对于x^3+2x^2+3x+4 与3x^2+2x+1 相乘之后求导

[p,q]=polyder(P,Q):求P/Q的导函数,导函数的分子存入p,分母存入q。

>> P=1;
>> Q=[1,0,5];
>> [p,q]=polyder(P,Q)
p =
    -2     0
q =
     1     0    10     0    25

5.代数多项式求值

函数polyval :求代数多项式的值
Y=polyval(P,x)
若x为一数值,则求多项式P在该点的值;
若x为向量或矩阵,则对向量或矩阵中的每个元素求其多项式P的值。

题:已知多项式x4+8x3-10,分别取x=1.2和一个2×3矩阵为自变量,计算该多项式的值。

>> A=[1,8,0,0,-10];             %4次多项式系数
>> x=1.2;                     %取自变量为一数值
>> y1=polyval(A,x)
y1 =
    5.8976
>> x=[-1,1.2,-1.4;2,-1.8,1.6];      %给出一个矩阵x
>> y2=polyval(A,x)     %分别计算矩阵x中各元素为自变量的多项式之值
y2 =
  -17.0000    5.8976  -28.1104
   70.0000  -46.1584   29.3216

6.矩阵多项式求值

函数polyvalm :求矩阵多项式的值
Y=polyvalm(P,A):A为方阵,它以方阵为自变量求多项式的值。

例:仍以多项式x4+8x3-10为例,以2×2矩阵为自变量分别用polyval和polyvalm计算该多项式的值。

>> A=[1,8,0,0,-10];             	%多项式系数
>> x=[-1,1.2;2,-1.8];           	%给出一个矩阵x
>> y1=polyval(A,x)             	%计算代数多项式的值
y1 =
  -17.0000    5.8976
   70.0000  -46.1584
>> y2=polyvalm(A,x)            	%计算矩阵多项式的值
y2 =
  -60.5840   50.6496
   84.4160  -94.3504

7.多项式求根

函数roots:用于求多项式的全部根
x=roots(P) :P为多项式的系数向量,求得的根赋给向量x,即x(1)、x(2)、…、x(n)分别代表多项式的n个根
P=poly(x) :若已知多项式的全部根,则可以用poly函数建立起该多项式
若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P

例:求多项式x4+8x3-10的根。

>> A=[1,8,0,0,-10];
>> x=roots(A)
x =
  -8.0194 + 0.0000i
   1.0344 + 0.0000i
  -0.5075 + 0.9736i
  -0.5075 - 0.9736i
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值