实验二 拉格朗日插值龙格现象
发布时间:2024-11-28
发布时间:2024-11-28
汕 头 大 学 实 验 报 告
学院: 工学院系: 计算机系专业: 计算机科学与技术年级:2010
姓名: 林金正学号:2010101032完成实验时间: 5月24日
一.实验名称:拉格朗日插值的龙格现象
二.实验目的:
通过matlab处理,观察拉格朗日插值的龙格现象.
三.实验内容:
(1)学习matlab的使用
(2)以实验的方式,理解高阶插值的病态性,观察拉格朗日插值的龙格现象。
四.实验时间、地点,设备:
实验时间:5月24日
实验地点:宿舍 实验设备:笔记本电脑
五,实验任务
在区间[-5,5]上取节点数n=11,等距离h=1的节点为插值点,对于函数f(x) 行拉格朗日插值,把f(x)与插值多项式的曲线花在同一张图上。
5进1 x2
六.实验过程
拉格朗日插值函数定义:
对某个多项式函数,已知有给定的k + 1个取值点:
其中对应著自变数的位置,而对应著函数在这个位置的取值。
假设任意两个不同的xj都互不相同,那麼应用拉格朗日插值公式所得到的拉格朗日插值多项式为:
其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:
[3]
拉格朗日基本多项式
的特点是在上取值为1,在其它的点上取值为0。
1.使用matlab,新建function.m文件,使用老师所给代码,构建拉格朗日函数.
%lagrange.m
function y=lagrange(x0,y0,x)
n=length(x0);
m=length(x);
fori=1:m
z=x(i);s=0;
for k=1:n
L=1;
for j=1:n
if j~=k
L=L*(z-x0(j))/(x0(k)-x0(j));
end
end
s=s+L*y0(k);
end
y(i)=s;
end
y;
程序解释:
(x0,y0):已知点坐标
x:所求点的横坐标,
y:由(x0,y0)所产生的插值函数,以x为参数,所的到的值
2.再一次新建function.m文件.
构建自定义函数:f(x)
%f.m
function y = f(x)
y = 5/(1+x*x);
end
3.在脚本窗口中输入:
>>a = [-10:0.2:10]
>>for I = 1:length(a)
b(i) = f(a(i))
end;%画出原函数(a,b)
>>c = [-5:1:5]
>>for i = 1:length( c)
d(i) = f(c(i)) 5 21 x
end;%获取插值坐标(c,d)
>>e = [-5:0.2:5]
>>z = largange(c,d,e);%获取插值坐标函数(e,z)
>>plot(a,b,’r-‘,e,z);%画图
过程及插图
七:实验所得:
这次实验是我初步学会Matlab的使用,学会新建function函数,在matlab命令窗口敲入一些基础的命令,同时更深刻地了解了拉格朗日插值的龙格现象。