8
$\begingroup$

I used automatic method for NDSolve. Then I asked myself - which method Mathemathica prefered? I got an answer for this question on this forum, that I need to use:

Select[Flatten[
  Trace[NDSolve[{g[a[t]]*a''[t] + 0.5*dg[a[t]]*(a'[t])^2 + dV[a[t]] ==
       0, a[0] == a0, a'[0] == -u}, a, {t, 0, t0}], 
   TraceInternal -> True]], ! FreeQ[#, Method | NDSolve`MethodData] &]

I got a long answer from Mathematica, from which I show you only two main unique strings:

NDSolve`InitializeMethod[NDSolve'LSODA,{Automatic, Automatic} ...
NDSolve`LSODA[NDSolve`MethodData[4, 22, {{}, False, 12, {NDSolve`Newton,{Automatic}}, None, False}]]

I understood, that Mathematica has chosen for method: LSODA and it's submethod: Newton. Whether I'm correct or this methods have another name? And what does LSODA stand for?

$\endgroup$
3
  • $\begingroup$ I have formatted the code sections in your questions. I think it would make sense if you learn to do that yourself, the syntax is well documented. The higher the total quality of your answer, the more likely you will get an answer. It is also common and welcome to give answers to one's own question, so if you find an answer yourself there is nothing wrong in answering your own question and even accept that. $\endgroup$ Apr 20, 2014 at 8:28
  • $\begingroup$ As for your remaining question: yes, it looks like NDSolve was choosing LSODA, you can find several places where it is mentioned by searching for LSODA in the documentation. One prominent place to look for some more information and references is (stiffness detection)[reference.wolfram.com/mathematica/tutorial/…. The advanced documentation for NDSolve (use this string in the documentation center search field: tutorial/NDSolveOverview) is quite detailed and well worth reading... $\endgroup$ Apr 20, 2014 at 8:32
  • 2
    $\begingroup$ LSODA is similar to the LSODE (the "Livermore Solver for Ordinary Differential/Algebraic equations" or some such). It is composed of stiff and non-stiff methods which switch when stiffness is sensed. The LSODE itself uses the Adams-Moulton method for non-stiff regions and then switches to a variable step, variable order Backward Difference Formula (Euler's method, I think). You can find more information via google. The report by Hindmarsh is also available for download as a pdf file. $\endgroup$
    – dearN
    Apr 20, 2014 at 9:59

1 Answer 1

7
$\begingroup$

LSODE stands for the Livermore Solver for Ordinary Differential Equations. It has a long history, and since the 1980's it has been part of a solver collection ODEPACK. LSODA is a variant of LSODE that tries to automatically switch between stiff and non-stiff solution methods. A pdf manual is also available.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.