质点弹簧系统的Verlet方法(1d)

2024-09-27 07:30:22 发布

您现在位置:Python中文网/ 问答频道 /正文

对于我的家庭工作,我必须做一个质量弹簧系统(最终2d),但我尝试1d第一)。但我不能让它工作,请帮帮我。我们必须使用Verlet的方法,并且必须在python中实现以下函数。我的密码错了吗?我怎样才能做到最好

公式:https://drive.google.com/open?id=1Oi4MVOyTPvMLqZ35zFtQTgPlxNNrCHZy

def verlet():
    result = 2 * py[0]  # 2y(ti)
    result -= py_prev[0]    # - y(ti - dt)
    result += (GRAVITATION + (-Ks * (py[0] - py_prev[0]))) / MASS
    py_prev[0] = py[0]
    py[0] = result/20

Tags: 方法函数pyhttps密码系统家庭质量
1条回答
网友
1楼 · 发布于 2024-09-27 07:30:22

你是如何定义变量的?你能把你的整个计划都包括进去吗

如果所有变量都已定义,则代码将运行

看看你的代码,我看不出你是如何计算公式中的最后一项的

result += (GRAVITATION + (-Ks * (py[0] - py_prev[0]))) / MASS

你需要定义两点之间的时差(这不是py[0]-py\u prev[0],这是高度差)。 我认为公式中的最后一项可以这样计算:

result -= delta_t**2 * py[0]

稍后,您将需要使用for循环(或者更好的数组,但是for循环更容易)来保存振荡器在每个时间点的位置

相关问题 更多 >

    热门问题