实验二 拉格朗日插值龙格现象

汕 头 大 学 实 验 报 告

学院: 工学院 系: 计算机系 专业: 计算机科学与技术 年级: 2010

姓名: 林金正 学号: 2010101032 完成实验时间: 5月24日

一.实验名称:拉格朗日插值的龙格现象

二.实验目的:

通过matlab处理,观察拉格朗日插值的龙格现象.

三.实验内容:

(1)学习matlab的使用

(2)以实验的方式,理解高阶插值的病态性,观察拉格朗日插值的龙格现象。

四.实验时间、地点,设备:

实验时间:5月24日 实验地点: 宿舍实验设备:笔记本电脑

五,实验任务

在区间[-5,5]上取节点数n=11,等距离h=1的节点为插值点,对于函数进行拉格朗日插值,把f(x)与插值多项式的曲线花在同一张图上。

六.实验过程

拉格朗日插值函数定义:

对某个多项式函数,已知有给定的k + 1个取值点:

其中对应著自变数的位置,而对应著函数在这个位置的取值。

假设任意两个不同的xj都互不相同,那麼应用拉格朗日插值公式所得到的拉格朗日插值多项式为:

其中每个为拉格朗日基本多项式(或称插值基函数),其表达式为:

[3]

拉格朗日基本多项式的特点是在 上取值为1,在其它的点 上取值为0。

1.使用matlab,新建function.m文件,使用老师所给代码,构建拉格朗日函数.

%lagrange.m

function y=lagrange(x0,y0,x)

n=length(x0);

m=length(x);

for i=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.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))

end;%获取插值坐标(c,d)

>>e = [-5:0.2:5]

>>z = largange(c,d,e);%获取插值坐标函数(e,z)

>>plot(a,b,’r-‘,e,z);%画图

过程及插图

七:实验所得:

这次实验是我初步学会Matlab的使用,学会新建function函数,在matlab命令窗口敲入一些基础的命令,同时更深刻地了解了拉格朗日插值的龙格现象。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