多项式拟合

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
18



2x 3 x 2 x 2
5.1.2 多项式运算
例5-7 (1)求两多项式的乘积 3 2 (2)求上述结果被 2 x x x 2 除所得的结果。 >> a=[3 -3 4 -1 2]; >> b=[2 -1 1 2]; >> c=conv(a,b) c= 6 -9 14 -3 3 5 0 4 >> [d,r]=deconv(c,b) d= 3 -3 4 -1 2 r= 0 0 0 0 0 0 0 0

20
5.1.2 多项式运算
例5-8 (1)求多项式 x5 5x 4 3x3 6 x 2 4 x 10 的微分。 (2)将上述结果求积分。 >> a=[1 -5 3 -6 4 -10]; >> d=polyder(a) d= 5 -20 9 -12 4 >> poly2sym(d) ans = 5*x^4-20*x^3+9*x^2-12*x+4 >> polyint(d) ans = 1 -5 3 -6 4 0
6

4.1.1 多项式的创建
例5-2 求矩阵的特征多项式。

>> A=[1 2 3;4,5,6;7,8,0]; >> p=poly(A) p= 1.0000 -6.0000
1 2 3 4 5 6 7 8 0
-27.0000
-72.0000


>> poly2sym(p)
第五章 数值计算基础
1
第五章 数值计算基础

5.1 多项式 5.2求解线性方程组的 5.3 差分、梯度 5.4 插值和拟合等。 5.5 基本数学函数
2
P( x) a0 xn a1xn1 an1x an
5.1 多项式

Matlab用行向量表示多项式,行向量由多项 式系数按降幂排列组成。例如,多项式
9
5.1.1 多项式的创建
由给定根矢量创建多项式时应注意: (1)如果希望生成实系数多项式,则根矢量的 复数根必须共轭成对。 (2)有时生成的多项式向量包含很小的虚部, 可用real命令将其滤掉。
10
5.1.1 多项式的创建
例5-4 根据根矢量r=[-1+2i,-1-2i,0.2]创建多项式 >> r=[-1+2i,-1-2i,0.2] r= -1.0000 + 2.0000i -1.0000 - 2.0000i 0.2000 >> p=poly(r) % 求多项式系数矢量 p= 1.0000 1.8000 4.6000 -1.0000 >> pr=real(p) % 取实部 pr = 1.0000 1.8000 4.6000 -1.0000 >> poly2sym(pr) ans = x^3+9/5*x^2+23/5*x-1
x2 两个多项式的比为, 2 x 2 3 x 4
>> [b,a]=residue(r,p,k)
b= 0.5000 a= 1.0000 1.0000 1.5000 -2.0000
25
5.1.2 多项式运算
6、多项式拟合

matlab中多项式拟合的函数为polyfit ,其采用最 小二乘法对给定的数据进行多项式拟合,给出拟 合的多项式系数。函数的调用方式为: p=polyfit(x,y,n) 应用最小二乘法求出n阶拟合多 项式p(x)。即用p(x)拟合y(x)。x、y为数据的横 纵坐标向量,n为拟合多项式的阶数,输出参数p 为多项式p(x)的系数向量。
P( x) a0 xn a1xn1 an1x an

可以用它的长度为n+1的系数行向量表示:
P [a0 a1 an1 an ]

注意:系数行向量中元素的排列顺序必须是 从高次幂系数到低次幂系数,多项式中缺少 的幂次要用0补齐。
3
5.1.1 多项式的创建
1、系数矢量的直接输入法: 由于在MATLAB中的多项式是以向量形式 储存的,因此,创建多项式的最简单的方法即 为直接输入多项式的系数行向量, MATLAB 自 动将向量元素按降幂顺序分配给各系数值。为 了查看方便,可利用转换函数 poly2sym ,将 多项式由系数行向量形式,转换为符号形式。

例5-5 求多项式 2 x 2 3x 5 在2,4,6,8处的值,对于矩阵 的值,及在矩阵中各元素处的值。
2 4 6 8
14
5.1.2 多项式运算

通过上例可以得出:设A为方阵,P代表多项 式,则,

polyval(P,A): 2*A.^2-3*A+5*ones(size(A))
11
5.1.2 多项式运算
1、求多项式的值

求多项式的值可以有两种形式,对应两种算 法:
(1)在输入变量值代入多项式计算时,以数量 或矩阵中每个元素为计算单元的,对应函数 为polyval; (2)以矩阵为计算单元的,进行矩阵式运算来 求得多项式的值,对应函数为polyvalm。
12
5.1.2 多项式运算
polyvalm(P,A): 2*A^2-3*A+5*eye(size(A))
15
5.1.2 多项式运算
2、求多项式的根 可以直接调用MATLAB的函数roots,求解多 项式的所有根。 调用形式为: R=roots(C) 其中输入参数C是多项式系数行 向量,输出参数R是多项式的根,一般用列向 量表示。
%把原始数据点和拟合曲线绘制在同一个坐标系中,原始数%据用“。” 表%示(如图4-1)。
plot(x,y,'o',x,polyval(p,x),'-') % 绘图函数用法在第6章介绍
27
[b,a]=residue(r,p,k) 从部分分式得出多项式表 达式b(x)和a(x)的系数向量,结果为对于表达式 分母的归一形式。
24


