How does one plot phase portraits for systems of differential equations?

190 views (last 30 days)
I'm sort of new to this whole process and a lof of my homework for diff eq's asks for us to use technology to plot some of the solutions.
We just started last week on system of diff eq's and I wanted to learn how to do this with MATLAB. Be easy on me as I have very limited knowledge of the language.
The example I have on hand of something I've been asked to plot is the following:
Where x is a function of t.
Any help would be greayly appreciated. Thank in advance!

Answers (2)

Ameer Hamza
Ameer Hamza on 19 Apr 2020
Edited: Ameer Hamza on 19 Apr 2020
See this: http://matlab.cheme.cmu.edu/2011/08/09/phase-portraits-of-a-system-of-odes/ to understand how to make phase portraits in MATLAB. The following shows an example without using for-loop for your equations.
[X1,X2] = meshgrid(-5:0.5:5);
xs = arrayfun(@(x,y) {odeFun([],[x,y])}, X1, X2);
x1s = cellfun(@(x) x(1), xs);
x2s = cellfun(@(x) x(2), xs);
quiver(x1s, x2s)
xlabel('x_1')
ylabel('x_2')
axis tight equal;
function dxdt = odeFun(t,x)
dxdt(1) = 5*x(1)-9*x(2);
dxdt(2) = 1*x(1)-5*x(2);
end
  2 Comments
Frantisek Stloukal
Frantisek Stloukal on 29 Apr 2021
Hi, how do i get the axis in the right place ? The stable point should be [0,0] not [11,11]... Thanks for answer.
Ahsan Mujtaba
Ahsan Mujtaba on 5 May 2021
In this question, I wanted to ask that the all the possible initial consitions are being plotted?

Sign in to comment.


Brian Hong
Brian Hong on 26 Jan 2022
There are also apps that you can use to plot your phase portrait. Here's one that we created recently: https://www.mathworks.com/matlabcentral/fileexchange/91705-phase-plane-and-slope-field-apps

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!