MATH 267 How to solve ODE systems in MATLAB MATLAB contains very easy to use commands for numerical solutions of first order ODE systems. >> [t,y]=ode45(F,tspan,y0) returns the solution of the initial value problem for the system defined by F on the interval defined in tspan with initial conditions defined by y0. If the system has n unknown component functions then the output array y contains n columns, one for each component. The inline command can be used to define F as in the case of the single ODE. (Those of you who know how to use m-files to define functions in MATLAB may do that instead.) Suppose for example that the problem of interest is x01 = tx2 + sin (x1 x2 ) x02 = x1 e−tx2 x1 (1) = 3 x2 (1) = −2 This means that the system may be written in vector form as x0 = F(t, x) where tx2 + sin (x1 x2 ) F(t, x) = x1 e−tx2 A MATLAB command which will define this vector function is >> F=inline(’[t*x(2)+sin(x(1)*x(2));x(1)*exp(-t*x(2))]’,’t’,’x’) The input tspan defines the interval of t values on which the solution is to be found, as in the single equation case, e.g. >> tspan=[1 4] will cause the solution to be computed for 1 ≤ t ≤ 4, with initial conditions at t = 1 given by y0, which in this case should be >> y0=[3;-2] (Why the semicolon in y0? It forces y0 to be a column vector. Without the semicolon, as in the definition of tspan, you are defining a row vector. The semicolon also occurs in the definition of F because it needs to be a column vector, but tspan can be either a row or column vector.) To plot the solution, give the command >> plot(t,y(:,1));shg which will create a plot of the first component of the solution. Replace 1 by 2 to get the second component. (shg shows the graph window, if it isn’t already visible). You can get both curves on the same plot with the command >> plot(t,y(:,1),t,y(:,2));shg To display the solution in the phase plane >> plot(y(:,1),y(:,2));shg Homework 1. Obtain the numerical solution of the problem stated on the reverse side for 1 ≤ t ≤ 4 by entering all of the commands there in an appropriate order. Plot both components of the solution on the same axes. 2. Transform the problem t y 00 = 3y − sin (y 0 − ) 2 0 < t < 2 y(0) = 1 y 0 (0) = −2 into an equivalent problem for a first order system and solve numerically using ode45. Plot the solution. (Remember the solution is a single function in this case, not two functions.) 3. Use ode45 to solve −1 −4 x = x 5 −1 0 2 x(0) = 1 Compute the solution for 0 < t < 10 and plot the result in the phase plane. 4. Find the solution of the previous problem analytically. You do not need to print out columns of numbers in any of these problems. Turn in plot only for 1 and 3, and for problem 2 turn in the plot and write out the first order system you used. Refer to the first MATLAB assignment if needed to remind yourself how to get a plot printed.