- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验报告
实验报告:牛顿差值多项式三次样条
1
问题:在区间[-1,1]上分别取n=10、20 用两组等距节点对龙格函数f (x ) 2 作多项式插
25x
值及三次样条插值,对每个n 值,分别画出插值函数及f (x ) 的图形。
实验目的:通过编程实现牛顿插值方法和三次样条方法,加深对多项式插值的理解。应用所
编程序解决实际算例。
实验要求:
1.认真分析问题,深刻理解相关理论知识并能熟练应用;
2 .编写相关程序并进行实验;
3 .调试程序,得到最终结果;
4 .分析解释实验结果;
5 .按照要求完成实验报告。
实验原理:
详见《数值分析 第5 版》第二章相关内容。
实验内容:
(1)牛顿插值多项式
1.1 当n=10 时:
在Matlab 下编写代码完成计算和画图。结果如下:
代码:
clear all
clc
x1=-1:0.2:1;
y1=1./(1+25.*x1.^2);
n=length(x1);
f=y1(:);
for j=2:n
for i=n:-1:j
f(i)=(f(i)-f(i-1))/(x1(i)-x1(i-j+1));
end
end
syms F x p;
F(1)=1;p(1)=y1(1);
for i=2:n
F(i)=F(i-1)*(x-x1(i-1));
p(i)=f(i)*F(i);
end
/ 6 1
数值分析实验报告
syms P
P=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)
grid on
xlabel(x)
ylabel(y)
P10 即我们所求的牛顿插值多项式,其结果为:P10(x )=-220.94*x^10+494.91*x^8-9.5065e-
14*x^7-381.43*x^6-8.504e-14*x^5+123.36*x^4+2.0202e-14*x^3-16.855*x^2-6.6594e-16*x+1.0
并且这里也能得到该牛顿插值多项式的在[-1,1]上的图形,并和原函数进行对比(见
Fig.1)。
Fig.1 牛顿插值多项式 (n=10 )函数和原函数图形
从图形中我们可以明显的观察出插值函数在两端点处发生了剧烈的波动,产生了极大的
误差,即龙格现象,当n=20 时,这一现象将更加明显。
1.2 当n=20 时:
对n=10 的代码进行修改就可以得到n=20 时的代码。将 “x1=-1:0.2:1;”改为 “x1=-
1:0.1:1;”即可。运行程序,我们得到 n=20 时的牛顿插值多项式,结果为:P (x)=
20
260188.0*x^20 - 1.0121e6*x^18 + 2.6193e-12*x^17 + 1.6392e6*x^16 + 2.248e-11*x^15
- 1.4429e6*x^14 - 4.6331e-11*x^13 + 757299.0*x^12 + 1.7687e-11*x^11 -
245255.0*x^10 + 2.1019e-11*x^9 + 49318.0*x^8 + 3.5903e-12*x^7 - 6119.2*x^6 -
1.5935e-12*x^5 + 470.85*x^4 + 1.3597e-14*x^3 - 24.143*x^2 - 1.738e-14*x + 1.0
同样的,这里得到了该牛顿插值多项式
文档评论(0)