dsolve very slow for system of 2 second order ODEs

13 visualizzazioni (ultimi 30 giorni)
Hi,
I have to solve a system of 2 second order ODEs with 4 initial conditions. They are also coupled (state variables: and ). The solution must absolutely be analytic, because there are 3 unknown variables in the equation which are later (after the computation with dsolve) to be defined in a linear system of equations made out of 3 boundary conditions.
To solve the system of ODEs i use dsolve in its simple form:
[sol1(x),sol2(x)] = dsolve([ODE1 ODE2],initial_conditions)
The problem is, that dsolve just does not compute an analytical solution in a reasonable time frame. I aborted the computation after 12 hours with no solution. I dont even know if the results would be plausible, because the calculations have always taken far too long.
After simplifying my ODEs (just deleting the half of each equation), I found out, that dsolve is capable of solving coupled ODEs the way I intend it to do, so my method is working. It just takes far too long for the actual (and realistic) ODEs to produce solutions.
Is there any to decrease the computational time to at most 1-2 hours? Is there any other way to analytically solve a system of ODEs (maybe with another function than dsolve)?
Thanks in advance!
  3 Commenti
Bjorn Gustavsson
Bjorn Gustavsson il 5 Nov 2020
Your question is too vague. What's your ODEs? Are they too complicated for dsolve to handle? Do they in principal have analytical solutions?

Accedi per commentare.

Risposta accettata

Priysha LNU
Priysha LNU il 4 Gen 2021
Hi,
One way to speed-up the execution is to add a limit on the maximum degree of radicals. The following shows you an example,
S = dsolve(..,'MaxDegree',2);
This will force dsolve to assume implicit formulas for polynomials of degree greater than the specified value.
Refer to the dsolve documentation for more information.
If the exact solution for the input set of ordinary differential equations is relatively complex, then this might be another reason the DSOLVE function takes long time.
Hope this helps!
Thanks!
DISCLAIMER: These are my own views and in no way depict those of MathWorks.

Più risposte (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by