Why my stable point is not in [0,0]?

3 views (last 30 days)
Hi, I am trying to plot this phase-time portrait by code I have found here. I don't know why my stable point is not in [0,0] but is shifted to aproximately [11,11]. Any ideas how to repair this problem ? Thanks a lot.
the code:
[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)
axis tight
function dxdt = odeFun(t,x)
global A %pre-difined matrix of autonomous system of ODE's
dxdt(1) = A(1,1)*x(1)+A(1,2)*x(2);
dxdt(2) = A(2,1)*x(1)+A(2,2)*x(2);
Frantisek Stloukal
Frantisek Stloukal on 30 Apr 2021
Edited: Frantisek Stloukal on 30 Apr 2021
I have tried that. The portrait center is now in [0,0] as it should be, although it looks like a distorted banana :D What is interesting is that when equilibrium points are type center or focus it works (when eigen numbers are complex), but when saddle or node it by some reason colaps into this:
PS: thanks for advice

Sign in to comment.

Accepted Answer

Jan on 30 Apr 2021
Your command for creating the diagram does not get any information about the X and Y coordiantes:
quiver(x1s, x2s)
Then it assume, that the coordinates are going from 1 to the number of elements in each direction.
Provide the X and Y coordinates, if you want so see them:
quiver(X1, X2, x1s, x2s)
Trying to run your code produces an errort message, e.g. due to the missing variable A. So please test this by your own.
Frantisek Stloukal
Frantisek Stloukal on 2 May 2021
Works pretty good for me. Thank you @Jan.

Sign in to comment.

More Answers (0)


Find more on Vector Fields in Help Center and File Exchange




Community Treasure Hunt

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

Start Hunting!