- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验报告-插值法.
计算机上机实验报告
专业和班级 姓名 成绩 学号 课程名称 数值计算方法 实验名称 插值法 实
验
目
的
和
要
求 实验目的
掌握用MATLAB计算拉格朗日、分段线性、三次样条三种插值的方法,改变节点的数目,对三种插值结果进行初步分析。
掌握用MATLAB作线性最小二乘的方法。
通过实例学习如何用插值方法与拟合方法解决实际问题,注意二者的联系和区别。 实
验
内
容
和
步
骤 实验的主要内容
编制拉格朗日、牛顿插值程序,并运行一个简单的实例。
拉格朗日插值程序:
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。如下:
牛顿插值程序:
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。如下:
给定函数 ,已知:
用牛顿插值法求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
plot(x,y);
title(插值函数中的runge现象,区间等分为10段); %添加标题
xlabel(X轴);
ylabel(Y轴);
text(-0.9,1.5,\leftarrow牛顿插值)%对曲线添加标注
y=interp1(X,Y,x);
plot(x,y);
text(-0.4,0.8521,\leftarrow分段线性插值)
cs=spline(X,[0 Y 0]);%调用spline函数插值,y比x多两个元素。
plot(X,Y,o,x,ppval(cs,x),-);%做样条多项式的图形
text(-1.2,0.2369,\leftarrow样条插值)
function [X,Y]=fenduan(n,b)%将区间等分成n份,并求对应点上的函数值
for i=1:n+1
X(i)=-2+(4*(i-1))/n;
Y(i)=exp(-X(i)^2);
end
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
结
果
的
研
究
与
探
讨 将三种插值结果相比较,显然分段线性插值法在节点处不光滑,拉格朗日值出现较大的振荡,样条差值的结果是最好的,改变n的值,运行程序,得到的图形如右图所示,比较这两个图可发现,节点增加后,三种插值方法结果的准确度均
文档评论(0)