@@ -27,26 +27,28 @@ def derivs(state, t):
27
27
dydx = np .zeros_like (state )
28
28
dydx [0 ] = state [1 ]
29
29
30
- del_ = state [2 ] - state [0 ]
31
- den1 = (M1 + M2 )* L1 - M2 * L1 * cos (del_ )* cos (del_ )
32
- dydx [1 ] = (M2 * L1 * state [1 ]* state [1 ]* sin (del_ )* cos (del_ ) +
33
- M2 * G * sin (state [2 ])* cos (del_ ) +
34
- M2 * L2 * state [3 ]* state [3 ]* sin (del_ ) -
35
- (M1 + M2 )* G * sin (state [0 ]))/ den1
30
+ delta = state [2 ] - state [0 ]
31
+ den1 = (M1 + M2 ) * L1 - M2 * L1 * cos (delta ) * cos (delta )
32
+ dydx [1 ] = ((M2 * L1 * state [1 ] * state [1 ] * sin (delta ) * cos (delta )
33
+ + M2 * G * sin (state [2 ]) * cos (delta )
34
+ + M2 * L2 * state [3 ] * state [3 ] * sin (delta )
35
+ - (M1 + M2 ) * G * sin (state [0 ]))
36
+ / den1 )
36
37
37
38
dydx [2 ] = state [3 ]
38
39
39
- den2 = (L2 / L1 )* den1
40
- dydx [3 ] = (- M2 * L2 * state [3 ]* state [3 ]* sin (del_ )* cos (del_ ) +
41
- (M1 + M2 )* G * sin (state [0 ])* cos (del_ ) -
42
- (M1 + M2 )* L1 * state [1 ]* state [1 ]* sin (del_ ) -
43
- (M1 + M2 )* G * sin (state [2 ]))/ den2
40
+ den2 = (L2 / L1 ) * den1
41
+ dydx [3 ] = ((- M2 * L2 * state [3 ] * state [3 ] * sin (delta ) * cos (delta )
42
+ + (M1 + M2 ) * G * sin (state [0 ]) * cos (delta )
43
+ - (M1 + M2 ) * L1 * state [1 ] * state [1 ] * sin (delta )
44
+ - (M1 + M2 ) * G * sin (state [2 ]))
45
+ / den2 )
44
46
45
47
return dydx
46
48
47
49
# create a time array from 0..100 sampled at 0.05 second steps
48
50
dt = 0.05
49
- t = np .arange (0.0 , 20 , dt )
51
+ t = np .arange (0 , 20 , dt )
50
52
51
53
# th1 and th2 are the initial angles (degrees)
52
54
# w10 and w20 are the initial angular velocities (degrees per second)
@@ -91,7 +93,7 @@ def animate(i):
91
93
time_text .set_text (time_template % (i * dt ))
92
94
return line , time_text
93
95
94
- ani = animation .FuncAnimation (fig , animate , np .arange (1 , len (y )),
95
- interval = 25 , blit = True , init_func = init )
96
96
97
+ ani = animation .FuncAnimation (fig , animate , range (1 , len (y )),
98
+ interval = 25 , blit = True , init_func = init )
97
99
plt .show ()
0 commit comments