我使用 Scilab 的前向差异 Table 的问题在哪里?

Where is the problem in my Forward Difference Table using Scilab?

所以,我必须像这样对函数 f(x) 进行插值。 x = 0:0.1:2.8; y = [0 0.717 0.999 0.675 0.0583 0.7568 0.9961 0.6312];

这是我目前得到的代码。

clc
clear

x = 0:0.1:2.8;
y = [0 0.717 0.999 0.675 0.0583 0.7568 0.9961 0.6312];

n = length(x);
del = %nan * ones (n ,7) ;
    del (:,1) = y';
    for j = 2:7
        for i = 1: n - j +1
            del (i,j) = del(i+1,j-1) - del(i,j-1);
        end
    end
del = [x'del];
del = round ( del *10^3) /10^3;
mprintf ("%5s,%7s,%8s,%9s,%8s,%8s,%8s",'x','y','dy','d2y','d3y','d4y','d5y')
disp ( del )

它给我 Submatrix incorrectly defined 错误。 可能是哪里出了问题?

xy的长度应该是一样的,但是你的数据不是这样的。例如,您可以设置

y = [0 0.717 0.999 0.675 0.0583 0.7568 0.9961 0.6312];
x = linspace(0,2.8,length(y));

del = [x'del];失败,应该写成(少了一个space)

del = [x' del];

然后你的脚本输出结果:

     x,      y,      dy,      d2y,     d3y,     d4y,     d5y
   0.    0.      0.717  -0.435  -0.171   0.484   0.81   -5.487
   0.4   0.717   0.282  -0.606   0.313   1.295  -4.677   9.689
   0.8   0.999  -0.324  -0.293   1.608  -3.382   5.012   Nan  
   1.2   0.675  -0.617   1.315  -1.774   1.629   Nan     Nan  
   1.6   0.058   0.699  -0.459  -0.145   Nan     Nan     Nan  
   2.    0.757   0.239  -0.604   Nan     Nan     Nan     Nan  
   2.4   0.996  -0.365   Nan     Nan     Nan     Nan     Nan  
   2.8   0.631   Nan     Nan     Nan     Nan     Nan     Nan