例5-9 求部分 分式展开,再用展开的结果转换回原来的两个 多项式
>> a=[2,3,-4] >> b=[1,2] >> [r,p,k]=residue(b,a) r= 0.0548 0.4452 p= -2.3508 0.8508 k= []
调用格式为:

polyval(p,x):求多项式p在x点的值,x可以是 数量或矩阵,x是矩阵时,表示求多项式p在x 中各元素的值。 polyvalm(p,x):求多项式p对于矩阵x的值,x 可以是数量或矩阵。x如果是数量,求得的值 与函数polyval相同,如果x是矩阵则必须是方 阵。
13

5.1.2 多项式运算
26
wenku.baidu.com
5.1.2 多项式运算
例5-10 x=1:10,求y(x)的5阶拟合多项式。 y x 3 cos(x) >>x=1:10; >>y=sqrt(x)+3*cos(x); >>p=polyfit(x,y,5) p= 0.0074 -0.1737 1.3312 -3.3680 0.3459 4.5606
21
5.1.2 多项式运算

5、多项式的部分分式展开:
对于多项式 b(x) 和不含重根的 n 阶多项 式a(x)之比,有如下展开:
b( x) a( x)

r1 x p1

r2 x p2

rn x pn
k ( x)
式中 p1 , p2 ,, pn 称为极点(Poles), r1 , r2 ,, rn 称 为 留 数 (Residue) , k(x) 称 为 直 项 (Direct term)。
ans = x^3-6*x^2-72*x-27
7
5.1.1 多项式的创建
3、由根矢量创建多项式

由给定的多项式方程的根矢量创建该多项式, 用poly函数实现。调用格式为: p=poly(r):返回一个行向量,该行向量是以r 为根的多项式系数向量。

8
5.1.1 多项式的创建
例5-3 由根矢量[-5 -3 4]创建多项式。 >> r=[-5 -3 4] >>p=poly(r) p= 1 4 -17 -60 >> poly2sym(p) ans = x^3+4*x^2-17*x-60
3 2
的根
17
5.1.2 多项式运算
3、多项式的乘除法运算

多项式的乘法和除法实质就是多项式系数向量的卷积 和解卷运算。 乘法:c=conv(a,b) 求多项式a和b的乘法,如果向 量a的长度为m,b的长度为n,则c的长度为m+n-1。 多项式的除法用函数deconv实现,此函数也是向量 的卷积函数的逆函数。 [b,r]=deconv(c,a) 向量a对向量c进行解卷,得到商 向量b和余量r。
3x 4 2 x 3 4 x 2 x 2和2 x 3 x 2 x 2
19
5.1.2 多项式运算
5、多项式的微积分

Matlab中多项式的微分函数为polyder,多项 式的积分函数为polyint。两个函数的调用格 式为: polyder(a) 求系数行向量为a的多项式的微分。 polyint(a) 求系数行向量为a的多项式的积分。
16
5.1.2 多项式运算
例5-6 求出多项式 x 2 x 5 x 6 0 >> a=[1 2 -5 -6]; >>r=roots(a) r= 2.0000 -3.0000 -1.0000 >> poly(r) ans = 1.0000 2.0000 -5.0000 -6.0000
22
5.1.2 多项式运算

假如a(x)有m重根p(j)=…=p(j+m-1),则 相应部分写成:
rj x p j
( x p
r j 1
j) 2
( x p
r j m1
m ) j
23
5.1.2 多项式运算

在MALAB中,两个多项式之比用部分分式展开 的函数为residue,有两种调用方法: [r,p,k]=residue(b,a) 求多项式之比b(x)/a(x)的 部分分式展开,输出参数r为留数,p为极点和k 为直项。
4
5.1.1 多项式的创建
例5-1 输入系数矢量 ,创建多项式 >>poly2sym([1, -5 ,6, -33]) ans= x^3-5*x^2+6*x-33
5
5.1.1 多项式的创建
2、通过矩阵的特征多项式来创建多项式

可以通过求矩阵的特征多项式,来创建多项 式,由函数poly实现。调用格式为: p=poly(A):求矩阵A的特征多项式系数,要 求输入参数A是n×n的方阵,输出参数p是包 含n+1个元素的行向量,是A的特征多项式系 数向量。
相关文档
最新文档