Main Content

Solve system of differential equations

**Support for character vector or string inputs will be removed in a future release. Instead,
use syms to declare variables and replace inputs
such as dsolve('Dy = -3*y') with syms y(t); dsolve(diff(y,t) ==
-3*y).**

uses additional options specified by one or more `S`

= dsolve(___,`Name,Value`

)`Name,Value`

pair
arguments.

If

`dsolve`

cannot find an explicit or implicit solution, then it issues a warning and returns the empty`sym`

. In this case, try to find a numeric solution using the MATLAB^{®}`ode23`

or`ode45`

function. Sometimes, the output is an equivalent lower-order differential equation or an integral.`dsolve`

does not always return complete solutions even if`'IgnoreAnalyticConstraints'`

is`false`

.If

`dsolve`

returns a function that has different one-sided limits at`x0`

and you specify the condition`y(x0)`

, then`dsolve`

treats the condition as a limit from the right, $$\mathrm{lim}x\to {x}_{0}^{+}\text{}$$.

If you do not set `'IgnoreAnalyticConstraints'`

to
`false`

, then `dsolve`

applies these rules while solving
the equation:

log(

*a*) + log(*b*) = log(*a*·*b*) for all values of*a*and*b*. In particular, the following equality is applied for all values of*a*,*b*, and*c*:(

*a*·*b*)^{c}=*a*^{c}·*b*^{c}.log(

*a*^{b}) =*b*·log(*a*) for all values of*a*and*b*. In particular, the following equality is applied for all values of*a*,*b*, and*c*:(

*a*^{b})^{c}=*a*^{b·c}.If

*f*and*g*are standard mathematical functions and*f*(*g*(*x*)) =*x*for all small positive numbers,*f*(*g*(*x*)) =*x*is assumed to be valid for all complex*x*. In particular:log(

*e*^{x}) =*x*asin(sin(

*x*)) =*x*, acos(cos(*x*)) =*x*, atan(tan(*x*)) =*x*asinh(sinh(

*x*)) =*x*, acosh(cosh(*x*)) =*x*, atanh(tanh(*x*)) =*x*W

_{k}(*x*·*e*^{x}) =*x*for all branch indices*k*of the Lambert W function.

The solver can multiply both sides of an equation by any expression except

`0`

.The solutions of polynomial equations must be complete.

`functionalDerivative`

| `linsolve`

| `ode23`

| `ode45`

| `odeToVectorField`

| `solve`

| `syms`

| `vpasolve`