Can an ODE be solved with an implicit form in MATLAB?

28 views (last 30 days)
I would like to know if MATLAB can solve equations in the form of f(x',x,t) = 0. For example, when the ODE is not in the explict form x' = f(x,t) + u(t), but in the implicit form f(x',x,t) = 0.

Accepted Answer

MathWorks Support Team
MathWorks Support Team on 22 Jan 2010
The general form f(x',x,t) = 0 is a differential algebraic equation (DAE). Implicit ODEs are a special case of DAE's with no algebraic equations. The function ODE15I available in MATLAB version 7.0 (R14) and above can solve fully implicit ODEs and DAEs of index 1.
For previous versions of MATLAB, you may be able to use the function ODE15S as described in the attached document, 'bvp_paper.pdf'.
This paper has many examples of solving DAEs, in addition to the HB1DAE and AMP1DAE examples included in MATLAB 5.3 (R11). Additionally, the following paper may also be helpful:
<http://audiophile.tam.cornell.edu/~als93/SR97.pdf>
For a more complete list of the types of integration available in MATLAB, see the Related Solution listed at the bottom of the page.
You may want to look at "Numerical Solution of Initial-Value Problems in Differential-Algebraic Equations" by K.E. Brenan, S.L. Campbell, and L.R. Petzold for more information about DAEs.
If you have a DAE with index greater than 1, MATLAB’s ODE solvers cannot solve it directly. However, you can apply index reduction on the DAE to reduce it to a DAE with an index of 1 and use ODE15S on that reduced DAE.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!