MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

更新时间:2023-07-19 21:39:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

姓名:樊元君 学号:2012200902 日期:2012.10.25

1.实验目的:

掌握拉格郎日插值法与牛顿插值法构造插值多项式。

2.实验内容:

分别写出拉格郎日插值法与牛顿插值法的算法,编写程序上机调试出结果,要求所编程序适用于任何一组插值节点,即能解决这一类问题,而不是某一个问题。实验中以下列数据验证程序的正确性。 已知下列函数表

求x=0.5635时的函数值。

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

3.程序流程图:

● 拉格朗日插值法流程图:

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

●牛顿插值法流程图:

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

4.源程序:

● 拉格朗日插值法:

function [] = LGLR(x,y,v)

x=input('X数组=:');

y=input('Y数组=');

v=input('插值点数值=:');

n=length(x);

u=0;

for k=1:n

t=1;

for j=1:n

if j~=k

t=t*(v-x(j))/(x(k)-x(j));

end

end

u=u+t*y(k);

end

disp('插值结果=');disp(u);

end

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

●牛顿插值法:

function [] = Newton(x,y,v)

x=input('X数组=:');

y=input('Y数组=:');

v=input('插值点数值=:');

n=length(x);

t=zeros(n,n);

u=0;

for i=1:n

t(i,1)=y(i);

end

for j=2:n

for i=2:n

if i>=j

t(i,j)=(t(i,j-1)-t(i-1,j-1))/(x(i)-x(i-j+1));

end

end

end

for k=1:n

s=1;

m=1;

for j=1:k

if j<k

s=s*(v-x(j));

end

end

m=s*t(k,k);

u=u+m;

end

disp('插值结果=');disp(u);

end

5.运行结果:

MATLAB拉格郎日插值法与牛顿插值法构造插值多项式

6.实验小结:

通过这次实验,加深对拉格朗日插值算法和牛顿插值法算法(差商概念)的认识,重温熟悉了MATLAB简单编程的语法规定,两者的优缺点:拉格朗日插值法增加一个节点,需要整个计算重新开始,没有继承性;差商和差分概念帮助牛顿插值法节省计算次数,具有继承性。

本文来源:https://www.bwwdw.com/article/v671.html

Top