# Documentation

## Solve a System of Differential Equations

`dsolve` can handle several ordinary differential equations in several variables, with or without initial conditions. For example, solve these linear first-order equations. First, create the symbolic functions `f(t)` and `g(t)`:

`syms f(t) g(t)`

Now use `dsolve` to solve the system. The toolbox returns the computed solutions as elements of the structure `S`:

`S = dsolve(diff(f) == 3*f + 4*g, diff(g) == -4*f + 3*g)`
```S = g: [1x1 sym] f: [1x1 sym]```

To return the values of `f(t)` and `g(t)`, enter these commands:

```f(t) = S.f g(t) = S.g```
```f(t) = C2*cos(4*t)*exp(3*t) + C1*sin(4*t)*exp(3*t) g(t) = C1*cos(4*t)*exp(3*t) - C2*sin(4*t)*exp(3*t)```

If you prefer to recover `f(t)` and `g(t)` directly, as well as include initial conditions, enter these commands:

```syms f(t) g(t) [f(t), g(t)] = dsolve(diff(f) == 3*f + 4*g,... diff(g) == -4*f + 3*g, f(0) == 0, g(0) == 1)```
```f(t) = sin(4*t)*exp(3*t) g(t) = cos(4*t)*exp(3*t)```

Suppose you want to solve a system of differential equations in a matrix form. For example, solve the system Y′ = AY + B, where A, B, and Y represent the following matrices:

```syms x(t) y(t) A = [1 2; -1 1]; B = [1; t]; Y = [x; y]; ```

Solve the system using `dsolve`:

```S = dsolve(diff(Y) == A*Y + B); x = S.x y = S.y```
```x = 2^(1/2)*exp(t)*cos(2^(1/2)*t)*(C2 + (exp(-t)*(4*sin(2^(1/2)*t) +... 2^(1/2)*cos(2^(1/2)*t) + 6*t*sin(2^(1/2)*t) +... 6*2^(1/2)*t*cos(2^(1/2)*t)))/18) +... 2^(1/2)*exp(t)*sin(2^(1/2)*t)*(C1 - (exp(-t)*(4*cos(2^(1/2)*t) -... 2^(1/2)*sin(2^(1/2)*t) +... 6*t*cos(2^(1/2)*t) - 6*2^(1/2)*t*sin(2^(1/2)*t)))/18) y = exp(t)*cos(2^(1/2)*t)*(C1 - (exp(-t)*(4*cos(2^(1/2)*t) -... 2^(1/2)*sin(2^(1/2)*t) + 6*t*cos(2^(1/2)*t) -... 6*2^(1/2)*t*sin(2^(1/2)*t)))/18) - exp(t)*sin(2^(1/2)*t)*(C2 +... (exp(-t)*(4*sin(2^(1/2)*t) + 2^(1/2)*cos(2^(1/2)*t) +... 6*t*sin(2^(1/2)*t) + 6*2^(1/2)*t*cos(2^(1/2)*t)))/18)```