Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
1931 views
ubuntu2004
1
import numpy as np
2
import matplotlib.pyplot as plt
3
import math
4
from scipy.integrate import odeint
5
6
M=9
7
m=1
8
g=9.81
9
10
def Atwood(y,t,M,m,g):
11
theta, omega, radius, Rho = y
12
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(M+m))*(m*radius*(omega**2)-M*g+m*g*(np.cos(theta)))]
13
return dydt
14
15
A=12
16
a=1
17
g=9.81
18
19
def Chaotic(y,t,A,a,g):
20
theta, omega, radius, Rho = y
21
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(A+a))*(a*radius*(omega**2)-A*g+a*g*(np.cos(theta)))]
22
return dydt
23
24
B=14
25
b=1
26
g=9.81
27
28
def Chaotic2(y,t,B,b,g):
29
theta, omega, radius, Rho = y
30
dydt = [omega, (1/radius)*(-g*(np.sin(theta))-2*(Rho*omega)), Rho, (1/(B+b))*(a*radius*(omega**2)-B*g+b*g*(np.cos(theta)))]
31
return dydt
32
33
y0 = [np.pi/2 ,0 ,1 ,0]
34
t = np.linspace(0,10,1000000)
35
sul = odeint(Atwood, y0, t, args=(M,m,g))
36
chaos=odeint(Chaotic, y0, t, args=(A,a,g))
37
chaos2=odeint(Chaotic2, y0, t, args=(B,b,g))
38
39
plt.plot(sul[:,0], sul[:,1],'g', label="μ=9")
40
plt.plot(chaos[:,0],chaos[:,1],'b', label="μ=12")
41
plt.plot(chaos2[:,0],chaos2[:,1],'y', label="μ=14")
42
plt.legend(loc="upper left")
43
plt.ylabel('Angular velocity (radians per second)')
44
plt.xlabel('Angular displacement (radians)')
45
plt.title('Fig 10 - Phase Plot of different systems showing Chaotic Motion')
46
plt.grid()
47
plt.show()
48