# MATH 267 How to Solve ODEs in MATLAB ```MATH 267
How to Solve ODEs in MATLAB
MATLAB contain very easy to use commands for solving initial value problems
for ordinary differential equations. Suppose we wish to obtain a numerical solution
of
y 0 = f (t, y)
y(t0 ) = y0
This can be done with the following command:
&gt;&gt;[t,y] = ode45(f,tspan,y0)
where the inputs f,tspan,y0 and outputs t,y are as follows.
f: defines the function in the ODE. For example to get f (t, y) = t2 − y 3 , give the
MATLAB command1
&gt;&gt;f=inline(’t∧2-y∧3’,’t’,’y’)
tspan: defines the endpoints of the interval on which you want the solution, e.g.
&gt;&gt; tspan=[1 3]
to get the solution for 1 ≤ t ≤ 3. The first entry should be t0 .
y0: the initial value, e.g, for y0 = 4 give the MATLAB command
&gt;&gt; y0=4
t: a vector of t values t1 , t2 . . . tn at which the approximate solution is given.
y: a vector of y values y1 , y2 . . . yn where yj is the approximate solution at tj .
The command
&gt;&gt;plot(t,y)
tells MATLAB to plot the solution. The command
&gt;&gt;print -dps figure
produces the postscript file figure.ps of the plot which you can print.
HOMEWORK
1. Use the above procedure to numerically solve
y 0 = t2 − y 3
y(1) = 4
on the interval 1 ≤ t ≤ 3 and plot the result. (You should not print out a listing of
all of the yn values!)
2. Numerically solve
y0 = y + t
y(0) = 1
on the interval 0 ≤ t ≤ 1 and plot the result. Compare the numerical solution to
1
the exact solution at t = and t = 1.
2
3. Do #4 on page 311.
1
Alternatively, you may define f by means of an m-file, see page 48 of the MATLAB text, in
which case the calling command should be &gt;&gt;[t,y] = ode45(’f’,tspan,y0)
```