插值法的Hermite插值

插值法的Hermite插值,第1张

Hermite插值是利用未知函数f(x)在插值节点上的函数值及导数值来构造插值多项式的,其提法为:给定n+1个互异的节点x0,x1,……,xn上的函数值和导数值求一个2n+1次多项式H2n+1(x)满足插值条件

H2n+1(xk)=yk

H'2n+1(xk)=y'k k=0,1,2,……,n ⒀

如上求出前歼的H2n+1(x)称为2n+1次Hermite插值函键源数稿悔态,它与被插函数一般有更好的密合度.

★基本思想

利用Lagrange插值函数的构造方法,先设定函数形式,再利用插值条件⒀求出插值函数.

    在插值的时候不仅考虑函数值信息,也同时考虑导数的信息,一般来说,我们假设插值点为

 歼陪如                           

也就是说,一直从 阶导到 阶导,那么实际上就是一共 个插值点,所以插值得到 次多项式。

    并且,按照之前所说的误差公式,其误差为

     

    类比lagrange和Newton,同样有两种类似的构造方乱粗法。

    下面举例说明

    可以看出,这里是三个点构造一个二次插值函数,那么下面说明两种构造方法。

(1)构造基函数

                

    接下来利用基函数在各个点取值(1或0)的情况,进行待定系数法的求解。

(2)类Newton插值

总结:Hermite插值在处理上其实就是把导数情况也看作新的插值点,那么构造和误差公式氏启等都能和之前的普通插值类推过来。下一篇笔记写一下样条插值。

function f = Hermite(x,y,y_1,x0)

syms t

f = 0.0

if(length(x) == length(y))

if(length(y) == length(y_1))

n = length(x)

else

disp('y和y的导数的维数不相等差态!')

return

end

else

disp('x和y的维数不相等!')

return

end

for i=1:n

h = 1.0

a = 0.0

for j=1:n

if( j ~= i)

h = h*(t-x(j))^2/((x(i)-x(j))^2)

a = a + 1/(x(i)-x(j))

end

end

f = f + h*((x(i)-t)*(2*a*y(i)-y_1(i))+y(i))

if(i==n)

if(nargin == 4)

f = subs(f,'t',x0)

else

f = vpa(f,6)

end

end

end

自虚笑源己升铅分析吧


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12244244.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存