1 / 12
文档名称:

数值分析实验报告4—陈亮.doc

格式:doc   大小:334KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

数值分析实验报告4—陈亮.doc

上传人:分享精品 2017/7/26 文件大小:334 KB

下载得到文件列表

数值分析实验报告4—陈亮.doc

文档介绍

文档介绍:姓名
陈亮
评分
实验报告
实验报告
课程名称: 数值分析
课题名称: 多种插值方法的MATLAB实现
专业: 勘察技术与工程(地球物理方向)
姓名: 陈亮
班级: 061132
完成日期: 2015年 11月 11日
实验报告
实验名称
MATLAB实验
二、实验目的
(1)培养编程与上机使用MATLAB能力
(2)实现拉格朗日插值,牛顿插值,分段线性插值,分段三次埃尔米特插值,样条插值的模拟
三、实验要求
(1)数学公式推导;
(2)利用matlab编写算法。
四、实验原理
给定插值函数y=1/(1+x^2),选取适当的间距,根据书本上的插值结论,编译。
五、实验题目
多种插值方法的MATLAB实现
六、实验步骤
拉格朗日插值法:
牛顿插值法:
埃尔米特插值法:
分段低次插值法:
样条插值法:
七、实验整体流程图或算法
八、程序及其运行结果
牛顿插值法:
n=input('please input n=');
x=linspace(-5,5,n+1);
y=1./(1+x.^2);
n=length(x);
m=length(y);
q=linspace(-5,5,100);
y1=1./(1+q.^2);
syms t y0 w;
if n~=m
error('The lengths of X ang Y must be equal!');
return;
end
Y=zeros(n);
Y(:,1)=y';
for k=1:n-1
for i=1:n-k
Y(i,k+1)=(Y(i+1,k)-Y(i,k))/(x(i+k)-x(i));
end
end
y0=0;
for i=1:n
w=1;
for k=1:i-1
w=w*(t-x(k));
end
y0=y0+Y(1,i)*w;
end
y0=subs(y0,t,q);
plot(q,y0,'c');
hold on
plot(q,y1,'b');
title('牛顿插值对比');
拉格朗日插值法:
n=input('please input n=');
x=linspace(-5,5,n+1);
y=1./(1+x.^2);
n=length(x);
m=length(y);
q=linspace(-5,5,100);
y2=1./(1+q.^2);
syms t y0 w l;
for i=1:m
l=;
for k=1:n
w=;
for j=1:n
if j~=k
w=w*(t-x(j))/(x(k)-x(j));
end
end
l=w*y(k)+l;
end
y0(i)=l;
end
y1=y0(m);
y1=subs(y1,t,q);
plot(q,y1,'c');
hold on
plot(q,y2,'b');
title('拉格朗日插值对比');
分段低次插值法:
n=input('please input n=');
x=linspace(-5,5,n+1);
y=1./(1+x.^2);
y1=-2*x./((1+x.^2).^2);
m=length(y);
q=[-5::5];
y2=1./(1+q.^2);
y0=zeros(1,m);
for x0=-5::5
for i=1:1:m-1
if x0>=x(i)& x0<x(i+1)
y0(1,int32((x0+)/)+501)=y(i)+(y(i+1)-y(i))*(x0-x(i))/(x(i+1)-x(i));
else
end
end
end
plot(q,y0,'--k');
hold on
plot(q,y2,'b');
title('·分段低次插值对比');
三次样条插值法:
n=input('please input n=');
x=linspace(-5,5,n);
y=1./(1+x.^2);
q=[-5::5];
y1=1./(1+q.^2);
y0=spline(x,y,q);
plot(q,y0,'r');
hold on
plot(q,y1,'b');
title('三次样条插值对比');
埃尔米特插值法:
n=input('please input n=');
x=linspace(-5,5,n+1);
y=1./(1+x.^2);
y1=-2*x./((1+x.^2).^2