euler
unknown
python
3 years ago
664 B
13
Indexable
import matplotlib.pyplot as plt
import math
PI = math.pi
def euler(theta0, v0, dt, T):
t = 0
v = v0
theta = theta0
ys = []
xs = []
zs = []
delta = PI / dt;
while t <= T:
O = theta
xs.append(t)
ys.append(v)
zs.append(theta)
theta += v / delta
v += -math.sin(O / delta)
t += dt
return xs, ys, zs
def plot_graphs(dt, T):
xs, ys, zs = euler(0, 1, dt, T)
plt.figure()
plt.plot(xs, ys)
plt.legend('v')
plt.figure()
plt.plot(xs, zs)
plt.legend('theta')
plt.show()
plot_graphs(6 * PI / 200, 6 * PI)
plot_graphs(6 * PI / 20, 6 * PI)Editor is loading...