matlab Newton向前插值

**********************本文章由计算机专业的孙旭编写,复制请谨慎

function Fun()
clc;
X=[0 1 2 3];
Y=[1 2 17 64];
x0=0.5;
h=1;
New_Front(X,Y,x0);
end


%子函数
function New_Front(X,Y,x0,h)
len_x=length(X);
len_y=length(Y);
if (len_x~=len_y) 
    disp('你输入的维度不相等');
    return;
else
    syms s;
    p=Y(1);
    q=1;
    f=1;
    for i=1:1:len_x-1
        Y(i+1:len_x)=Y(i+1:len_x)-Y(i:len_x-1);
        A(i)=Y(i+1);
        q=q*(s-i+1);
        f=f*i;
        p=p+(q/f)*A(i);
    end
    
    %化简多项式
    simplify(p);
    
    if nargin==4
        disp('所求的插值函数的值为');
        p0=subs(p,'s',(x0-X(1)/h));
        vpa(p0,6),
    else 
        disp('所求牛顿的向前插值多项式为: ');
        p=collect(p);
        p=vpa(p,6),
    end
end
end

    


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值