[問題] 有關Runge-Kutta的程式問題已回收

看板MATLAB作者 (乖乖)時間15年前 (2010/03/26 00:32), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
以下的函式是我依照一本Matlab書上的程式照著打,然後我自己再建一主程式去call函式, 可是總是出現下列的錯誤訊息,後來我將函式中global左邊的%拿掉,他還是說我 Undefined function or variable,我不懂的是,我都已經在feval中給了初始值, 為何還會出現這樣的錯誤呢? 我的程式要如何修改才能正常運作呢? %================主程式========================= feval('RK45', 1, 1, 10, 10) %================主程式========================= %================函式========================= function [x,y]=RK45(f,xinit,yinit,b,n) % 4th order Runge-Kutta Method % global xinit,yinit,b,n; h=(b-xinit)./n; x=zeros(n+1,1); y=zeros(n+1,1); x(1)=xinit; y(1)=yinit; for i=1:n x(i+1)=x(i)+h; k1=feval(f,x(i),y(i)); k2=feval(f,x(i)+h/2,y(i)+h/2*k1); k3=feval(f,x(i)+h/2,y(i)+h/2*k2); k4=feval(f,x(i+1),y(i)+h*k3); y(i+1)=y(i) + h/6*(k1+2*k2+2*k3+k4); end format long %================函式========================= %================錯誤訊息========================= ??? Input argument "n" is undefined. Error in ==> RK45 at 5 h=(b-xinit)./n; Error in ==> SolverRK45 at 6 feval('RK45', 1, 1, 10, 10) %================錯誤訊息========================= 謝謝幫忙,請多多指教. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.41.177

03/26 00:37, , 1F
n的數值沒給 >..<
03/26 00:37, 1F

03/26 02:08, , 2F
你主程式只給了4個變數,但是你副程式有5個變數
03/26 02:08, 2F

03/26 02:08, , 3F
所以他沒辦法定義n值
03/26 02:08, 3F

03/26 10:22, , 4F
f=RK45, xinit=1, yinit=1, b=10, n=10
03/26 10:22, 4F

03/26 10:23, , 5F
feval()我不是已經給了這五個參數嗎?
03/26 10:23, 5F

03/26 10:24, , 6F
如果不是這樣設定的話,可以舉個例子給我看嗎?感激不盡!
03/26 10:24, 6F
文章代碼(AID): #1Bgv0CDT (MATLAB)