牛顿插值Matlab编程计算,并验证输出

所用到的公式

1、差商

 2、差商表格如下

xkf(xk)一阶均差二阶均差三阶均差...
x0f(x0)
x1f(x1)f(x0,x1)
x2f(x2)f(x1,x2)f(x0,x1,x2)
x3f(x3)f(x2,x3)f(x1,x2,x3)f(x0,x1,x2,x3)
x4f(x4)f(x3,x4)f(x2,x3,x4)f(x1,x2,x3,x4)...
..................

 3、计算数值

 

4、代码 

%给x轴赋值
for i=1:1:10
    x{i}=i;
end
%读出X轴的已知点的数量
num = numel(x);

%给y轴赋值,为了便于验证使用方程
for i=1:1:num
    y{i} = x{i}^3-6*x{i}^2-x{i}*5+16;
end

%绘制图形的点云
xInit=x{1};%初始值
xStep=0.1;%绘制图形步长
xEnd=x{num};%最后一个值

f = cell(num,num);%预分配存储空间

%原点云
for i=1:1:num
    f{i,1}=y{i};
end

%差商计算,计算储存在主对角线上
for j=2:1:num
    for i=j:1:num
        f{i,j} = (f{i,j-1} - f{i-1,j-1})/(x{i} - x{i-j+1});
    end
end

%计算其值
m=1;
for k=xInit:xStep:xEnd
    xy{m,1}=k;
    %插值计算结果
    result =f{1,1};
    for j=2:1:10
        product =1;
        for i=1:1:j-1
           product = product *( xy{m,1}-x{i});
        end
        result  = result  + f{j,j}*product;
    end
    %计算完成
    xi(m)=k;
    yi(m)=result;
    xy{m,2}=result;
    m=m+1;
end

%图像输出
plot(xi,yi);

5、运行结果

6、差商结果

7、拟合曲线

把牛顿插值的结果,生成曲线然后,在用MATLAB拟合曲线

结果和输入的公式相同

完成

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逐梦之程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值