How to deal with very small and very large parameter values while solving DAE?
Mostra commenti meno recenti
I have to solve a system of differential algebraic equations wherein some of the parameter values are very large (e.g. of the order of 10^5 to 10^10) and some other parameter values are very small (e.g. order of 10^-4 to 10^-6). I use ode15s, but the code breaks saying:
Warning: Failure at t=1.000000e-03. Unable to meet integration tolerances without reducing the step size below the smallest value allowed
(3.552714e-18) at time t.
How do I resolve this?
9 Commenti
Torsten
il 23 Ott 2018
And you are sure the code fails because of the mentionned scaling problem ? It's impossible to give advice without seeing your DAE system.
Monisha S R
il 23 Ott 2018
Modificato: Monisha S R
il 23 Ott 2018
Torsten
il 23 Ott 2018
Since the code stops right at the beginning of the integration, I doubt that it's a matter of scaling. Did you check the time derivatives for NaN or Inf values ?
Monisha S R
il 24 Ott 2018
Monisha S R
il 24 Ott 2018
David Goodmanson
il 24 Ott 2018
Modificato: David Goodmanson
il 25 Ott 2018
Hi Monisha,
I made up names u and nu for new rescaled variables in place of t and zeta respectively. Having thought about it more, I don't think what I wrote in the previous comment is adequate, so I withdrew it.
Monisha S R
il 25 Ott 2018
Torsten
il 26 Ott 2018
When you generate the vector of time derivatives, just omit the semicolon at the end of the line.
Monisha S R
il 26 Ott 2018
Modificato: Monisha S R
il 26 Ott 2018
Risposte (0)
Categorie
Scopri di più su Mathematics in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
