嗨,我是scilab的新手,没有太多的数学背景。 我一直在关注另一个例子的代码,并为以下代码显示错误10000:
function [z]=f(x,y)
z=0.026*(1.0-(y/ym))*y;
endfunction;
ym=12000;
x0=1950;y0=2555;xn=5;h=10;
x=[x0:h:xn];
y=ode("rk",y0,x0,x,f);
disp("x y")
disp("--------")
disp([x'y']);
function z=fe(x)
z=ym/(1-(1-ym/y0)*e^(-k*(t-t0)));
endfunction;
xe=(x0:h/10:xn);
n=length(xe)
for i=1:n
ye(i)=fe(xe(i));
end;
plot (x,y,'ro',xe, ye,'-b');legend ('rk4','Exact',3);
xtitle('solving dy/dx=k(1-y/ym)y','x','y');
我已经完成了其他一些错误消息。我迷路了,不知道问题是在代码中还是我设置问题的方式。以下是当前的错误消息:
!--error 10000
plot: Wrong size for input argument #2: A non empty matrix expected.
at line 57 of function checkXYPair called by :
at line 235 of function plot called by :
plot (x,y,'ro',xe, ye,'-b');legend ('rk4','Exact',3);
at line 25 of exec file called by :
我将不胜感激任何帮助。 感谢
答案 0 :(得分:0)
首先添加clear
作为第一个语句,这将在运行函数之前清除所有变量。在上面的脚本中,您不会声明ye
。
对x=[x0:h:xn];
,x0
和h
的值,xn
语句也很奇怪。您现在正在尝试从1950年开始获取x值列表,并且正向步长为10,直到达到5。
我建议尝试每一行,看看结果是否符合预期。您不需要知道有关代码的所有内容,但可能x和y应至少包含一些值。该错误告诉您它期望参数2的非空矩阵。这是y
,所以基本上它告诉您y
为空。