实验三函数逼近
一、 实验目标
1.掌握数据多项式拟合的最小二乘法。 2.会求函数的插值三角多项式。
二、实验问题
(1)由实验得到下列数据 试对这组数据进行曲线拟合。 (2)求函数f?x??x2cosx在区间[??,?]上的插值三角多项式。
三、 实验要求
1.利用最小二乘法求问题(1)所给数据的3次、4次拟合多项式,画出拟合曲线。
2.求函数f?x??x2cosx在区间[??,?]上的16次插值三角多项式,并画出插值多项式的图形,与f?x?的图形比较。
3.对函数f?x??x2cosx,在区间[??,?]上的取若干点,将函数值作为数据进行适当次数的最小二乘多项式拟合,并计算误差,与上题中的16次插值三角多项式的结果进行比较。
《数值分析》实验报告
【实验课题】利用最小二乘法求上述问题所给数据的2次,3次、4次拟合多项式,画出拟合曲线 【实验目标】
(1)加深对用最小二乘法求拟合多项式的理解
(2)学会编写最小二乘法的数值计算的程序;
【理论概述与算法描述】
在函数的最佳平方逼近中f(x)?C[a,b],如果f(x)只在一组离散点集{xi,i?0,1,???,m}上给出,这就是科学实验中经常见到的实验数据{(xi,yi),i?0,1,???,m}的曲线拟合,这里
yi?f(xi),i?0,1,???,m,要求一个函数y?S*(x)与所给数据{(xi,yi),i?0,1,???,m}拟合,若
记误差?i?S*(xi)?yi(i?0,1,???,m),????0,?1,???,?m?,设?0(x),?1(x),???,?n(x)是C[a,b]上的线性无关函数族,在??span{?0(x),?1(x),???,?n(x)}中找一个函数S*(x),使误差平方和
T||?||?????[S(xi)?yi]?min?[S(xi)?yi]
222i*i?0i?0S(x)??i?0mm2m2这里
这就是一般的最小二乘逼近,用几何语言说,就称为曲线拟合的最小二乘法。 通常在最小二乘法中考虑加权平方和有
(?j,?k)???(xi)?j(x)?k(x),
i?0m上式可改写为
?(?,?)akjj?0mj?dk,k?0,1,???,n。
这个线性方程组称为法方程,可将其写成矩阵形式 其中a?(a0,a1,???,an)T,d?(d0,d1,???,dn)T 求出a0,a1,???,an
则拟合函数S*(x)?a0?a1x?a2x2?????anxn a=inv(G)*d
【实验问题】
由实验得到下列数据 试对这组数据进行曲线拟合。 利用最小二乘法求所给数据的2次、3次、4次拟合多项式,画出拟合曲线。
【实验过程与结果】 【结果分析、讨论与结论】
(1)n=2时 x=[' y=[' n=2
p=leastsq(x,y,n) I=lsp(p,t) 回车得到结果
p=
所以拟合多项式为I=t*((18733*t)/5982-74179/59820)+73337/99700 (2)n=3时
x=[' y=[' n=3
Apleastsq(x,y,n) I=lsp(p,t) 回车得到结果
所以拟合多项式为I= +
t^2+^3; (3)n=4时
x=[' y=[' n=4
p=leastsg(x,y,n) I=lsq(p,t) 回车得到结果
A=
附程序
x=[' y=[' symst n=2
p=leastsq(x,y,n) c=lsp(p,t) plot(x,y,'*') 2.
functionp=leastsq(x,y,n) m=length(x);
G=zeros(n+1,n+1);
b=zeros(n+1,1); fori=0:n forj=0:n
G(i+1,j+1)=(x.^i)'*(x.^j); end end
fork=0:n
b(k+1,1)=(x.^k)'*y; end
p=inv(G)*b; 3.
functionI=lsp(p,t) m=length(p)-1; I=p(m+1); forj=m:-1:1 I=I.*t+p(j); end