interpretation of ode solver stats

2 vues (au cours des 30 derniers jours)
Siva
Siva le 30 Avr 2021
Modifié(e) : Siva le 30 Avr 2021
Hi,
I am using different solvers to solve a stiff ODE with a (non-constant) mass-matrix. The size of the system is about 70.
I am using the following options:
opt = odeset('Jacobian', @jacobian, 'Mass', @massmatrix, ...
'MStateDependence', 'weak', ...
'stats', 'on');
In the interest of potentially finding opportunities to improve performance, I am looking at the solver statistics.
Using ode15s, I get the following:
27930 successful steps
18568 failed attempts
83300 function evaluations
10844 partial derivatives
25440 LU decompositions
83299 solutions of linear systems
Using ode23t, I get the following:
12803 successful steps
12141 failed attempts
47784 function evaluations
6982 partial derivatives
17132 LU decompositions
47783 solutions of linear systems
ode23t seems more efficient for this problem.
Also, ode23t, for the same solver options such as default tolerance gives a better solution in terms of other problem-specific measures such as energy conservations etc. This is probably to be expected since the ode23t documentations says "... and you need a solution without numerical damping".
The following are my questions:
  1. Why the number of LU decompositions is greater than the number of partial derivative (jacobian) evaluations? Is it because this count includes factorization of not only the jacobian, but also the mass matrix?
  2. One option that can be supplied is 'MvPattern', which makes me think that the solvers are computing derivatives of the mass matrix. Is there a way to determine the count of such computations, and if there is room for improving efficiency there?
  3. Is there any guidance to minimize the number of failed attempts?
Thank you.
Siva

Réponses (0)

Catégories

En savoir plus sur Numerical Integration and Differential Equations dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by