代码改变世界

插值方法——Lagrange插值公式

2011-05-10 11:17  Lecone.JY.HU  阅读(1224)  评论(0编辑  收藏  举报

问题

已知f(x)=ex(3x-ex),利用插值节点x0=1.00,x1=1.02,x2=1.04,x3=1.06,构造三次Lagrange插值公式,由此计算f(1.03)的近似值,并给出其实际误差。

原理

根据线性插值和抛物线插值的基函数构造方法,令

clip_image002

其中clip_image004(i=0,1,..n)为n次多项式,满足clip_image006

可得:clip_image008=clip_image010

则:clip_image012

根据上面知识可以得到本题的公式

clip_image014

误差:

clip_image016

clip_image018

clip_image020

程序框图

clip_image022

结果比较

clip_image024

clip_image026

误差:

clip_image028

结论

1. 误差为 clip_image030这个单位级别可以忽略。

2. clip_image024[1]=clip_image026[1]。所以插值方法算出来基本接近原值。

附件:程序

函数文件fun.m

function y=fun(x)

y=exp(x)*(3*x-exp(x));

主文件main.m

x=[1.00,1.02,1.04,1.06]; %

xt=1.03;

y=[0 0 0 0];

for i=1:4

y(i)=fun1(x(i)); %f(xi)值

end

sums=0;

for i=1:4

prods=1;

for j=1:4

if(i~=j)

prods=prods*(xt-x(j))./(x(i)-x(j)); %联加

end

end

sums=sums+prods*y(i); %联乘

end

sums

fun1(xt)

的风格风格