[問題] for迴圈用在解ODE裡已回收

看板MATLAB作者 (小小世界)時間16年前 (2009/05/25 17:19), 編輯推噓1(103)
留言4則, 2人參與, 最新討論串1/1
就是我是想說..解ODE時 公式上的係數一定要是以知,這樣才可以跑ODE 不過我就想說把其中一個係數改成一個range試試看 如下: function dy = myf(t,y) n = input('next: ') v = 0; if n <= 0 disp('no!') for v = 0:n v = v + 1; dy = 10-11.*y*v; end end 然後我接下來就打了這些... tspan = [1:50]; yzero = 10; s = input('as ') ii = 0; if n <= 0 disp('imposible') else for ii = 0:s ii=ii+1 [t,y] = ode45(@myf1,tspan,yzero); plot(t,y) end end 我的想法是說,這樣的for迴圈裡,要跑幾次就由我輸入的n值去決定 然後就可以去跑n次的ode這樣 不過我在去跑程式時,當matlab要去跑ode時,卻不會跳出來,一直叫我去輸入n值 我有用break,不過matlab還是會一直叫我去輸入值不會停ˊˋ 所以就想要請問板上的各位大大,這個問題要怎麼辦啊?? (我有試過矩陣去試,但是好像還是不行= ="") 還有題外話,那假如跑的出來,那在plot上面可以說我輸入s = 5就可以跑出五個圖嗎?? 像是s = 1的圖,s = 2的圖這樣類推到五@@ 如上,謝謝大家(淚奔 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.57.103.202

05/25 21:16, , 1F
這是一定的,數值法解ode要跑那個function跑非常多次,
05/25 21:16, 1F

05/25 21:17, , 2F
而你又把input寫在function裡,才會需要一直輸入不停
05/25 21:17, 2F

05/26 00:39, , 3F
喔喔@@ 了改了 不過不把它放在裡面的話 它就會出現
05/26 00:39, 3F

05/26 00:40, , 4F
錯誤說。
05/26 00:40, 4F
文章代碼(AID): #1A6cA-xa (MATLAB)
文章代碼(AID): #1A6cA-xa (MATLAB)