isLowIndexDAE

Check if differential index of system of equations is lower than 2

Syntax

``isLowIndexDAE(eqs,vars)``

Description

example

````isLowIndexDAE(eqs,vars)` checks if the system `eqs` of first-order semilinear differential algebraic equations (DAEs) has a low differential index. If the differential index of the system is `0` or `1`, then `isLowIndexDAE` returns logical `1` (true). If the differential index of `eqs` is higher than `1`, then `isLowIndexDAE` returns logical `0` (false).The number of equations `eqs` must match the number of variables `vars`.```

Examples

Check Differential Index of DAE System

Check if a system of first-order semilinear DAEs has a low differential index (`0` or `1`).

Create the following system of two differential algebraic equations. Here, `x(t)` and `y(t)` are the state variables of the system. Specify the equations and variables as two symbolic vectors: equations as a vector of symbolic equations, and variables as a vector of symbolic function calls.

```syms x(t) y(t) eqs = [diff(x(t),t) == x(t) + y(t), x(t)^2 + y(t)^2 == 1]; vars = [x(t), y(t)];```

Use `isLowIndexDAE` to check the differential order of the system. The differential order of this system is `1`. For systems of index `0` and `1`, `isLowIndexDAE` returns `1` (`true`).

`isLowIndexDAE(eqs, vars)`
```ans = logical 1```

Reduce Differential Index of DAE System

Check if the following DAE system has a low or high differential index. If the index is higher than `1`, then use `reduceDAEIndex` to reduce it.

Create the following system of two differential algebraic equations. Here, `x(t)`, `y(t)`, and `z(t)` are the state variables of the system. Specify the equations and variables as two symbolic vectors: equations as a vector of symbolic equations, and variables as a vector of symbolic function calls.

```syms x(t) y(t) z(t) f(t) eqs = [diff(x(t),t) == x(t) + z(t),... diff(y(t),t) == f(t), x(t) == y(t)]; vars = [x(t), y(t), z(t)];```

Use `isLowIndexDAE` to check the differential index of the system. For this system `isLowIndexDAE` returns `0` (`false`). This means that the differential index of the system is `2` or higher.

`isLowIndexDAE(eqs, vars)`
```ans = logical 0```

Use `reduceDAEIndex` to rewrite the system so that the differential index is `1`. Calling this function with four output arguments also shows the differential index of the original system. The new system has one additional state variable, `Dyt(t)`.

`[newEqs, newVars, ~, oldIndex] = reduceDAEIndex(eqs, vars)`
```newEqs = diff(x(t), t) - z(t) - x(t) Dyt(t) - f(t) x(t) - y(t) diff(x(t), t) - Dyt(t) newVars = x(t) y(t) z(t) Dyt(t) oldIndex = 2```

Check if the differential order of the new system is lower than `2`.

`isLowIndexDAE(newEqs, newVars)`
```ans = logical 1```

Input Arguments

collapse all

System of first-order semilinear differential algebraic equations, specified as a vector of symbolic equations or expressions.

State variables, specified as a vector of symbolic functions or function calls, such as `x(t)`.

Example: `[x(t),y(t)]`

Version History

Introduced in R2014b