实验报告-插值法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
计算机上机实验报告
专业和班级姓名
成绩学号
课程名称数值计算方法实验名称插值法
实验目的和要求实验目的
1、掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值
的方法,改变节点的数目,对三种插值结果进行初步分析。
2、掌握用MAT L AB作线性最小二乘的方法。
3、通过实例学习如何用插值方法与拟合方法解决实际问题,注意
二者的联系和区别。
实验内容和步骤实验的主要内容
1、编制拉格朗日、牛顿插值程序,并运行一个简单的实例。
(1)拉格朗日插值程序:
function v=polyinterp(x,y,u)
n=length(x);
v=zeros(size(u));
for k=1:n
w=ones(size(u));
for j=[1:k-1 k+1:n]
w=(u-x(j))./(x(k)-x(j)).*w;
end
v=v+w*y(k);
end
实例:当x=144,169,225时,y=12,13,15,用拉格朗日差值法求根号175。如下:
(2)牛顿插值程序:
function y=newinterp(X,Y,x)% 牛顿插值函数
m=length(X);
for k=2:m
for j=1:k-1
Y(k)= (Y(k)- Y(j))/(X(k)-X(j));
end
end
y=Y(m);
for j=m-1:-1:1
y=y.*(x-X(j))+Y(j);
end
实例:当x=144,169,225时,y=12,13,15,用牛顿差值法求根号175。如下:
2、给定函数x
x
f=
)
(,已知:
414214
.1.
)0.2(=
f449138
.1.
)1.2(=
f
483240
.1.
)2.2(=
f516575
.1.
)3.2(=
f549193
.1.
)4.2(=
f
用牛顿插值法求4次Newton插值多项式在2.15处的值,以此作为函
3.选择函数y=exp(-x2) (-2≤x≤2),在n个节点上(n不要太大,如5~11)用拉格朗日、分段线性、三次样条三种插值方法,计算m 个插值点的函数值(m要适中,如50~100)。通过数值和图形输出,将三种插值结果与精确值进行比较。适当增加n,在作比较,由此作初步分析。
程序:
%不同插值方法是否会出现震荡runge现象
%M文件
function runge10
[X,Y]=fenduan(10,1);%将[-1,]区间分成10等份,返回对应的(x,y)五组数据
x=linspace(-2,2,100);%将[-1,1]划分成100等份,以便作出样条插值多项式的图形。
for i=1:length(x)%绘制原函数曲线图
y(i)=exp(-x(i)^2);
end
hold on
plot(x,y);
text(0,1,'\leftarrow原函数')%对曲线添加标注
y=newinterp(X,Y,x);%多项式插值中的牛顿插值法
hold on
结果的研究与探讨
将三种插值结果相比较,显然分段线性插值法在节点处不光滑,拉格朗日值出现较大的振荡,样条差值的结果是最好的,改变n 的值,运行程序,得到的图形如右图所示,比较这两个图可发现,节点增加后,三种插值方法结果的准确度均有所提高,因此可近似地认为:增加节点的个数可以提高插值结果的准确程度。
(注:可编辑下载,若有不当之处,请指正,谢谢!)