- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数值分析实验报告4—陈亮
姓名 陈亮 评分 实验报告
实验报告
课程名称: 数值分析
课题名称: 多种插值方法的MATLAB实现
专 业: 勘察技术与工程(地球物理方向)
姓 名: 陈亮
班 级: 061132
完成日期: 2015年 11月 11日
实验报告
实验名称
MATLAB实验
二、 实验目的
(1)培养编程与上机使用MATLAB能力
(2)实现拉格朗日插值,牛顿插值,分段线性插值,分段三次埃尔米特插值,样条插值的模拟
三、 实验要求
(1)数学公式推导;
(2)利用matlab编写算法。
四、 实验原理
给定插值函数1+x^2),选取适当的间距根据书本上的插值结论编译
拉格朗日插值法
牛顿插值法:
埃尔米特插值法
分段低次插值法:
样条插值法:
七、 实验整体流程图或算法
八、 程序及其运行结果
牛顿插值法:
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=0.0;
for k=1:n
w=1.0;
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:0.01:5];
y2=1./(1+q.^2);
y0=zeros(1,m);
for x0=-5:0.01:5
for i=1:1:m-1
if x0=x(i) x0x(i+1)
y0(1,int32((x0+0.01)/0.01)+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:0.01:5];
y1=1./(1+q.^2);
y0=spline(x,y,q);
plot(q,y0,r);
hold on
plot
文档评论(0)