资源描述:
《数值分析实验报告-插值、逼近》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数值分析实验报告实验报告:函数逼近&插值多项式补充问题1:对于给函数,取点,k取0,1,…,n。n取10或20。试画出拟合曲线并打印出方程,与第二章计算实习题2的结果进行比较。问题2:对于给函数在区间[-1,1]上取xi=-1+0.2i(i=0,1,2,…,10),试求3次曲线拟合,试画出拟合曲线并打印出方程,与第二章计算实习题2的结果进行比较。实验目的:通过编程实现牛顿插值方法和函数逼近,加深对多项式插值的理解。应用所编程序解决实际算例。实验要求:1.认真分析问题,深刻理解相关理论知识并能熟练应用;2.编写相关程序
2、并进行实验;3.调试程序,得到最终结果;4.分析解释实验结果;5.按照要求完成实验报告。实验原理:详见《数值分析第5版》第二章、第三章相关内容。实验内容:(1)问题1:这里我们可以沿用实验报告一的代码,对其进行少量修改即可。当n=10时,代码为:clearallclck=0:10;n=length(k);x1=cos((2*k+1)/2/n*pi);y1=1./(1+25.*x1.^2);f=y1(:);forj=2:nfori=n:-1:jf(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));e
3、ndendsymsFxp;F(1)=1;p(1)=y1(1);fori=2:nF(i)=F(i-1)*(x-x1(i-1));10/10数值分析实验报告p(i)=f(i)*F(i);endsymsPP=sum(p);P10=vpa(expand(P),5);x0=-1:0.001:1;y0=subs(P,x,x0);y2=subs(1/(1+25*x^2),x,x0);plot(x0,y0,x0,y2)gridonxlabel('x')ylabel('y')由此我们可以得到P10(x)=-46.633*x^10+3.
4、0962e-14*x^9+130.11*x^8-7.2714e-14*x^7-133.44*x^6+7.1777e-14*x^5+61.443*x^4-1.5805e-14*x^3-12.477*x^2-1.6214e-16*x+1.0并可以得到牛顿插值多项式在[-1,1]上的图形,并和原函数进行对比,得Fig.1。Fig.1牛顿插值多项式(n=10)函数和原函数图形当n=20,将上述代码中的“k=0:10;”改为“k=0:20;”即可。由此我们可以得到P20(x)=6466.6*x^20+8.0207e-13*x^
5、19-34208.0*x^18-3.5038e-12*x^17+77754.0*x^16-99300.0*x^14+3.7253e-9*x^13+78236.0*x^12-39333.0*x^10+12636.0*x^8-4.6566e-10*x^7-2537.3*x^6+306.63*x^4-21.762*x^2+1.0并可以得到牛顿插值多项式在[-1,1]上的图形,并和原函数进行对比,得Fig.2。10/10数值分析实验报告Fig.2牛顿插值多项式(n=20)函数和原函数图形回顾一下实验一的结果(见Fig.3),
6、我们不难发现,仅仅是改变了x的取值,结果发生了很大的变化。实验一中,插值多项式与原函数产生了很大的偏差,并且随着分的段数的增加,其误差不断变大,但是在本次实验中,我们不难发现,虽然多项式依旧存在震荡现象,但是误差小了很多,而且随着分的段数的增加,插值多项式曲线与原函数曲线已经十分接近了。Fig.3实验一结果10/10数值分析实验报告这个例子说明:采用切比雪夫节点替代等距节点可以消除龙格现象。(2)问题2:分析问题,发现在这个问题中,我们已经知道了原函数,同时它也告诉我们所需取的11个点的值,所以这里可以用两种方法进行
7、函数逼近得到拟合曲线。首先采用最小二乘法来考虑这个问题,编写代码如下(这里没有直接调用polyfit函数):clearallclcn=3;x1=-1:0.2:1;y1=1./(1+25.*x1.^2);symsSGdax;fori=1:n+1;forj=1:n+1;G(i,j)=sum(x1.^(i+j-2));endendfori=1:n+1;d(i)=sum(x1.^(i-1).*y1);enda=G^-1*d';fori=1:n+1X(i)=x^(i-1);endS=vpa(X*a,5)x0=-1:0.001:
8、1;y0=subs(S,x,x0);y2=subs(1/(1+25*x^2),x,x0);plot(x0,y0,x0,y2)gridonxlabel('x')ylabel('y')我们可以得到一个三次多项式:S3=1.1665e-16*x^3-0.57518*x^2-9.4553e-17*x+0.48412。同时我们也可以得到它与原函数的图形,