作者saisai60 (勒勒)
看板MATLAB
標題[討論] 連續解ODE
時間Wed Oct 17 15:44:15 2012
先附上其中有問題之程式碼
for g2=1:15000
fx=ph(g2);
Inp=aini;
[X1,Y1] = ode23(@ODE_Func, [(g2-1)*dx g2*dx],Inp,options,...);
ind = size(X1,1);
aini=[Y1(ind,1) Y1(ind,2) Y1(ind,3) Y1(ind,4)];
end
程式目的是一過程經過連續ODE的最後結果,每一格ODE之結果為下一格ODE之初使條件,
但由於計算量實在過大,計算天數超過百天,有沒有辦法在不使用Mex的方式下,
再將以上程式簡化呢?
請教各位了,謝謝。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.42.210
1F:→ okgogogo:fx做何用? 為何要放在迴圈裡? 10/17 17:44
2F:→ saisai60:Fx為函數變數 每移動x, Fx將會為正一或是負一 10/18 14:01
3F:→ saisai60: 每移動dx Fx=-1 or +1 , +1,-1沒有規律性 10/18 14:02
4F:推 gaviniscool:ODE放迴圈內MATLAB我還沒找到好方法 01/13 13:44
5F:→ gaviniscool:算蠻慢的,改用C++的ODEINT庫 再寫成MEX給MTLAB呼叫 01/13 13:45
6F:→ gaviniscool:快了一百倍 01/13 13:45