# Using ode45 to solve a system of three equations

## The system

Consider the nonlinear system

dsolve can't solve this system. I need to use ode45 so I have to specify an initial value

## Solution using ode45.

This is the three dimensional analogue of Section 14.3.3 in Differential Equations with MATLAB. Think of as the coordinates of a vector x. In MATLAB its coordinates are x(1),x(2),x(3) so I can write the right side of the system as a MATLAB function

```f = @(t,x) [-x(1)+3*x(3);-x(2)+2*x(3);x(1)^2-2*x(3)];
```

The numerical solution on the interval with is

```[t,xa] = ode45(f,[0 1.5],[0 1/2 3]);
```

## Plotting components

I can plot the components using plot. For example, to plot the graph of I give the command:

```plot(t,xa(:,2))
title('y(t)')
xlabel('t'), ylabel('y')
```

## 3 D plot

I can plot the solution curve in phase space using plot3.

```plot3(xa(:,1),xa(:,2),xa(:,3))
grid on
title('Solution curve')
```

## Using ode45 on a system with a parameter.

Suppose I change the system to

and I would like to use a loop to solve and plot the solution for .

```syms t x a
g = @(t,x,a)[-x(1)+a*x(3);-x(2)+2*x(3);x(1)^2-2*x(3)]
for a = 0:2
[t,xa] = ode45(@(t,x) g(t,x,a),[0 1.5],[1 1/2 3]);
figure
plot(t,xa(:,2))
title(['y(t) for a=',num2str(a)'])
end
```
```g =

function_handle with value:

@(t,x,a)[-x(1)+a*x(3);-x(2)+2*x(3);x(1)^2-2*x(3)]

```