Solving coupled ODE's by ode45
古いコメントを表示
Hi
I have a relatively simple set of coupled ODE's that I am trying to solve by ODE45. The following is the content of the .m-file, which shows the coupled system:
function xprime = eoms(t, x)
xprime = [
1e9 + 5.0e4*x(3) - 50*x(1);
4.0e1*x(1) - 3.3e3*x(2);
2.0e3*x(2) - 5e4*x(3) + 3.5e7*heaviside(t-1)*x(4);
1.0e3*x(2) - heaviside(t-1)*5.0e7*x(4)];
I solve it using the following command:
x0 = [0 0 0 0];
tspan = [0, 2];
[t, x] = ode45(@eoms, tspan, x0);
However when I compile MatLAB just keeps calculating, it doesn't give me a result. I think it has something to due with the fact that the Heaviside step-function, because if I take it out then it nicely solves the remaining part. I have also tried in a competing software, and the same thing happens (actually, there the solver just gives an error).
Maybe it is also due to the very rapid rates in the equations. Anyhow, I am really lost on what to do - unfortunately I need the transient behavior, so I can't just assume steady-state for some of the equations.
Do I have any options here?
Thanks in advance.
Best, Niles.
1 件のコメント
MUFTAH AKROUSH
2015 年 12 月 16 日
Hi. I want to know How i can solve 4 differential equations like this v_dot(1)= 3*x(1)+v(2)-x(2)+v(3)-x(4)-x(5)+v(4); with 2 variables with Function command and ode45?
採用された回答
その他の回答 (2 件)
Shashank
2013 年 6 月 28 日
Star Strider, could you please help me solve this set of four coupled ODEs?
tpcl = @(xi,y) [y(2); ((1 + (y(2)*y(2)))^(1.5))*(y(3) - (A/(y(1)^3)))/sigma; -3*mu_l*y(4)/(rho_l*h_lv*(y(1)^3)); (Twall - Tsat - (Tsat*y(3)/(rho_l*h_lv)))/((y(1)/k_l) + R_int)];
xi_step = 0:1e-8:xi_end;
[XI,Y] = ode15s(tpcl,xi_step,[delta_ad deltaprime_ad delta_p_ad Q_ad]);
Here, apart from the variables y(1), y(2), y(3) and y(4), everything is a constant. I tried ode45 and ode15 but it still did not work. The results look unrealistic to say the least.
1 件のコメント
Marc
2013 年 6 月 29 日
You need to give us your constants. You may want to post this in the newsgroup, which is more for helping folks with there code snafus.
MUFTAH AKROUSH
2015 年 12 月 16 日
0 投票
Hi. I want to know How i can solve 4 differential equations like this v_dot(1)= 3*x(1)+v(2)-x(2)+v(3)-x(4)-x(5)+v(4); with 2 variables with Function command and ode45?
カテゴリ
ヘルプ センター および File Exchange で Ordinary Differential Equations についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!