📄 hermite.asv
字号:
function yi=Hermite(x,y,ydot,xi)
%Hermite 插值公式,其中,
%x为向量,全部的插值节点;
%y为向量,插值节点处的函数值;
%ydot为向量,插值节点处的导数值,
%如果此处值缺省,则用均差代替导数,
%端点用向前、向后均差,中间点用中心均差;
%xi为标量,自变量x;
%yi为xi处的函数估计值。
%如果没有给出y的导数值,则用均差代替导数
if isempty(ydot)==1
ydot=gradient(y,x);
end
n=length(x); m1=length(y); m2=length(ydot);
%输入x,y和y的导数的个数必须相同
if n~=m1|n~=m2|m1~=m2
error('The lengths of X,Y and Ydot must be equal!');
return;
end
p=zeros(1,n);q=zeros(1,n); yi=0;
for k=1:n
t=ones(1,n);z=zeros(1,n);
for j=1:n
if j~=k
%插值节点必须互异
if abs(x(k)-x(j))<eps
error('the DATA is error!');
return;
end
t(j)=(xi-x(j))/(x(k)-x(j));
z(j)=1/(x(k)-x(j));
end
end
p(k)=prod(t);q(k)=sum(z);
yi=yi+y(k)*(1-2*(xi-x(k))*q(k))*p(k)^2...
+
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -