《2022年数值分析实验报告-插值三次样条.pdf》由会员分享,可在线阅读,更多相关《2022年数值分析实验报告-插值三次样条.pdf(8页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、实验报告:牛顿差值多项式& 三次样条问题: 在区间 -1,1上分别取 n=10、20 用两组等距节点对龙格函数21( )25f xx作多项式插值及三次样条插值,对每个n值,分别画出插值函数及( )f x的图形。实验目的: 通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。应用所编程序解决实际算例。实验要求:1 认真分析问题,深刻理解相关理论知识并能熟练应用;2 编写相关程序并进行实验;3 调试程序,得到最终结果;4 分析解释实验结果;5 按照要求完成实验报告。实验原理:详见数值分析第 5 版第二章相关内容。实验内容:(1)牛顿插值多项式当 n=10 时:在 Matlab 下编写代
2、码完成计算和画图。结果如下:代码:clear allclcx1=-1:1;y1=1./(1+25.*x1.2);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 8 页 - - - - - - - - - - n=length(x1);f=y1(:);for j=2:nfor i=n:-1:j f(i)=(f(i)-f(i-1)/(x1(i)-x1(i-j+1);endendsyms F x p;F(1)=1;p(1)=y1(1);for i=2:n F(i)=F(i-1)*(x-x1(i-1)
3、; p(i)=f(i)*F(i);endsyms PP=sum(p);P10=vpa(expand(P),5);x0=-1:1;y0=subs(P,x,x0);y2=subs(1/(1+25*x2),x,x0);plot(x0,y0,x0,y2)grid onxlabel(x)ylabel(y)P10即 我 们 所 求 的 牛顿 插 值 多 项式 ,其结 果为:P10(x )=*x10+*x*x*x*x5+*x4+*x*x*x+并且这里也能得到该牛顿插值多项式的在-1 , 1 上的图形, 并和原函数进行对比 (见)。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢
4、迎下载 名师归纳 - - - - - - - - - -第 2 页,共 8 页 - - - - - - - - - - 牛顿插值多项式( n=10)函数和原函数图形从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的误差,即龙格现象,当n=20 时,这一现象将更加明显。当 n=20 时:对n=10 的 代 码 进 行 修 改 就 可 以 得 到n=20时 的 代 码 。 将 “x1=-1:1;” 改 为“x1=-1:1;”即可。 运行程序, 我们得到 n=20 时的牛顿插值多项式,结果为: P20(x)= *x20 - *x18 + *x17 + *x16 + *x15
5、 - *x14 - *x13 + *x12 + *x11 - *x10 + *x9 + *x8 + *x7 - *x6 - *x5 + *x4 + *x3 - *x2 - *x + 同样的,这里得到了该牛顿插值多项式的在-1 , 1 上的图形,并和原函数进行对比 (见)。牛顿插值多项式( n=20)函数和原函数图形当 n=20 时,端点处发生了更加剧烈的震荡。表明随着分段不断增加,牛顿插值多项式精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 8 页 - - - - - - - - - - 与原
6、函数的误差不但没有减少,反而变得更大了。(2)三次样条当 n=10 时:在 Matlab 下编写代码完成计算和画图。结果如下:代码:clear allclcx1=-1:1;y1=1./(1+25.*x1.2);syms xm1=subs(diff(1/(1+25*x2),-1);m2=subs(diff(1/(1+25*x2),1);n=length(x1);syms a b h fdfor i=1:n-1 h(i)=x1(i+1)-x1(i); f(i)=(y1(i+1)-y1(i)/(x1(i+1)-x1(i);enda(n)=1;b(1)=1;for i=2:n-1 a(i)=h(i-1
7、)/(h(i-1)+h(i); b(i)=h(i)/(h(i-1)+h(i);endd(1)=6/h(1)*(f(1)-m1);d(n)=6/h(n-1)*(m2-f(n-1);精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 8 页 - - - - - - - - - - for i=2:n-1 d(i)=6*(f(i)-f(i-1)/(h(i-1)+h(i);endD=d;A=2.*eye(n);for i=1:n-1 A(i,i+1)=b(i); A(i+1,i)=a(i+1);endM=
8、A-1*D;for i=1:n-1s(i)=M(i)*(x1(i+1)-x)3/h(i)/6+M(i+1)*(x-x1(i)3/h(i)/6+(y1(i)-M(i)*h(i)2/6)*(x1(i+1)-x)/h(i)+(y1(i+1)-M(i+1)*h(i)2/6)*(x-x1(i)/h(i);endS=vpa(expand(s.),5);for i=1:n-1 x0=-1-(2/(n-1)+(2/(n-1)*i:-1+(2/(n-1)*i; y0=subs(s(i),x,x0); plot(x0,y0) hold onendy2=subs(1/(1+25*x2),x,-1:1);plot(-
9、1:1,y2,r)grid onxlabel(x)ylabel(y)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 8 页 - - - - - - - - - - S即为我们所求的三次样条,其结果为:S10(x) =*x3+*x2+*x+-1,*x3+*x2+*x+,*x3+*x2+*x+,*x3+*x2+*x+,*x*x*x+,0*x*x2+*x+0,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,1并且这里可以得到该三次样条的在-1 ,1 上的图形,并和原函
10、数进行对比(见)。三次样条( n=10)函数和原函数图形从图形我们可以看出,三次样条图形和原函数图形非常接近,误差相对较小。当 n=20 时:同样的,将上面代码中的“x1=-1:1;”改为“x1=-1:1;”即可。运行程序,我们可以得到 n=20 时的三次样条,其结果为精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 8 页 - - - - - - - - - - S20(x) =*x3+*x2+*x+-1,*x3+*x2+*x+,*x3+*x2+*x+,*x3+*x2+*x+,*x3+*x2+
11、*x+,*x3+*x2+*x+,*x3+*x2+*x+,*x3+*x2+*x+,*x*x2+*x+,*x*x2+*x+,0*x*x*x+0,*x*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,*x3+*x*x+,并且这里也能得到该三次样条的在-1 ,1 上的图形,并和原函数进行对比(见)。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 8 页 - - - - - - - - - - 三次样条( n=20)函数和原函数图形当分段数达到20 时,三次样条的图像与原函数基本重合,表明随着分段数的增加,三次样条的误差也不断减少。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 8 页 - - - - - - - - - -