euler
unknown
python
3 years ago
664 B
11
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...