首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采用Verlet (1d)方法的质量弹簧系统

采用Verlet (1d)方法的质量弹簧系统
EN

Stack Overflow用户
提问于 2019-05-10 16:21:42
回答 1查看 92关注 0票数 0

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

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

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2019-05-13 05:47:12

你是如何定义变量的?你能把你的整个项目都包括进来吗?

如果定义了所有变量,则运行代码。

查看您的代码,我不明白您是如何计算公式中的最后一项的。

代码语言:javascript
复制
result += (GRAVITATION + (-Ks * (py[0] - py_prev[0]))) / MASS

您需要定义两个点之间的时间差。(这不是py - py_prev,这是高度差)。我认为公式中的最后一项可以这样计算:

代码语言:javascript
复制
result -= delta_t**2 * py[0]

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56073482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档