2013-12-10 21 views
-1

編輯:我現在有程序的第一部分工作,在方程兩邊輸入方程式(感謝您的幫助)。現在,我似乎更遠有相關的問題下來一大塊,看起來像這樣的程序:新版matlab輸入問題。試圖使用舊程序

for J = 1:M 
    Z = H*F(J,M,V,ss); 
    K1(J) = Z; 
end; 

它給我這個錯誤:

??? Undefined function or method 'F' for input arguments of type 
'cell'. 

Error in ==> RungeKuttaSystem at 110 
    Z = H*F(J,M,V,ss); 

再次好像它不喜歡我的方程的格式,我不太明白'細胞'在做什麼。請耐心等待,我正在盡我所能自行解決這個問題,但我被卡住了。謝謝

從原來的問題: 我正在爲大學數值方法類的項目工作,我的教科書(負擔和faires 9e)有一個過時的在線伴侶,其中包括我們正在工作的一些算法的matlab代碼用。這些程序是在2004年發佈的,顯然它們是爲早期版本的matlab編寫的,但我已經運行了其中的十個或十五個,並且它們都與MatLab 2010b一起運行良好。這個特定的程序似乎與新版本不兼容。

代碼的開頭:

% RUNGE-KUTTA FOR SYSTEMS OF DIFFERENTIAL EQUATIONS ALGORITHM 5.7 
% 
% TO APPROXIMATE THE SOLUTION OF THE MTH-ORDER SYSTEM OF FIRST- 
% ORDER INITIAL-VALUE PROBLEMS 
%   UJ' = FJ(T, U1, U2, ..., UM), J = 1, 2, ..., M 
%   A <= T <= B, UJ(A) = ALPHAJ, J = 1, 2, ..., M 
% AT (N+1) EQUALLY SPACED NUMBERS IN THE INTERVAL (A,B). 
% 
% INPUT: ENDPOINTS A,B; NUMBER OF EQUATIONS M; INITIAL 
%   CONDITIONS ALPHA1, ..., ALPHAM; INTEGER N. 
% 
% OUTPUT: APPROXIMATION WJ TO UJ(T) AT THE (N+1) VALUES OF T. 
syms('OK', 'M', 'I', 'A', 'B', 'ALPHA', 'N', 'FLAG'); 
syms('NAME', 'OUP', 'H', 'T', 'J', 'W', 'L', 'K','ss'); 
syms('K1','K2','K3','K4','Z','kk'); 
TRUE = 1; 
FALSE = 0; 
fprintf(1,'This is the Runge-Kutta Method for Systems of m equations\n'); 
fprintf(1,'This program uses the file F.m. If the number of equations\n'); 
fprintf(1,'exceeds 7, then F.m must be changed.\n'); 
OK = FALSE; 
while OK == FALSE 
    fprintf(1,'Input the number of equations\n'); 
    M = input(' '); 
    if M <= 0 | M > 7 
      fprintf(1,'Number must be a positive integer < 8\n'); 
    else 
      OK = TRUE; 
    end; 
    end; 
    ss = cell(M,1); 
for I = 1:M 
    fprintf(1,'Input the function F_(%d) in terms of t and y1 ... y%d\n', I,M); 
    fprintf(1,'For example: y1-t^2+1 \n'); 
    kk = input(' '); 
    ss{I} = kk; 
    end; 
+0

回答這個問題是不可能的,因爲我們不知道'ss'的預期數據類型。 'kk = input('','s');'會移除此錯誤,但可能會導致其他錯誤。 'ss'似乎是函數句柄或字符串。 – Daniel

回答

1

這個片段重現該問題:

clear 
input('') 

然後在命令窗口中直接輸入:

a 

Error using input 
Undefined function or variable 'a'. 

這是因爲您需要鍵入:

'a' 

即您需要提供一個字符串而不是a(除非它包含一個字符串)中的值。

+0

非常感謝,這似乎工作。我在與使用函數中的方程相關的代碼中存在相關問題。如果你能看一看,這將是非常有幫助的。謝謝 – user3087978

+0

@ user3087978在這個論壇上有同樣多的問題。 – Oleg

1

看起來好像你的功能F不在範圍內。

這種類型的錯誤通常不是由於將錯誤的輸入提供給F而引起的,因此不會首先查看。

+0

非常感謝丹尼斯。我實際上意識到我錯過了F函數的.m文件。我已經糾正了這一切,現在一切正常。 – user3087978

相關問題