所用到的公式
1、差商
2、差商表格如下
一阶均差 | 二阶均差 | 三阶均差 | ... | ||
... | |||||
... | ... | ... | ... | ... | ... |
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拟合曲线
结果和输入的公式相同
完成