作业帮 > 综合 > 作业

一下是Hermite插值MATLAB程序代码,可是只能求出插值的函数值,我还想得到插值函数的导数值,谁能帮我加一点代码实

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/04/29 04:12:46
一下是Hermite插值MATLAB程序代码,可是只能求出插值的函数值,我还想得到插值函数的导数值,谁能帮我加一点代码实现这个功能啊?
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
问题已基本解决,修改如下代码即可:if(i==n)
if(nargin == 4)
f1=diff(f,'t',1);
f = subs(f,'t',x0);
f_1=subs(f1,'t',x0);
else
f = vpa(f,6);
f1=diff(f,'t',1);
end
end
问题补充:请求高手帮忙给个hermite插值法和拉格朗日插值法的matlab程序,要求Matlab函数M文件Lagrange程序 function yy=lagrange(x,y,xi) m=length(x)