Effacer les filtres
Effacer les filtres

How to add direction line into the phase plane plot?

12 vues (au cours des 30 derniers jours)
Alex
Alex le 11 Mar 2014
Commenté : Alex le 12 Mar 2014
Yes, how to add direction line into the phase plane plot? I have the codes below which it work successful but I want to add some direction arrow into my phase plane.
function phase()
IC = [1 1;1 2;1 3;1 4;1 5];
hold on
for ii = 1:length(IC(:,1))
[~,X] = ode45(@EOM,[-5 5],IC(ii,:));
u = X(:,1);
w = X(:,2);
plot(u,w,'r')
end
xlabel('u')
ylabel('w')
grid
end
function dX = EOM(t, y)
dX = zeros(2,1);
u = y(1);
w = y(2);
A = 1;
B = 1;
dX = [(w*u^2 - B*u);...
(A - w - w*u^2)];
end
And the plot below is from the codes above:
And I want to add the direction line, which something like this:
%

Réponse acceptée

Mischa Kim
Mischa Kim le 11 Mar 2014
Modifié(e) : Mischa Kim le 11 Mar 2014
Alex, use quiver. In
quiver(x,y,u,v)
the x, y are the grid points, u and v you get from the dX vector from the differential equations function.
  4 commentaires
Mischa Kim
Mischa Kim le 12 Mar 2014
Using the same EOM function I'd do something like
function phase()
IC = 5*(rand(50,2)-0.5);
hold on
for ii = 1:length(IC(:,1))
[~,X] = ode45(@EOM,[-5 5],IC(ii,:));
u = X(:,1);
w = X(:,2);
plot(u,w,'r')
end
xlabel('u')
ylabel('w')
grid
x = -4:0.5:4;
y = -4:0.5:4;
[xg,yg] = meshgrid(x,y);
dxg = yg.*xg.^2 - xg;
dyg = ones(length(x)) - yg - yg.*xg.^2;
scale = 5;
quiver(xg,yg,dxg,dyg,scale)
end
Alex
Alex le 12 Mar 2014
Thanks again, you are the best !!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by