首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Scilab时,我的前向差异表的问题在哪里?

使用Scilab时,我的前向差异表的问题在哪里?
EN

Stack Overflow用户
提问于 2019-12-08 20:58:41
回答 1查看 51关注 0票数 0

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

这是我当时得到的代码。

代码语言:javascript
复制
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 )

它给了我错误的子矩阵定义。问题出在哪里?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-09 15:54:42

xy应该具有相同的长度,但您的数据不是这样的。例如,您可以设置

代码语言:javascript
复制
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];失败,应该写成(缺少一个空格)

代码语言:javascript
复制
del = [x' del];

然后,您可以通过脚本输出结果:

代码语言:javascript
复制
     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 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59235618

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档