我在 Stack Overflow 上发表的第一篇文章,请耐心等待。我使用 pymunk 物理库在 python 中构建了一个混沌双摆模型,该库又使用了chipmunk C 库。钟摆是混沌的,对初始条件表现出极大的敏感性。然而,我意识到,即使我使用完全相同的初始条件(无论如何更改零代码)运行模拟,这两个模拟也会很快出现分歧。
我的代码中有一些东西每次运行时都有可能产生不同的结果。因为模拟是混乱的,所以运行之间任何不恒定的微小错误都可能导致巨大的变化。
可能是什么原因造成的?我不确定这是否是花栗鼠、pymunk、甚至 python 或我的操作系统/PC 中的小缺陷造成的。
编辑:
这是我的代码:
import pyglet
import pymunk
import pymunk.pyglet_util
def add_pendulum(space):
    static_body = pymunk.Body()
    static_body.position = 400, 400
    mass = 10
    inertia = pymunk.moment_for_box(mass, 5, 100)
    body1 = pymunk.Body(mass, inertia)
    body1.position = 350, 400
    l1 = pymunk.Poly(body1, [(50, 0), (-50, 0), (-50, 5), (50, 5)])
    l1.friction = 0.1
    l1.collision_type = 2
    pivot_joint = pymunk.PivotJoint(static_body, body1, (400, 400))
    space.add(body1, l1, pivot_joint)
    mass = 10
    inertia = pymunk.moment_for_box(mass, …