Matlab Hermite(2n+1)插值

来源:互联网 发布:数据科学实战 微盘 编辑:程序博客网 时间:2024/05/17 02:50
**********************本文章由计算机专业的孙旭编写,复制请谨慎function Fun()clc;X=[1 2];Y=[1 9];Z=[4 12]x0=1.65;Hermite(X,Y,Z);end%子函数function Hermite(X,Y,Z,x0)len_x=length(X);len_y=length(Y);len_z=length(Z);if (len_x~=len_y && len_y~=len_z)     disp('你输入的维度不相等');    return;else    syms x;    p=0;        for i=1:1:len_x        q=1;        for j=1:len_x            if j~=i                q=q*(x-X(j))/(X(i)-X(j));            end        end        f=diff(q,x);        a=(1-2*(x-X(i))*f)*q*q;        b=(x-X(i))*q*q;                p=p+Y(i)*a+Z(i)*b;    end        %化简多项式    simplify(p);        if nargin==4        disp('所求的埃尔米特插值函数的值为');        p0=subs(p,'x',x0);        vpa(p0,6),    else         disp('所求的埃尔米特插值多项式为: ');        p=collect(p);        p=vpa(p,6),    endendend    

原创粉丝点击