第一个实验
p=1.0;
%(p是插值多项式)
for j=1:n
if j~=k
p=p*(z-x0(j))/(x0(k)-x0(j));
end
end
s=p*y0(k)+s;
end
y(i)=s;
end
plot(x,y)
2、hermitte函数
function hermite(n)
% (x0代表插值点,y0代表插值点对应的值)
好
较好
一般
结果分析(20分)
好
较好
一般
总成绩(100分)
老师签名
一、实验目的
验证Runge现象。
根据区[a,b]上给出的节点做插值多项式Ln(x)近似f(x),一般认为Ln(x)的次数n越高逼近f(x)的精度越好,但实际上可能出现Runge现象。需通过实验说明高次插值效果不好,应采取分段低次插值。通过不同的插值方法做出插值图像验证runge现象。
重庆交通大学
学生实验报告
实验课程名称数值与计算方法
开课实验室数学实验室
学院数学与统计学院2014级年级信息与计算科学专业二班
学生姓名周小璐学号************
开课时间2016年至2017年学年第1学期
评分细则
评分
问题描述(10分)
好
较好
一般
程序设计正确(50分)
好
较好
一般
计算结果正确(20分)
hold on
% (x0代表插值点,y0代表插值点对应的值)
x0=-1:2/n:1;
y0=1./(1+25.*(x0.^2));
% (n是插值点分的段数,m是步长分的总段数)
n=length(x0);
m=length(x);
for i=1:m
z=x(i);
s=0.0;
%(z任意一个点,s用于叠加)
for k=1:n
%f1是在函数值外求得的f的倒数
x0=-1:2/n:1;
y0=1./(1+25.*(x0.^2));
y1=-(50.*x0)./(25.*x0.^2 + 1).^2;
x=-1:0.15:1;
%n为插值点的个数,m为要计算的点的个数。
n=length(x0);m=length(x);
for k=1:m
end
y(k)=sum;
end
plot(x,y)
end
编写程序
运行程序
N=10时;N=20时:
N=60时:N=100时:
2、hermite验证runge现象
编写程序
运行程序
N=2时:N=10时:
N=20时:N=60时:
五、程序分析与总结
拉格朗日插值函数,主要是两个循环,先求插值多项式p=p*(z-x0(j))/(x0(k)-x0(j));再通过插值多项式求出插值s=p*y0(k)+s。需要注意一点matlab的起始下标为1,所以第一个插值点为(x1,y1).插值点为n个则会分为n+1段,所以总长度为length(x0)。埃尔米特插值函数,主要是现在函数外求倒数,再利用插值公式。
通过本次实验更深刻的理解了插值函数,并学会了如何画图。插值函数在小范围内较好使用,实际中可以采用分段低次插值。六、源程序Βιβλιοθήκη 1、Lagrange函数:
function lagrange(n)
%(x在区间【-1,1】内步长为0.1)
x=-1:0.15:1;
y=1./(1+25.*(x.^2));
plot(x,y,'-r');
sum=0.0;
for i=1:n
h=1.0;
a=0.0;
for j=1:n
if j~=i
h=h*((x(k)-x0(j))/(x0(i)-x0(j)))^2;
a=1/(x0(i)-x0(j))+a;
end
end
sum=sum+h*((x0(i)-x(k))*(2*a*y0(i)-y1(i))+y0(i));
在利用拉格朗日插值函数时,当n在一定范围内波动时很好的逼近了原函数,但是随着插值点逐渐增多在插值区间的边界部分插值函数会出现很大波动,明显偏离原函数,所以拉格朗日插值次数不宜过高。龙格现象说明插值不准确,在实际中要尽量避免。同理埃尔米特插值函数在小范围时很好逼近了原函数,高次插值将会偏离原函数。由此验证了龙格现象
1、验证拉格朗日插值多项式造成的龙格现象。
2、验证埃尔米特插值多项式造成的龙格现象。
二、实验内容及要求
验证Runge现象。
在区间[-1,1]上分别取n=2,3,5,10,20.等距节点对Runge函数 做lagrange、hermite插值,画出发f(x)的图像以及插值图像。
三、实验步骤
1、Lagrange验证runge现象。