应用matlab多项式的表示以及运算
2017-12-04 19:56
183 查看
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函数还原该多项式方程,此时的方程的根写成列矩阵或是行矩阵都可以
[-2.6129;
1.3064+1.4562i;
1.3064-1.4562i];
poly函数和roots函数互为反函数,受计算机数值的影响,会有微小的误差
poly函数还可以求矩阵的特征多项式(特征方程),例如:
A=[1 2 3;4 5 6;7 8 9];
>> p3=poly(A)
p3 =
1.0000 -15.0000 -18.0000 -0.0000
即φ(λ)=λ^3-15λ^2-18λ
4.polyval与polyvalm函数
polyval用于计算多项式的值
>> p=[1 0 -3 10];
>> val=polyval(p,5);
将x=5代入多项式当中
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函数,即可实现应用于信号与系统中的
信号之间的卷积运算
(说得这么玄乎,其实就是两个多项式相乘,两个时域信号的卷积在频域里直接相乘)
>> a=[1 3 5];
>> b=[2 4 3];
>> c=conv(a,b);
>> c
c =
2 10 25 29 15
反过来用deconv函数来求b:
>> [b,r]=deconv(c,a);%
上式中,r是多项式出发的余数多项式,即有c=conv(a,b)+r。
6.polyder函数
polyder函数用来求多项式的微分
(1)例如,求p(x)=x^3-3x+10的微分
>> p=[1 0 -3 10];
>> q=polyder(p)
q =
3 0 -3
即q(x)=3x^2-3
(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
例如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函数还原该多项式方程,此时的方程的根写成列矩阵或是行矩阵都可以
[-2.6129;
1.3064+1.4562i;
1.3064-1.4562i];
poly函数和roots函数互为反函数,受计算机数值的影响,会有微小的误差
poly函数还可以求矩阵的特征多项式(特征方程),例如:
A=[1 2 3;4 5 6;7 8 9];
>> p3=poly(A)
p3 =
1.0000 -15.0000 -18.0000 -0.0000
即φ(λ)=λ^3-15λ^2-18λ
4.polyval与polyvalm函数
polyval用于计算多项式的值
>> p=[1 0 -3 10];
>> val=polyval(p,5);
将x=5代入多项式当中
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函数,即可实现应用于信号与系统中的
信号之间的卷积运算
(说得这么玄乎,其实就是两个多项式相乘,两个时域信号的卷积在频域里直接相乘)
>> a=[1 3 5];
>> b=[2 4 3];
>> c=conv(a,b);
>> c
c =
2 10 25 29 15
反过来用deconv函数来求b:
>> [b,r]=deconv(c,a);%
上式中,r是多项式出发的余数多项式,即有c=conv(a,b)+r。
6.polyder函数
polyder函数用来求多项式的微分
(1)例如,求p(x)=x^3-3x+10的微分
>> p=[1 0 -3 10];
>> q=polyder(p)
q =
3 0 -3
即q(x)=3x^2-3
(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
相关文章推荐
- MATLAB多项式应用
- MATLAB的基本运算以及常识
- 数据预测之BP神经网络具体应用以及matlab代码
- 数据预测之BP神经网络具体应用以及matlab代码
- 线性表在一元多项式运算中的应用
- MATLAB多项式运算与符号运算
- 如何在matlab中添加SVM工具箱以及初次应用
- 多项式的表示、读入、运算与输出
- 位运算入门应用以及技巧
- 数据预测之BP神经网络具体应用以及matlab代码
- 链表及其应用3————一元多项式的运算
- 颜色表示以及在processing中的应用
- C语言位运算应用一:求一个数的二进制表示中1的个数
- (数组的应用三:多项式的表示与处理4.3.1)POJ 1555 Polynomial Showdown(多项式的输出)
- 一元多项式的表示及加减乘除运算
- 如何在matlab中添加SVM工具箱以及初次应用
- 链表的应用 —— 多项式运算(加法+乘法)
- MATLAB 线性运算之减法运算及其应用
- 数据结构(二):线性表的使用原则以及链表的应用-稀疏矩阵的三元组表示
- MATLAB 线性运算之减法运算及其应用