数值分析实验报告176453
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告
实验项目名称插值法______________
实验室数学实验室
所属课程名称数值逼近____________
实验类型算法设计____________
实验日期____________________________
级_________________________
号_________________________
名__________________________
实验概述:
【实验目的及要求】
本次实验的目的是熟练《数值分析》第二章“插值法”的相关内容,掌握三种插值方法:牛顿多项式插值,三次样条插值,拉格朗日插值,并比较三种插值方法的优劣。
本次试验要求编写牛顿多项式插值,三次样条插值,拉格朗日插值的程序编码,并在MATLAB^件中去实现。
【实验原理】
《数值分析》第二章“插值法”的相关内容,包括:牛顿多项式插值,三次样条插值,拉格朗日插值的相应算法和相关性质。
【实验环境】(使用的软硬件)软件:
MATLAB 2012a
硬件:电脑型号:联想Lenovo昭阳E46A笔记本电脑
操作系统:Win dows 8专业版
处理器:In tel (R)Core(TM i3 CPU M 350 @2.27GHz 2.27GHz
实验内容:
【实验方案设计】
第一步,将书上关于三种插值方法的内容转化成程序语言,用MATLAB实现;
第二步,分别用牛顿多项式插值,三次样条插值,拉格朗日插值求解不同的问题。
【实验过程】(实验步骤、记录、数据、分析)
实验的主要步骤是:首先分析问题,根据分析设计MATLAB程序,利用程序算出
问题答案,分析所得答案结果,再得出最后结论。
实验一:
已知函数在下列各点的值为
试用4次牛顿插值多项式P4(x)及三次样条函数S(x)(自然边界条件)对数据进行插值。
用图给出{(X i,y i),x i=0.2+0.08i,i=0,1, 11, 10},P4(x)及S(x)。
(1)首先我们先求牛顿插值多项式,此处要用4次牛顿插值多项式处理数据。
已知n次牛顿插值多项式如下:
P n =f (X 0)+f[X 0,X 1](X-X 0)+ f[X 0,X 1,X 2](X-X 0)(X-X 1)+ ••• + f[x 0,X 1 ,••• X n ](X-X
)我们要知道牛顿插值多项式的系数,即均差表中得部分均差。
在MATLAB 的Editor 中输入程序代码,计算牛顿插值中多项式系数的程序如下:
function varargout=n ewt on liu(vararg in) clear,clc
x=[0.2 0.4 0.6 0.8 1.0]; fx=[0.98 0.92 0.81 0.64 0.38]; n ewt on chzh(x,fx);
function n ewt on chzh(x,fx) %由此函数可得差分表
n=len gth(x);
FF=ones(n,n); FF(:,1)=fx : for i=2: n
for j=i:n
FF(j,i)=(FF(j,i-1)-FF(j-1,i-1))/(x(j)-x(j-i+1)); end end for i=1: n
fprin tf('%4.2f,x(i)); for j=1:i
fprin tf('%10.5f,FF(i,j)); end fprin tf('\n');
end
由
(x-0.2)(x-0.4)(x-0.6)(x-0.8 )
fprintf ('*
************
**** 差分表 ***************************
**\n'
);
(2)接下来我们求三次样条插值函数。
用三次样条插值函数由上题分析知
,要求各点的M 值:
2 0 0 0 0 M 0 0
0.500 2 0.500 0 0 M
1
-3.7500 0 0.500
2 0.500 0 M 2
-4.5000 0 0 0.500
2 0.500 M 3
-6.7500 0
0 2
M
4
三次样条插值函数计算的程序如下:
[0.4,0.6
end
k=[0 1 10 11]
x0=0.2+0.08*k
for i=1:1:4
y0(i)=0.98-0.3*(x(i)-0.2)-0.62500*(x(i)-0.2)*(x(i)-0.4)
-0.20833*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)-0.52083*(x(i)-0.2)*(x(i)-0.4)*(x(i)-0.6)*(x(i)-0.
8)
end
plot( xO,yO,'o',xO,yO )
hold on
y1=spli ne(x,y,xO)
plot(x0,y1,'o')
hold on
s=csape(x,y,'variatio nal')
fnplt(s,'r')
hold on
gtext('三次样条自然边界')
gtext('原图像')
gtext('4次牛顿插值')
运行上述程序可知:给出的{ (X i, y i), x i=0.2+0.08i , i=0 , 1, 11, 10}点,S (x)及P4 (x)图
形如下所示:
实验
在区间[-1,1]上分别取n 10,20用两组等距节点对龙格函数f(x)
1
1 25x2
作多项式插值及