Plotting Direction Field of Second-Order ODE in MATLAB

3.6k Views Asked by At

How do you plot the direction (vector) field of a second-order homogeneous ode using Matlab?

I've already used MATLAB to check the solution to the ode and I've tried to use tutorials online to plot the direction (vector) field, but haven't had any luck. Here's what I have done in MATLAB:

eqn1 = 'D2x + 5*Dx + 4*x = 0';
x = dsolve(eqn1, 't')

The above gives me the correct solution to the second-order ode, but isn't helpful for plotting the direction (vector) field. I'm new to MATLAB, so any help would be greatly appreciated.

2

There are 2 best solutions below

0
On BEST ANSWER

The second order ODE $X'' +5X'+4X =0$ rewrites as a first-order ODE system. Indeed, setting $(x,y)=(X,X')$, one has \begin{aligned} \frac{\text{d}x}{\text{d}t} &= y \, ,\\ \frac{\text{d}y}{\text{d}t} &= -5y-4x \, . \end{aligned} The phase-space plot can then be obtained in a similar manner as described in this post, e.g. using Matlab's quiver function.

0
On

This is what I did, using help from above, in order to accomplish the task:

% set the domain and subintervals in each direction
xdom = linspace(-2,2,25);
ydom = linspace(-2,2,25);

% generate mesh of domain
[X,Y] = meshgrid(xdom,ydom);

% dx/dt
U = Y;

% dy/dt
V = (-5*Y - 4*X);

quiver(X,Y,U,V,'r')

The second-order ode was rewritten as a system of first-order odes and then those were plotted.