reduceDifferentialOrder

Reduces a system of higher-order differential equations to first order.

Category: Mathematics > Equation Solving

Syntax

[eqs1, vars1] = reduceDifferentialOrder(eqs, vars)

Returns equivalent first-order equations and the enlarged variable list.

Description

For each derivative of order two or more, a new variable is introduced for the next lower derivative and the equations are rewritten with it. For y'' + y = 0 the output has the equations Dyt' + y = 0 and Dyt - y' = 0. This is the first step before massMatrixForm or daeFunction.

Input arguments

eqs
Vector of symbolic differential equations.
vars
Vector of the unknown symbolic functions.

Output arguments

eqs1
System of first-order equations.
vars1
Original variables plus the new ones, named like Dyt(t), that stand for derivatives.

Example

Second-order equation

syms y(t)
[eq1, vars1] = reduceDifferentialOrder(diff(y,t,2) + y == 0, y)
Output
eq1 = 
y(t) + diff(Dyt(t), t)
Dyt(t) - diff(y(t), t)
vars1 = 
  y(t)
Dyt(t)

See also

odeToVectorField massMatrixForm daeFunction isLowIndexDAE