1 / 7
文档名称:

埃尔米特插值.doc

格式:doc   大小:218KB   页数:7页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

埃尔米特插值.doc

上传人:aibuaiwo1318 2017/9/19 文件大小:218 KB

下载得到文件列表

埃尔米特插值.doc

文档介绍

文档介绍:2013-2014(1)专业课程实践论文
题目:埃尔米特插值

一、算法理论
1、埃尔米特插值多项式
设已知函数在节点上的函数值以及一切导数值,要求一个插值多项式,使其满足
, , (1)
显然,由条件(1)可以确定一个次数不高于的代数多项式,曲线与在节点处不仅重合而且有公共切线。我们采用拉格朗日插值基函数的方法。先求插值基函数,共个基函数,每一个基函数都是一个次多项式,且满足条件
(2)
这里
(3)
于是满足条件(1)的插值多项式可写成用插值函数表示的形式
(4)
由条件(2),显然有下面的问题就是要求满足条件(2)的与为此,可利用拉格朗日插值基函数,由条件(2)有个二重零点,于是可令
由条件(2)有
解出
由于

于是
(5)
同理,可得
(6)
将(5)式、(6)式代入式(4)便得到埃尔米特插值多项式
(7)
满足条件(1)的埃尔米特插值多项式是唯一的。这可用反证法证明,此处从略。
2、两点三次埃尔米特插值
设已知在上的节点上的函数值及一阶导数值,则可按公式(7)写出三次埃尔米特插值多项式
二、算法框图
埃尔米特插值框图如下:
j=j+1
k=n+1

k=k+1


开始
输入x,


j=n+1

输出y
结束
=




=



两点三次埃尔米特插值框图如下:
开始
输入x,
输出y
结束
算法程序

function yy=hermite2(x,y,dy,xx)
n=length(y);m=length(x);l=length(dy);k=length(xx);
if m~=n,error('向量长度不一致');end;
if n~=l,error('向量长度不一致');end;
z=zeros(1,k);
for j=1:k
s=0;
for t=1:m;
a=0;b=1;
for i=1:n;
if x(t)~=x(i)
a=a+1/(x(t)-x(i));
b=b*((xx(j)-x(i))/(x(t)-x(i)));
end
end
s=s+(y(t)*(1-2*(xx(j)-x(t))*a)*b^2+dy(t)*(xx(j)-x(t))*b^2);
end
z(j)=s;
end
yy=z;

function yy=hermite(x,y,dy,xx)
n=length(y);m=length(x);l=length(dy);k=length(xx);
if m~=n,error('向量长度不一致');end;
if n~=l,error('向量长度不一致');end;
z=zeros(1,k);
for i=1:k;
s=0;
a1=(1-2*(xx(i)-x(1)/(x(1)-x(2))))*((xx(i)-x(2))/(x(1)-x(2)))^2;
a2=(1-2*(xx(i)-x(2)/(x(2)