Solve 3 Coupled ODEs with NDSolve - Error Fix & Alternatives

  • Thread starter Thread starter bayan
  • Start date Start date
  • Tags Tags
    Coupled Ode
AI Thread Summary
The discussion revolves around solving a set of three coupled first-order ordinary differential equations (ODEs) using NDSolve. The user encounters an error related to division by zero when initializing the equations at t=0, despite attempting to adjust the time range to avoid this issue. Suggestions include using a small epsilon value to offset the initial time, which resolved the problem in a different simulator. The user also inquires about the effectiveness of NDSolve and whether alternative software might be more suitable for solving these equations. Clarification is provided that NDSolve is a function in Mathematica, while another participant mentions successfully using a chemical flowsheeting program as an equation solver without encountering the same issues.
bayan
Messages
202
Reaction score
0
Hi, I need to solve 3 coupled first order ODE's using NDSolve (numerical solution).

This is the code I have used ;

NDSolve[{u'[t] == ((1 - (u[t]/t^2))/(-3 - (u[t]/t^2) - (v[t]/t^2))),
v'[t] == (((u[t]/t^2) - (v[t]/t^2))/(-3 - (u[t]/t^2) - (v[t]/t^2))),
w'[t] == (v[t])/(-3 t^2 - (u[t]) - (v[t])),
u[0] == 0., v[0] == 0., w[0] == 0.}, {u, v, w}, {t, 0.1, 1}]

where u,v and w are functions of t and at t=0, u=v=w=0. However I am getting the following error "Infinite expression 1/0.^2 encountered", but I can't see where the division by zero occurs. Originally t was from 0 to 1, but I tried making it from 0.1 to 1 to ensure no division by zero's were taking place.

Any ideas on how to fix the code? or an alternative way of solving these ode?

Regards
 
Physics news on Phys.org
I don't see anything wrong, sorry. Even tried to solve:
Code:
u as realvariable (initial, 0)  ;
v as realvariable (initial, 0)  ;
w as realvariable (initial, 0)  ;

eps as realparameter (1e-5)  ;
t as realvariable (eps)  ;

t = time + eps  ;
 
$u = ((1 - (u/t^2))/(-3 - (u/t^2) - (v/t^2)))  ;
$v = (((u/t^2) - (v/t^2))/(-3 - (u/t^2) - (v/t^2)))  ;
$w = (v)/(-3*t^2 - (u) - (v))  ;
(the $ stands for a time derivative in this simulator)
and that worked:
uvw.jpg
 
thanks for your reply.

Did NDSolve with the options given work for you? or do you recommend the use of another software to solve those odes?

btw is that code for mathematica?

Regards
 
I don't know where NDSolve lives ? Ah, I googlesee: in MatLab. Don't have that at my disposition.

I abused a chemical flowsheeting program as equation solver, just to see if I would get the same problem as you. Apparently not.
 

Similar threads

Replies
1
Views
2K
Replies
1
Views
1K
Replies
4
Views
3K
Replies
5
Views
2K
Replies
1
Views
2K
Replies
4
Views
1K
Replies
3
Views
8K
Back
Top