Matlab艾尔米特插值

来源:互联网 发布:3b线切割编程小狗图案 编辑:程序博客网 时间:2024/06/05 20:04

埃尔米特插值应用实例。

根据下表所示的数据实例求出埃尔米特插值多项式,并计算当x=0.2时的y值

M文件代码

function f = Hermite( x,y,y_1,x0 )%Hermite.m插值求已知数据点的艾尔米特插值多项式%x为数据点的x坐标向量%y为数据点的y坐标向量%x0为插值的x坐标%f为求得的埃尔米特插值多项式或在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;    endelse    disp('x和y的维数不相等!');    return;endfor 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    endend

脚本文件代码

clc;clear all;x=[1 1.2 1.4 1.6 1.8];y=[1 1.0954 1.1832 1.2649 1.3416];y_1=[0.5000 0.4516 0.4226 0.3953 0.3727];disp('显示Hermite插值多项式:');f=Hermite(x,y,y_1)disp('显示在x=1.8处的Hermite插值:')f=Hermite(x,y,y_1,1.8)

显示结果

1 0