How to add direction line into the phase plane plot?
11 views (last 30 days)
Show older comments
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:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/158389/image.jpeg)
And I want to add the direction line, which something like this:
![](https://www.mathworks.com/matlabcentral/answers/uploaded_files/158391/image.gif)
%
0 Comments
Accepted Answer
Mischa Kim
on 11 Mar 2014
Edited: Mischa Kim
on 11 Mar 2014
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 Comments
Mischa Kim
on 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
More Answers (0)
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!