2014-04-19 57 views
0

嗨我是新來的scilab,沒有太多的數學背景。 我一直在下面的另一個示例代碼和我正在顯示錯誤10000以下代碼:Scilab Error 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

首先加入clear作爲第一條語句,這將在運行函數之前清除所有變量。在上面的腳本中,您不聲明ye

此外,對於x0,hxn這些值的說明x=[x0:h:xn];也很奇怪。你現在試圖從1950年開始獲得一個x值列表,並且直到達到5時纔會有10個積極步驟。

我會建議嘗試每一行,看看結果是否如預期。你不需要知道代碼的所有內容,但是可能的x和y應該至少包含一些值。錯誤是告訴你它期望一個非空的參數2矩陣。這是y,所以基本上它告訴你y是空的。