弹性碰撞次数与圆周率的关系 - 3Blue1Brown

写在前面

本文主要用于记录我是怎么被这个有趣的问题牵扯精力的,不写篇文章对不起自己推导公式的时间,这就是沉没成本,要后悔大家一起后悔嘛。本文的问题描述、来源分析、解法推导和相关问题都是个人整理的,但解法主要参考了知乎和论文。我是物联网工程专业本科生,数学捉襟见肘,难免有所疏漏,但尽量把过程表达明白。

作者去做毕设了,留好坑位,寒假接着更。

来源描述

在2019年1月13日,YouTube上的著名频道3Blue1Brown发布了一个有趣的数学视频:YouTube:The most unexpected answer to a counting puzzle。当然,由于3Blue1Brown在国内已经有了B站官方账号,你也可以在B站上吃瓜:一个计数谜题的意外答案

这个问题的描述如下:如图,在完全光滑的无限长平面上,有一个质量为 M M M的滑块 A A A以垂直于墙面的速度 v 0 v_0 v0向墙运动, A A A和墙之间的连线上停着另一个质量为 m m m的滑块 B B B。假设系统所有碰撞均为完全弹性碰撞,且滑块可以看成质点。

在这里插入图片描述
M = n m M=nm M=nm,则滑块 B B B在墙面与 A A A之间发生碰撞的总次数 C C C满足:
lim ⁡ n → ∞ C = n π \lim\limits_{n \to \infty }{C}=\sqrt{n} \pi nlimC=n π
“数学和物理有时会显现出令人惊讶的默契”,从离散的物理碰撞能够推导出一个无限不循环的数学常量,这就是3Blue1Brown所说的Unexpected,冥冥之间蕴含着宇宙的某种设计。

