%% 水平动力学运动的相图
clc;clear;figure('numbertitle','off','name','水平动力学运动的相图');
global K R
K=5;R=0.5;t1=[-10:0.1:10];
for i=[-0.5 -1.5 -3 -4.5 0.5 1.5 3 4.5]
H1=[0;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[0.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
title('K=5,R=0.5');
hold on
H1=[-0.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[1.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[-1.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[3;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[-3;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[4.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
H1=[-4.5;i];
[t,H] = ode45(@dH,t1,H1);
plot(H(1:end,1),H(1:end,2));
axis([-5 5 -4 4]);
xlabel('角度');ylabel('角度变化量');
hold on
end
function dHdt=dH(t,H)
global K R
dHdt=zeros(2,1);
dHdt(1)=H(2);
dHdt(2)=-sin(H(1))*(1-K*cos(H(1)))-R*H(2);
end