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

조회 수: 6 (최근 30일)
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.

채택된 답변

MathWorks Support Team
MathWorks Support Team 2010년 1월 22일
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.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Ordinary Differential Equations에 대해 자세히 알아보기

제품

Community Treasure Hunt

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

Start Hunting!

Translated by