牛顿插值的matlab代码实现

Here is another way to describe the matlab code
We look directly at the code, the detailed theorem please find yourself.

The code has a.mlx filename extension

x= [8.1, 8.3, 8.6, 8.7];y= [16.94410, 17.56492, 18.50515, 18.82091];%%初始散点
[p,D]=newt(x,y)
simplify(p)%%化简
t=linspace(8.1,8.7,100);%%生成等距节点
b=subs(p,t)
plot(t,b)%%绘制曲线图
hold on
scatter(x,y)%%绘制散点图
function [p,D]=newt(x1,y1)
%D:均差表
%p:插值多项式
syms x %%定义符号变量,进行符号运算,方便求插值表达式
N=length(x1);%%计算x1数组的数据数量
D=zeros(N,N);%%初始化差商表
D(1:N,1)=y1';%%差商表第一列赋值
%%计算差商表
for k=2:N
    for i=k:N
    D(i,k)=(D(i,k-1)-D(i-1,k-1))/(x1(i)-x1(i+1-k));
    end
end
p=D(1,1);%%插值多项式初始化
for k=2:N
     t=1;
     for j=1:k-1
         t=t*(x-x1(j));
     end
     p=D(k,k)*t+p;
end
end

*Running result
在这里插入图片描述

!!The data of b is not completely captured, please run it yourself to see the detailed results!!
在这里插入图片描述
Please correct any mistakes. Thank you!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值