手机网站网页设计,微信版网站制作,国家建设标准网站,哪个网站可以做水果销售代理Hermite插值满足在节点上等于给定函数值#xff0c;而且在节点上的导数值也等于给定的导数值。对于高阶导数的情况#xff0c;Hermite插值多项式比较复杂#xff0c;在实际情况中#xff0c;常常遇到的是函数值与一阶导数给定的情况。在此情况下#xff0c;n个节点x1,x2,…… Hermite插值满足在节点上等于给定函数值而且在节点上的导数值也等于给定的导数值。对于高阶导数的情况Hermite插值多项式比较复杂在实际情况中常常遇到的是函数值与一阶导数给定的情况。在此情况下n个节点x1,x2,…,xn的Hermite插值多项式的表达式如下 其中 这样就很容易写出代码了关键就是记住公式。
matlab中的实现
Hermite.m function f Hermite(x,y,y_1,x0)
%求已知数据点的向后差分牛顿插值多项式
%已知数据点的x 坐标向量:x
%已知数据点的y 坐标向量:y
%已知数据点的导数向量:y_1
%求得的Hermite插值多项式或x0处的插值:f
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 i1:nh 1.0;a 0.0;%%计算hi和aifor j1: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(in)if(nargin 4)f subs(f,t,x0);elsef vpa(f,6);endend
endHermiteInsert.m x1:0.2:1.8;
y[1 1.0954 1.1832 1.2649 1.3416];
y_1[0.5 0.4564 0.4226 0.3953 0.3727];
fHermite(x,y,y_1)
fHermite(x,y,y_1,1.44)x10:2*pi;
y1sin(x1);
y1_1cos(x1);
xx0:0.5:2*pi;
yyHermite(x1,y1,y1_1,xx);
plot(x1,y1,o,xx,yy,r)