我正在用Python制作一个游戏(在这个过程中教我自己的Python),我正在尝试添加一个摆锤函数,但是我从来没有编写过钟摆函数,甚至没有看过成功创建一个代码的代码摆。所以我希望你们能在这里帮助我。我究竟如何在Python中创建一个摆锤函数?
答案 0 :(得分:1)
我想你需要一个算法(因为你说你想创建一个摆锤函数)。经过一番搜索后,我发现了一些可能适合你的东西:
#!/usr/bin/env python
def pendulum(T, n, theta0, v0, alpha):
"""Return the motion (theta, v, t) of a pendulum."""
dt = T/float(n)
t = linspace(0, T, n+1)
v = zeros(n+1)
theta = zeros(n+1)
v[0] = v0
theta[0] = theta0
for k in range(n):
theta[k+1] = theta[k] + dt*v[k]
v[k+1] = v[k] - alpha*dt*sin(theta[k+1])
return theta, v, t
from scitools.std import *
try:
n = int(sys.argv[1])
T = eval(sys.argv[2])
v0 = eval(sys.argv[3])
theta0 = eval(sys.argv[4])
alpha = eval(sys.argv[5])
except:
print "usage:", sys.argv[0], "n T v0 theta0 alpha"
sys.exit(1)
theta, v, t = pendulum(T, n, theta0, v0)
plot(t, v, xlabel='t', ylabel='velocity')
figure()
plot(t, theta, xlabel='t', ylabel='velocity')