matlab学习(三)—— 多项式及其函数

1 多项式的建立

n次多项式用一个n+1维的行向量表示(幂次由高到低)

% 1.1 直接输入系数法建立多项式
clc,clear
p1=[4 3 2 1];
y1=poly2sym(p1)
% 1.2 用多项式的根建立多项式
r=[2 3 4];
p2=poly® %由多项式根创建多项式
y2=poly2sym(p2)
在这里插入图片描述

2 多项式的求值与求根

y=polyval(p,x) 代数多项式求值
Y=polyvalm(p,X) 矩阵多项式求值(X必需为方阵)
xroots§ 多项式求根

% 2.1 代数多项式求值
clc,clear
p=[1 -1 -6]; %y=x^2-x-6
x=2:5;
y=polyval(p,x)
% 2.2 矩阵多项式求值
clc,clear
p=[2 3 4]; %Y=2X^2+3X+4
X=[1 2;3 4];
Y=polyvalm(p,X)
% 2.3 多项式求根
clc,clear
p1=[1 0 0 -1 -6];
x=roots(p1)
p2=poly(x)
y1=poly2sym(p1)
y2=poly2sym(p2)

3 多项式乘法和除法

c=conv(a,b) 多项式a乘以多项式b(向量a和向量b卷积)
[q,r]=deconv(a,b) 多项式a除以多项式b,商为q,余多项式为r,a=conv(b,q)+r

clc,clear
p1=[4 2 0 5];
p2=[5 8 1];
y1=poly2sym(p1)
y2=poly2sym(p2)
p3=conv(p1,p2);
y3=poly2sym(p3)
[p4,r]=deconv(p3,p2);
y4=poly2sym(p4)
r=poly2sym®

4 多项式的导数和积分

polyder()求导,polyint()积分

% 4.1 多项式的导数
% y=polyder§ 对以向量p为系数的多项式求导
% y=polyder(a,b) 对以a和b为系数的多项式的乘积求导
% [q,d]=polyder(b,a) 返回以b为系数的多项式除以以a为系数的多项式的商的导数
clc,clear
p=[4 3 2];
d=polyder§
y=poly2sym§
dy=poly2sym(d)
% 4.2 多项式的积分
% polyint(p,k) 返回以向量p为系数的多项式的积分,常数项为k(默认为0)
p=[3 2 2];
f=polyint(p,3)
y=poly2sym§
fy=poly2sym(f)

5 多项式展开

[r,p,k]=residue(b,a) 求多项式之比b/a的部分分式展开
[b,a]=residue(r,p,k) 通过部分分式得到多项式
r为余数,p是部分分式的极点,k是常数项

clc,clear
b=[1 -1 -7 -1];
a=poly([1 5 6]);
[r,p,k]=residue(b,a)
[b1,a1]=residue(r,p,k);
b1=poly2sym(b1)
a1=poly2sym(a1)

6 多项式拟合

p=polyfit(x,y,n) 采用最小二乘法对给定的数据进行拟合
采用n次多项式来拟合数据x和y,得到以p为系数的多项式。该函数使得p(x)与y的最小均方误差最小

clc,clear
x=[0 pi/6,pi/4,pi/3,pi/2];
y=sin(x);
p=polyfit(x,y,3);
x1=0:0.1:pi;
y1=polyval(p,x1);
plot(x,y,‘or’,x1,y1)

猜你喜欢

转载自blog.csdn.net/The_Only_God/article/details/105316209
今日推荐