【MATLAB】(六)多项式的创建与四则运算

发布于:2025-08-04 ⋅ 阅读:(21) ⋅ 点赞:(0)

一.关于多项式的介绍

  式指的是代数式,是由数字和字母组成的,如1,5asdef,ax^n+b。式又分为单项式和多项式:

  ①单项式是数字与字母的积,单独的一个数字或字母也是单项式,如3ab。。

  ②几个单项式的和叫做多项式,如3ab+5cd。

  在高等代数中,多项式一般可表示为:a0x^n+a1x^(n-1)+…+an-1x+an。这是一个n(n>0)次多项式,a0,a1等是多项式的系数。在MATLAB中,多项式的系数组成的向量表示为
p=[a0,a1,…,a n-1],2x^3-x^2+3可以转化成[2,-1,0,3]。
  系数中的零不能省略。
  将对多项式运算转化为对向量的运算,是数学中最基本的运算之一。

二.多项式的创建

  ①基本方法:直接输入。

主要由26个英文字母及空格等一些特殊符号组成。

>> 'a*x.^n+b*x.^(n-1)'

ans =

    'a*x.^n+b*x.^(n-1)'

②最简单方法:直接输入向量。

通过poly2sym来实现,调用格式为 poly2sym(p),其中p为多项式的系数向量。

>> p=[3 -2 4 6 8]

p =

     3    -2     4     6     8

>> poly2sym(p)
 
ans =
 
3*x^4 - 2*x^3 + 4*x^2 + 6*x + 8

>> p=[1 2 0 0 0 8]

p =

     1     2     0     0     0     8

>> poly2sym(p)
 
ans =
 
x^5 + 2*x^4 + 8

三.多项式的运算

  MATLAB 没有提供专门的针对多项式的加减运算的函数,多项式的四则运算实际上是多项式
对应的系数的四则运算。

  多项式的四则运算是指多项式的加、减、乘、除运算。需要注意的是,相加、减的两个向量必须大小相等。阶次不同时,低阶多项式必须用零填补,使其与高阶多项式有相同的阶次。多项式的加、减运算直接用“+”、“-”来实现。  

(1)乘法运算

多项式的乘法运算用函数conv(p1,p2)实现,相当于执行两个数组的卷积

在 MATLAB 中,conv(p1, p2) 用于计算两个向量的卷积(Convolution),它的本质是通过滑动窗口的方式,对两个序列进行加权求和。

>> p1=[1:5]

p1 =

     1     2     3     4     5

>> p2=[2:6]

p2 =

     2     3     4     5     6

>> p1+p2

ans =

     3     5     7     9    11

>> conv(p1,p2)

ans =

     2     7    16    30    50    58    58    49    30

(2)除法运算

 多项式的除法用deconv(p1,p2)来实现,相当于执行两个数组的卷积。调用格式如下:

[k,r]=deconv(p,q)

其中k返回的是多项式p除以多项式q的商,r是余式。[k,r]=deconv(p,q)<--->p=conv(q,k)+r

>> p1=1:2

p1 =

     1     2

>> p2=2:3

p2 =

     2     3

>> [kr,]=deconv(p1,p2)

kr =

    0.5000

>> [k,r]=deconv(p1,p2)

k =

    0.5000


r =

         0    0.5000

>> conv(k,p2)+r

ans =

     1     2

四.根据根构造多项式

根据poly(root)构造出系数向量,root为我们已知的根向量。

>> root=[-5 3+2i 3-2i];
>> p=poly(root)

p =

     1    -1   -17    65

>> poly2sym(p)
 
ans =
 
x^3 - x^2 - 17*x + 65
 

五.多项式的求导

多项式导数运算用函数 polyder 来实现。其调用格式为polyder(p)
其中p为多项式的系数向量。

>> p=[2 3 8 -5 6]

p =

     2     3     8    -5     6

>> a=poly2sym(p)
 
a =
 
2*x^4 + 3*x^3 + 8*x^2 - 5*x + 6
 
>> q=polyder(p)

q =

     8     9    16    -5

>> b=poly2sym(q)
 
b =
 
8*x^3 + 9*x^2 + 16*x - 5

--------------------------------------------------

编自2025/8/3。进度还是太慢了,今天意外磕到腿了缝了个针,未来几天老老实实蹲家里听课吧TUT 


网站公告

今日签到

点亮在社区的每一天
去签到