艾尔米特插值"/>
Matlab艾尔米特插值
埃尔米特插值应用实例。
根据下表所示的数据实例求出埃尔米特插值多项式,并计算当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);elsedisp('y和y的导数不相等!');return;end
elsedisp('x和y的维数不相等!');return;
end
for i=1:nh=1.0;a=0.0;for j=1:nif(j~=i)h=h*(t-x(j))^2/((x(i)-x(j))^2);a=a+1/(x(i)-x(j));endendf=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);elsef=vpa(f,6);endend
end
脚本文件代码
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)
显示结果
更多推荐
Matlab艾尔米特插值
发布评论