第三章数据拟合 用插值的方法对一函数进行近似,要求所得到的 插值多项式经过已知插值节点;在n比较大的情 况下插值多项式往往是高次多项式,这也就容 易出现振荡现象(龙格现象),即虽然在插值 节点上没有误差,但在插值节点之外插值误差变 得很大,从“整体”上看,插值逼近效果将变得 “很差”。 所谓数据拟合是求一个简单的函数,例如是一个 低次多项式,不要求通过已知的这些点,而是要 求在整体上“尽量好”的逼近原函数。这时,在 每个已知点上就会有误差数据拟合就是从整体 上使误差尽量的小一些
第三章 数据拟合 • 用插值的方法对一函数进行近似,要求所得到的 插值多项式经过已知插值节点;在n比较大的情 况下,插值多项式往往是高次多项式,这也就容 易出现振荡现象(龙格现象),即虽然在插值 节点上没有误差,但在插值节点之外插值误差变 得很大,从“整体”上看,插值逼近效果将变得 “很差”。 • 所谓数据拟合是求一个简单的函数,例如是一个 低次多项式,不要求通过已知的这些点,而是要 求在整体上“尽量好”的逼近原函数。这时,在 每个已知点上就会有误差,数据拟合就是从整体 上使误差,尽量的小一些
3.1多项式拟合 n次多项式:8(x)=Cx"+C2x”+…+Cn+1 曲线与数据点的残差为: F=-8(x)2i=1,2,…,L 残差的平方和为: R ,2 为使其最小化,可令R关于C的偏导数为零, 即 OR 0,j=1,2,…,n+1
3.1 多项式拟合 • n次多项式: • 曲线与数据点的残差为: • 残差的平方和为: • 为使其最小化,可令R关于 的偏导数为零, 即: 1 1 2 1 ( ) n n n g x c x c x c − = + + + + ( ), 1,2, , i i i r y g x i L = − = 2 1 L i i R r = = j c 0, 1,2, , 1 j R j n c = = +
或 c1=∑xy,k=1,2…,n+1 或矩阵形式: ∑x2∑x2n.∑ ∑xy ∑xy n+1 y
• 或 • 或矩阵形式: 1 2 2 1 1 1 1 ( ) , 1,2, , 1 n L L n j k n k i j i i j i i x c x y k n + + − − + − = = = = = + 2 2 1 1 1 1 1 1 2 1 1 1 2 1 1 1 1 0 1 1 1 . . . . . . . . . . . L L L L n n n n i i i i i i i i i L L L n n n i i i i i i i L L L n n i i i i i i x x x x y c x x x y c c x x y − = = = = − − − = = = + = = = =
多项式拟合 MATLAB命令: polyfit 格式:p= polyfit(x,y,n) 其中: c和y为原始的样本点构成的向量 n为选定的多项式阶次 P为多项式系数按降幂排列得出的行向量
多项式拟合MATLAB命令:polyfit 格式:p=polyfit(x,y,n)
例已知的数据点来自f(x)=(x2-3x+5)-5xsin 用多项式拟合的方法在不同的阶次下进行拟合 拟合该数据的3次多项式 >>X0=0.1:1;y0=(x0.2-3*x0+5).eXp(-5*xO).*sin(xO) > p3=polyfit(]0, yo 3); vpa(pol oly2sym(p3),10) 6可以如下显示多项式 ans 2.839962923*x^3 4.789842696*x^2+1.943211631*x+.5975248921e-1
>> x0=0:.1:1; y0=(x0.^2-3*x0+5).*exp(-5*x0).*sin(x0); >> p3=polyfit(x0,y0,3); vpa(poly2sym(p3),10) % 可以如下显示多项式 ans = 2.839962923*x^3- 4.789842696*x^2+1.943211631*x+.5975248921e-1 例