how do i get the timestep of odesolver
3 次查看(过去 30 天)
显示 更早的评论
Hello,
i do need the timestep in my equation. Is there a build in way to do that or do i have to monitor it somehow by storing it in a variable between iteration ?
Kind regards
Moritz
0 个评论
回答(2 个)
Nathan Crosty
2013-7-23
The ODE solvers actually return time... You don't need to do anything extra.
[T,Y] = solver(odefun,tspan,y0)
Where T is the time, and solver is your choice of an ODE function.
0 个评论
Moritz
2013-7-25
4 个评论
Richard Brown
2013-7-26
I suggest reformulating your problem so you don't need the time step. You can use the actual time t, but the step length is the business of the ODE solver, not your equation ...
Moritz
2013-8-5
Richard, you are probably right. I am currently working on it.
If you are interested:
The Formulas: www.ing-mat.udec.cl/~rburger/papers/bck.pdf
It was formula (66) which confused me, but i think i can replace it with equation (56).
The numerical scheme is described on page 4545. I think the formulas are written for an implementation in e.g C++. Using loops is far to slow in matlab.
I solved the same model for centrifugation with the method of lines and ode45. But it was much easier for that case.
So i am rewriting the equations in differential form. Probably it would be possible to code a matrix. But i never did that and i am faster with the MOL.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Ordinary Differential Equations 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!