美文网首页
Exercise_09 :chapt 3: 台球的混沌问题

Exercise_09 :chapt 3: 台球的混沌问题

作者: XVVUII | 来源:发表于2016-11-21 07:59 被阅读0次

    Abstract

    • 本篇将探讨在一个出现了一点偏差的圆形台球桌内台球的运动轨迹。(圆形的台球桌什么的本来就很诡异了吧)

    • I have a ball.
      ~~I have a table. ~~
      Ahhh...
      Billi-ard!
    • ~~I have a Python. ~~
      ~~I have a H.Cai. ~~
      Ahhhhhhh...
      Chaoooooooos!
    • ~Billi-ard~~
      Chaoooooooos
      Ahhhhhhh.........
      Ahhhhhhhhhh.........
      Ahhhhhhhhhhhhhhhh.........

    Background

    • 台球本身是件很有意思的事,球在有限的区域内被桌沿或其他的球反弹,逐渐按照既定的速滚走向既定的方向,将目标球击落袋。


    • 假如你把它放进物理里,就会显得更()加()有()趣()。
    • 我们将探讨一个球在圆形桌内的运动,以及当那个圆并不那么圆时,球在那个不那么圆的圆桌内的运动。

    What a Weird Shape!

    • 这个问题我们也将其简化,我们认为球在桌上的运动是无耗散的,可以永远地滚下去。
    • 同时我们也认为,球在边缘上的反弹是完美的:

    入射与反射角相等

    • 当球碰到边缘时,我们将这样处理他的碰壁和反弹:
    ...
        x_next = self.x[-1] + self.vx * self.dt
        y_next = self.y[-1] + self.vy * self.dt
    # 下一个点没有越界
    if x_next ** 2 + (abs(y_next) - self.alpha) ** 2 < 1:
        self.x.append(x_next)
        self.y.append(y_next)
    if abs(self.y[-1]) < 0.001:
        self.ps_vx.append(self.vx)
        self.ps_x.append(self.x[-1])
    # 下个点成功越界,计算碰撞点并计算碰撞后速度
    else:
        divisor = 2
    # 往回走一点点
    while divisor <= 2048:
        x_next -= (self.vx * self.dt / divisor)
        y_next -= (self.vy * self.dt / divisor)
    # 当下个点与边界距离在误差允许范围内时,跳出 loop
    if abs(x_next ** 2 + (abs(y_next) - self.alpha) ** 2 - 1) < 0.00001:
        divisor = 10000
    # 如果刚刚往回走过了,撤销那一步,下一次走得再小一点
    ...
    
    • 碰撞后,我们采用(level.6)矢量操作的方式计算碰撞后的速度。
    • 可以得到轨迹图:
    我可以盯着它看上一天.gif
    • 考虑当alpha = 0.1时,两个仅有微小初始值差异的台球的运动轨迹区别,弄了张动图,matplotlib 库做了一点微小的贡献
    冲啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊.gif
    • 上图,可以预见二者分离度将在600以后达到1上下,也就是说两个系统将完全分离,


    • 上图,台球十分争气地滚得乱七八糟(逃)

    • alpha = 0.1,可以看到在500s内他的偏差都是很小的,只有-6的指数级别,但是当我们把时间增加一倍,从500s增加到1000s的时候:


    • 两个小球也几乎没有产生大的偏差,那么当球桌是个正圆的时候呢?

    • 两个球的分离度几乎肉眼不可见(废话!)

    Pure Code


    Acknowledgements!

    • 磊锅锅张磊 (就冲着这名字我也得把你从致谢里删了_(:D」∠)_)

    相关文章

      网友评论

          本文标题:Exercise_09 :chapt 3: 台球的混沌问题

          本文链接:https://www.haomeiwen.com/subject/pftupttx.html