一.关于多项式的介绍
式指的是代数式,是由数字和字母组成的,如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