Numerical methods for system of ODES

Click For Summary

Discussion Overview

The discussion focuses on numerical methods for solving a system of nonlinear coupled ordinary differential equations (ODEs). Participants explore various approaches to numerically integrate these equations, considering the challenges posed by nonlinearity and potential singularities in the equations.

Discussion Character

  • Technical explanation
  • Debate/contested
  • Mathematical reasoning

Main Points Raised

  • One participant inquires about methods to "evolve" the system of ODEs, suggesting the use of adaptive step size methods like the Dormand-Prince method.
  • Another participant questions the meaning of "evolve" and seeks clarification on the numerical integration process.
  • Concerns are raised about potential issues with singularities in the equations, specifically when certain variables approach critical values.
  • A participant mentions difficulties with the boost libraries (odeint) and notes that their output values do not change as expected, indicating a lack of experience in debugging the numerical method.
  • Suggestions include using Matlab's ode45 function for integration, which also employs the Dormand-Prince method, and checking the implementation against known results to identify errors.
  • There is a cautionary note about the derivatives being small due to the factors in the equations, which may lead to minimal movement in the results under certain initial conditions.

Areas of Agreement / Disagreement

Participants express varying opinions on the best numerical methods to use, and there is no consensus on a single approach. Concerns about singularities and the behavior of the system under specific conditions are acknowledged, but no definitive solutions are reached.

Contextual Notes

Participants highlight potential limitations related to singularities in the equations, which may affect the numerical integration process. The discussion also reflects uncertainty regarding the initial conditions and their impact on the system's behavior.

Themis
Messages
7
Reaction score
0
Hi there. I want to evolve a system of non linear coupled ODEs

\frac{dx}{dt} = \frac{-k}{x^5(56-y^8)^{9/2}}(85+y^{5} + y^{6})

\frac{dy}{dt} = \frac{-k}{x^4(56-y^5)^{7/2}}(44+y^2)

Let's say I have the initial conditions. What numerical method someone could use to solve this? adaptive step size like RK dormand prince method? I am a bit confused cause i tried some with no good results (maybe cause I am not good programmer, not of the method's fault)
 
Technology news on Phys.org
Themis said:
Hi there. I want to evolve a system of non linear coupled ODEs

\frac{dx}{dt} = \frac{-k}{x^5(56-y^8)^{9/2}}(85+y^{5} + y^{6})

\frac{dy}{dt} = \frac{-k}{x^4(56-y^5)^{7/2}}(44+y^2)

Let's say I have the initial conditions. What numerical method someone could use to solve this? adaptive step size like RK dormand prince method? I am a bit confused cause i tried some with no good results (maybe cause I am not good programmer, not of the method's fault)
What do you mean by the term "evolve"?
 
SteamKing said:
What do you mean by the term "evolve"?
Solve them numerically,Any suggestion due to the non linearity and the denominator?
 
Themis said:
Solve them numerically,Any suggestion due to the non linearity and the denominator?
Well, obviously you are going to have a problem if y5 = 58 or y8 = 58 or x = 0.

But the comment, "I tried some with no good result" doesn't really specify what has happened in your case.
 
Yes I noticed that problem with the anomalies. What I don't understand is what method someone could use to numerical integrate this kind of equations. I understand that an adaptive step size method is best for this problem but there are a few and someone with experience could advise a method to approach the problem. I tried to use boost libraries (odeint) but the results are not good. When I run the program the output values seem not to change at all when they should be and the lack of experience doesn't help to find the problem. If you know how to use boost I can't show what I did.
 
As first approach try to use Matlab ode45 function to integrate ODE and see what happens.
If you already have implemented a numerical method for solving ODE try to use it on known results to check that you code has no error.
 
soarce said:
As first approach try to use Matlab ode45 function to integrate ODE and see what happens.
That's equivalent to what the OP already did. Matlab's ode45 uses Dormand Prince by default.

If you already have implemented a numerical method for solving ODE try to use it on known results to check that you code has no error.
I would advise stepping back even further and checking where did those derivatives came from. The singularities in the derivatives are a bit suspect.

To the OP: What are the initial values for x and y, and what is k? If x>1 and 0<y<1, you're not going to see much movement. The derivatives are small because of the factors of 1/x^5 and 1/x^4. Moreover, those singularities at x=0, y=56^(1/8), and y=56^(1/5) make this a very stiff system.
 
  • Like
Likes   Reactions: Pepper Mint

Similar threads

  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
3
Views
2K
  • · Replies 8 ·
Replies
8
Views
2K
  • · Replies 6 ·
Replies
6
Views
2K
  • · Replies 4 ·
Replies
4
Views
6K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 9 ·
Replies
9
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 3 ·
Replies
3
Views
4K