Gregory Galperin于1990s最早发现了这个结果,并于2003在论文Playing pool with π (the number π from a billiard point of view中公布这个问题,B站中给出的论文在墙内是打不开的(小声BB)。然后百度上可以搜索到的中国近年来最早提到这个问题的就是知乎2016年3月的帖子了:如何求解这个小球碰撞次数与圆周率关系的趣味问题? - 知乎,然后2017年3Blue1Brown入驻B站,并于今年在YouTube和B站上同步发布了相关视频,才导致这个问题成为一个网红问题,从而被各路新闻、公众号、博客和视频平台转发报道。

解决方法

解法一

主要思路:能量守恒定律 >> 变换坐标系 >> 三角换元 >> 几何观察 >> 极限

v 1 v_1 v1 v 2 v_2 v2分别为滑块 A A A B B B在一次碰撞后的瞬时速度,由能量守恒定律可知:
1 2 M v 1 2 + 1 2 m v 2 2 = 1 2 M v 0 2 \frac{1}{2}Mv_1^{2}+\frac{1}{2}mv_2^{2}=\frac{1}{2}Mv_0^{2} 21Mv12+21mv22=21Mv02
M = n m M=nm M=nm代入,化简得到 v 1 v_1 v1 v 2 v_2 v2坐标系下的椭圆方程:
v 1 2 + ( v 2 n ) 2 = v 0 2 v_1^{2}+(\frac{v_2}{\sqrt n})^{2}=v_0^{2} v12+(n v2)2=v02
v 2 ′ = v 2 n v_2^{'}=\frac{v_2}{\sqrt n} v2=n v2,得到 v 1 v_1 v1 v 2 ′ v_2^{'} v2坐标系下的圆的方程:
v 1 2 + v 2 ′ 2 = v 0 2 v_1^{2}+v_2^{'2}=v_0^{2} v12+v22=v02
于是我们可以使用 v 1 = v 0 c o s θ v_1=v_0cos\theta v1=v0cosθ v 2 ′ = v 0 s i n θ v_2^{'}=v_0sin\theta v2=v0sinθ进行三角换元。假设每次碰撞前,两滑块相向运动,且远离墙壁的方向为速度的正方向,则根据动量守恒定律,我们可以得到方程:
M v 1 a − m v 2 a = M v 1 b + m v 2 b Mv_{1a}-mv_{2a}=Mv_{1b}+mv_{2b} Mv1amv2a=Mv1b+mv2b
v a v_a va表示本次两物块碰撞前一瞬间物块的速度, v b v_b vb表示的下次两物块碰撞前一瞬间物块的速度。将 M = n m M=nm M=nm代入,化简得到:
n v 1 a − v 2 a = n v 1 b + v 2 b nv_{1a}-v_{2a}=nv_{1b}+v_{2b} nv1av2a=nv1b+v2b
将三角换元公式代入可以得到:
n c o s b − n s i n b = n c o s a + n s i n a ncosb-\sqrt n sinb=ncosa+\sqrt n sina ncosbn sinb=ncosa+n sina
补充一下和差化积公式:

  1. s i n α + s i n β = 2 s i n [ ( α + β ) / 2 ] c o s [ ( α − β ) / 2 ] sinα+sinβ=2sin[(α+β)/2]cos[(α-β)/2] sinα+sinβ=2sin[(α+β)/2]cos[(αβ)/2]
  2. s i n α − s i n β = 2 c o s [ ( α + β ) / 2 ] s i n [ ( α − β ) / 2 ] sinα-sinβ=2cos[(α+β)/2]sin[(α-β)/2] sinαsinβ=2cos[(α+β)/2]sin[(αβ)/2]
  3. c o s α + c o s β = 2 c o s [ ( α + β ) / 2 ] c o s [ ( α − β ) / 2 ] cosα+cosβ=2cos[(α+β)/2]cos[(α-β)/2] cosα+cosβ=2cos[(α+β)/2]cos[(αβ)/2]
  4. c o s β − c o s α = 2 s i n [ ( α + β ) / 2 ] s i n [ ( α − β ) / 2 ] cosβ-cosα=2sin[(α+β)/2]sin[(α-β)/2] cosβcosα=2sin[(α+β)/2]sin[(αβ)/2]

利用公式1、4我们可以化简得到:
c o t ( ( a − b ) / 2 ) = n cot((a-b)/2)=\sqrt n cot((ab)/2)=n
其中 b b b a a a分别表示两次碰撞前一瞬间的三角函数参数,即 v 1 v_1 v1 v 2 ′ v_2^{'} v2坐标系下的圆心角。那么:
a − b = a c t a n ( 1 / n ) a-b=actan(1/\sqrt n) ab=actan(1/n )
由上式可以看出每次碰撞导致的圆心角的增量是一个常数值(正值)。而初始情况下 v 1 = − v 0 v_1=-v_0 v1=v0 v 2 ′ = v 2 n = 0 v_2^{'}=\frac{v_2}{\sqrt n}=0 v2=n v2=0,在坐标系里即为圆与 v 1 v_1 v1坐标轴负半轴的交点(我们假设远离墙壁的方向为速度正方向)。而每次碰撞只是该点沿着圆的轨迹逆时针转动一个固定的角度。
挖坑

解法二

挖坑

解法三

占位待续(第三种解法的复矩阵正交变换触及了我的数学盲区)

解法四

挖坑

四种解法间的等价性

挖坑

其他相关

两个猜想

挖坑

另一个Counting Pi

挖坑

另一个Playing Pool

如果百度一下Playing pool还会查到这篇文章:Playing Pool with |ψ⟩: from Bouncing Billiards to Quantum Search。估计作者Adam R. BrownGG的小迷弟,模仿原论文的标题,将 π \pi π改成了态矢量 ∣ ψ ⟩ |ψ⟩ ψ,声称找到了弹性碰撞问题和Grover量子搜索算法之间的联系。想要读懂这篇文章需要对量子力学和量子计算机有一定了解,它触及到了本人的物理、算法和数学等一系列知识的盲区,希望经过以后的学习能够读懂它。

大佬Jorge S. Diaz

在Google上查找弹性碰撞问题的前世今生的时候,偶然邂逅了JSD的文章:Digits of π from colliding blocks。这是一篇写的十分漂亮的学院派文章,从理论分析到Python的实验都做的很详尽,文章的排版也清晰简洁(作为一个站长我当然很关心排版),于是访问了一下他的首页和作者页,他的Bio如下:

I am a data scientist at BASF. I received a Ph.D. in Theoretical Physics from Indiana University Bloomington with minors in nuclear physics and high-energy physics. After two years working as a postdoctoral researcher at the Karlsruhe Institute of Technology in Germany, I made the transition to industry. Now I enjoy a daily dose of Python coding, mining text data, machine learning, and playing with maps. My fascination for physics is now streamed via Twitter and a blog for the general public.

可以看到他是一个德国人,获得了印第安纳大学伯明顿分校的理论物理博士学位,现在于巴斯夫公司(德国的化工企业)做一名数据科学家,最近开始从物理学转向了ML,喜欢Python编程。他的网站创建与2018年1月,只有两篇文章,另一篇是Tests of Lorentz invariance using neutrino oscillations,翻译过来是用中微子振荡检验洛伦兹不变性,看起来也十分硬核。我关注了他的GitHub,也许将来可以交个朋友。

3Blue1Brown名称由来

我从一开始就很好奇这个奇怪的名字,为啥叫三蓝一棕?在百度上没能找到答案,于是去Google一下,3Blue1Brown官方网站上介绍了频道的作者:Grant Sanderson。他对自己的介绍如下图:
在这里插入图片描述
我翻译一下:“我叫Grant Sanderson。我在斯坦福大学学习数学时,一直受到计算机科学的诱惑。有一段时间,我的工作经历告诉我应该去做软件工程/数据科学方向。但最终,我对数学的热情占领高地,代价是牺牲了小情人计算机。可汗学院的人才发掘计划让我很幸运地开始了一条不太传统的数学推广道路。我在2015/2016年担任多元微积分研究员,为他们制作视频和撰写文章。之后,我开始把全部精力投入在3blue1brown上。”可见作者是一个斯坦福数学系毕业的学生,这里并没有说明名字的由来,但从照片上看来我猜想他是美国白人,混了一些北欧血统,那么他很大概率是蓝眼睛。从维基百科上我找到了正解:

The channel name and logo reference the color of Grant’s right eye, which has blue-brown sectoral heterochromia. It also symbolizes the channel’s visual approach to math.

Sanderson的右眼有区域性虹膜异色,所以3Blue1Brown的意思就是他虹膜的四分之三是蓝色,四分之一是棕色。这让我不禁联想到I型起源那部悲伤而美妙的爱情电影。他本人也说有些粉丝为了顺嘴,也管这个频道叫3b1b:3b1b for those who prefer less of a tongue-twister。而这个频道的标志就是他的右眼虹膜,也象征着这个频道对数学的一种理解方式,究竟是怎样的理解方式,他没有具体说,但根据他的其他介绍可以略知一二:

Loosely speaking, I think of the first category as motivating math by its usefulness, and the second as motivating math as an art form. But of course, the line dividing these two is easily blurred.

“泛泛而言,我认为驱动数学发展的第一类动力是实用性,排在第二的应该是数学的艺术形态。当然,这两者的界限是很模糊的。”我们可以认为Blue代表的是传统意义的实用性,而Brown代表的是另一个视角的艺术美。

Problems in math which many people may not have heard of, and which seem really hard at first, but where some shift in perspective makes it both doable and beautiful.

“很多人们从没听说过的数学问题,乍一看很难,但变换一下思维的角度,它可以变得既有可行性又有美感。”这可能就是3Blue1Brown这个频道所追求的主旨,将数学变得深入浅出,尽力去展现它的美感。可能Blue是常规意义的视角,Brown就代表那种既可行又漂亮的视角吧。Sanderson是如何做到这一点的呢,请往下看。

3Blue1Brown视频引擎

维基百科上说道,Sanderson在2015年开始了一个个人项目,在Showmakers(某个播客节目;播客,podcast,是一种收听类的节目) 中他表示想要练习编程技能,决定制作一个基于Python的图形库。这个图形库最终变成了著名的开源视频引擎Manim(Mathematical animations的缩写)。3Blue1Brown因此拥有了吸引人的立体动画,使人们尽情体验数学之美。

Manim的仓库地址:Manim。知乎上对这个视频框架的介绍已经十分详细了,在我深入研究这个框架之前不打算做搬运工:3Blue1Brown 的视频是怎么制作的? - 李狗嗨的回答 - 知乎。这个频道对与线性代数、微积分、神经网络、黎曼猜想、傅里叶变换和四元数都有很好的讲解,尤其是线性代数,口碑很好,码上留着慢慢看。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值