how can i plot the arrows like in the targeted phase-plane portraits at the initial points?

17 views (last 30 days)
Xiwen Yuan on 6 Nov 2014
Edited: Orion on 7 Nov 2014
How do I draw the arrow like in the first picture(the targeted phase-plane portraits )?
the targeted phase-plane portraits
my phase-plane portraits
Attached is the code for my phase portraits.

Orion on 6 Nov 2014
Hi,
Modifying your script phase_plane_example5, you could do something something like
clear
clc
X = [];
Y = [];
U = [];
V = [];
color = 'mrb';
for i=0:10:60
for j=-5:5:5
b = i;
a = j;
k = j/5+2;
[t,x] = ode45('mpac',0:0.01:10,[a/57.3;b/57.3]);
plot(a,b,'*k');
hold on;
plot(x(:,1)*57.3,x(:,2)*57.3,color(k));
% stock the positions.
X = [X,x(:,1)*57.3];
Y = [Y,x(:,2)*57.3];
% calculate and stock the derivatives.
U = [U,diff(x(:,1)*57.3)./diff(t)];
V = [V,diff(x(:,2)*57.3)./diff(t)];
end
end
title('Phase plane plot of roll dynamics');
xlabel('Roll angle(deg)');
ylabel('Roll rate(deg/s)');
grid on;
% add an initial line of values to the derivatives terms to have the same
% length vectors and match the position ones.
U=[zeros(1,21);U];
V=[zeros(1,21);V];
% draw the arrows.
quiver(X,Y,U,V);

Xiwen Yuan on 7 Nov 2014
hello Orion, thank you for your reply. It is very helpful to me,however,i still need your help because of the following two questions:
(1)I need only one arrow in each phase line at the initial point, like the targeted picture.
(2)According the modified script,the obtained arrows are very small(see figure below).how can i magnify their?
Star Strider on 7 Nov 2014
See Quiver Series Properties for details on how to modify the arrows.
Orion on 7 Nov 2014
1) I inversed my concatenation : you must use
U=[U;zeros(1,21)];
V=[V;zeros(1,21)];
zeros is just used here to make the speed vectors of the same size of the position vectors.
2) if you want to play with the propoerties of the quiver plot (size for example)
q = quiver(X,Y,U,V);
set(q,'AutoScaleFactor',6);
as a result