# Using ode45 to solve a system of three equations

## Contents

## 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)]