1.多项式的表示以及运算

例如p(x)=x^3-3x+10

表示为p=[1 0 -3 10];

或者p=[1,0,-3,10];

 

2.roots 函数

roots函数求解其对应的方程式的根,例如:

>>r=roots(p);

接上式,即可得到方程的根

 

3.poly函数

已知方程的根,用poly函数还原该多项式方程,此时的方程的根写成列矩阵或是行矩阵都可以

poly函数和roots函数互为反函数,受计算机数值的影响,会有微小的误差;

=>   x^{2}-1=0

poly函数还可以求矩阵的特征多项式(特征方程),例如:

即φ(λ)=λ^3-15λ^2-18λ

 

4.polyval与polyvalm函数

polyval用于计算多项式的值

 

polyvalm函数用于计算矩阵多项式;

p(x)=x^3-3x+10,相应的矩阵为p(X)=X^3-3X+10I,其中X为一n阶矩阵,I为一n阶单位矩阵,先输入矩阵X的内容,再调用函数

Y=polyvalm(p,X)计算得到矩阵结果

 

5.conv与deconv函数

多项式的乘法和出发相当于求卷积和去卷积,分别调用conv和deconv函数,即可实现应用于信号与系统中的

信号之间的卷积运算

(说得这么玄乎,其实就是两个多项式相乘,两个时域信号的卷积在频域里直接相乘)

反过来用deconv函数来求b:

>> [b,r]=deconv(c,a);%

上式中,r是多项式出发的余数多项式,即有c=conv(a,b)+r。

 

6.polyder函数

polyder函数用来求多项式的微分

(1)例如,求p(x)=x^3-3x+10的微分

(2)求两个多项式相乘或是相除的微分

>> a=[2 4 6];
>> b=[1 2 3];
>> c=polyder(a,b)%左边的输出变量只有一个,右边有两个参数,则是a×b的微分

c =
     8    24    40    24

 

>> [q,d]=polyder(a,b)%输出变量有两个,则表示求a/b的微分

q =

     0

d =
     1     4    10    12     9

a/b 的微分即为q/d

 

7.residue函数

对一个多项式分式进行部分分式分解,

调用格式:

[r,p,k]=residue(b,a)

意思是b(x)/a(x)=r(1)/(x-p(1))+r(2)/(x-p(2))+…r(n)/(x-p(n))+k(x)

>> b=[4 -8];
>> a=[1 6 8];
>> [r,p,k]=residue(b,a)

r =
    12
    -8

p =

    -4
    -2

k =
     []

所以分解成了(4x-8)/(x^2+6x+8)=12/(x+4)+(-8)/(x+2)

反过来也可以成立:[b2,a2]=residue(r,p,k)获得b2和a2的表达式

 

8.polyfit函数

用来做数据的曲线拟合

p=polyfit(x,y,n)%x向量和y向量分别实测数据点的x坐标和y坐标,n为所欲拟合曲线的多项式次数。

>> x=[1 2 3 4 5];y=[5 43 128 280 500];

>> p=polyfit(x,y,3)

p =
    1.7500   15.0357  -20.7143    9.2000

>> x2=[1:0.1:5];
>> y2=polyval(p,x2);
>> plot(x,y,'o',x2,y2);%画出了一个图,先画出了4个点,都是o表示的,后画出了x2,y2这一系列的点
>> grid on

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