思维之海

——在云端,寻找我的星匙。

宏观量子问题浅讨

以上是来自3b1b一个计数谜题的意外答案随后,3b1b发布了为什么方块碰撞能够用来计算π?

在本篇文章中,我不想强调如何求出离散的$\pi$值,而是想探究这样的系统究竟意味着什么,或者说,它具有什么样的特殊性质?如果有,这样的性质可以推广吗?


理想碰撞

假设,这个系统可以看作是一个宏观与微观规律的一个特殊交汇点。

大概来说,这是一个宏观的量子系统

注意,量子不等同于量子物理。量子一词,只是强调离散

在以上的问题中,如果没有作为中间介质的小质量方块,那么整个问题就等同于弹性碰撞。

根据之前的文章:理想碰撞问题。部分摘录如下:

最终我们得到了新的公式表达

$(F)$式的含义可以表述为

容易得到,在上述系统中,若记中间介质的小质量方块和大方块分别为$I,J$。那么,

  • $J$的相对质量系数接近于2
  • 我们有,$I$的原速度初始为0不妨先假设大方块的速度守恒
    • 第1次,$J$的相对速度=v
      • 则$I$被碰撞为速度=v
    • 第2次,$J$的相对速度=2v
      • 则$I$被碰撞为速度=-v+2*2v=3v
    • 第3次,$J$的相对速度=4v
      • 则$I$被碰撞为速度=-3v+2*4v=5v

可以看到,小质量方块$I$会被匀加速。(在次数上的均匀)

即使回到原来的条件,大方块速度不守恒,小方块在初始的多次碰撞中仍然会被加速。

只有当小方块携带的动量与大方块在同一个数量级时,匀加速效应才会衰退。

被加速和传递动量/动能的能力增强是相同的。

emm…为了保证上述的推理是具体的和正确的,编写了相应的程序。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
m1,v1,m2,v2 = map(int,input().split())

M = m1 + m2 # 系统质量
L1 = 2*m1/M # m1的相对质量系数
L2 = 2*m2/M # m2的相对质量系数
v_1 = v1 - v2 # m1的相对速度
v_2 = v2 - v1 # m2的相对速度

#公式
v1_new = v1 + L2*v_2
v2_new = v2 + L1*v_1
print(v1_new," ",v2_new)

"""样例
输入:2 1 1 -2
输出:-1.0 2.0
-----------------
输入:1 0 100 -1
输出:-1.9801980198019802 -0.9801980198019802
"""

好,看来理想碰撞公式的推导没有问题,然后是本模型的多次迭代:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
m1,v1,m2,v2 = map(float,input().split())

M = m1 + m2 # 系统质量
L1 = 2*m1/M # m1的相对质量系数
L2 = 2*m2/M # m2的相对质量系数
v_1 = v1 - v2 # m1的相对速度
v_2 = v2 - v1 # m2的相对速度

#迭代
print("----------碰撞速度表-----------")
print("碰撞次数\t m1速度\t m2速度")
i = 0
while v1 > v2:
v1_new = v1 + L2*v_2 #碰撞
v2_new = v2 + L1*v_1
i += 1
print("第",i,"次: ","{:.5f}".format(v1_new)," ","{:.5f}".format(v2_new))
v1 = -v1_new #碰撞反转
if v1 > v2 or v1 > 0:
i += 1
print("第",i,"次: ","{:.5f}".format(v1)," ","{:.5f}".format(v2_new))
v2 = v2_new
v_1 = v1 - v2 # 更新相对速度
v_2 = v2 - v1

"""样例1
输入:
1 1 100 -2
输出:
1 0 100 -1
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
第 1 次: -1.98020 -0.98020
第 2 次: 1.98020 -0.98020
第 3 次: -3.88197 -0.92158
第 4 次: 3.88197 -0.92158
第 5 次: -5.63001 -0.82646
第 6 次: 5.63001 -0.82646
第 7 次: -7.15507 -0.69861
第 8 次: 7.15507 -0.69861
第 9 次: -8.39676 -0.54309
第 10 次: 8.39676 -0.54309
第 11 次: -9.30591 -0.36606
第 12 次: 9.30591 -0.36606
第 13 次: -9.84651 -0.17454
第 14 次: 9.84651 -0.17454
第 15 次: -9.99714 0.02390
第 16 次: 9.99714 0.02390
第 17 次: -9.75185 0.22139
第 18 次: 9.75185 0.22139
第 19 次: -9.12035 0.41011
第 20 次: 9.12035 0.41011
第 21 次: -8.12765 0.58259
第 22 次: 8.12765 0.58259
第 23 次: -6.81306 0.73200
第 24 次: 6.81306 0.73200
第 25 次: -5.22864 0.85242
第 26 次: 5.22864 0.85242
第 27 次: -3.43715 0.93907
第 28 次: 3.43715 0.93907
第 29 次: -1.50954 0.98854
第 30 次: 1.50954 0.98854
第 31 次: 0.47786 0.99886

-----样例2
输入:
1 0 10000 -1
输出:
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
第 1 次: -1.99980 -0.99980
第 2 次: 1.99980 -0.99980
第 3 次: -3.99880 -0.99920
第 4 次: 3.99880 -0.99920
第 5 次: -5.99620 -0.99820
第 6 次: 5.99620 -0.99820
第 7 次: -7.99120 -0.99680
第 8 次: 7.99120 -0.99680
第 9 次: -9.98301 -0.99500
第 10 次: 9.98301 -0.99500
第 11 次: -11.97082 -0.99281
..........
第 310 次: 4.16839 0.99913
第 311 次: -2.16949 0.99976
第 312 次: 2.16949 0.99976
第 313 次: -0.16973 1.00000
第 314 次: 0.16973 1.00000
"""

如果m2的速度不变,则可以验证指m1的加速。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
m1,v1,m2,v2 = map(float,input().split())

M = m1 + m2 # 系统质量
L1 = 2*m1/M # m1的相对质量系数
L2 = 2*m2/M # m2的相对质量系数
v_1 = v1 - v2 # m1的相对速度
v_2 = v2 - v1 # m2的相对速度

#迭代
print("----------碰撞速度表-----------")
print("碰撞次数\t m1速度\t m2速度")
i = 0
while v1 > v2:
v1_new = v1 + L2*v_2 #碰撞
#v2_new = v2 + L1*v_1
i += 1
print("第",i,"次: ","{:.5f}".format(v1_new)," ","{:.5f}".format(v2))
v1 = -v1_new #碰撞反转
if v1 > v2 or v1 > 0:
i += 1
print("第",i,"次: ","{:.5f}".format(v1)," ","{:.5f}".format(v2))
#v2 = v2_new
v_1 = v1 - v2 # 更新相对速度
v_2 = v2 - v1
if i > 20:
break

"""样例
输入:
1 0 10000 -1.01
输出:
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
第 1 次: -2.01980 -1.01000
第 2 次: 2.01980 -1.01000
第 3 次: -4.03919 -1.01000
第 4 次: 4.03919 -1.01000
第 5 次: -6.05818 -1.01000
第 6 次: 6.05818 -1.01000
第 7 次: -8.07677 -1.01000
第 8 次: 8.07677 -1.01000
第 9 次: -10.09495 -1.01000
第 10 次: 10.09495 -1.01000
第 11 次: -12.11273 -1.01000
第 12 次: 12.11273 -1.01000
第 13 次: -14.13011 -1.01000
第 14 次: 14.13011 -1.01000
第 15 次: -16.14708 -1.01000
第 16 次: 16.14708 -1.01000
第 17 次: -18.16365 -1.01000
第 18 次: 18.16365 -1.01000
第 19 次: -20.17981 -1.01000
第 20 次: 20.17981 -1.01000
第 21 次: -22.19558 -1.01000
第 22 次: 22.19558 -1.01000
"""

非完全弹性

注意到,这虽然是个完全弹性碰撞问题。但大方块最后几乎总是要损失一些能量。也就是说,本问题中的这个模型对于大方块来说,其实相当于一个非完全弹性碰撞。如下所示:(当m1接近于6.3或100左右时m2的损失能量较大)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
5 0 12 -100
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
1 次: -141.17647 -41.17647
2 次: 141.17647 -41.17647
3 次: -116.26298 66.08997
4 次: 116.26298 66.08997
5 次: 45.43049 95.60350

6 0 12 -100
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
1 次: -133.33333 -33.33333
2 次: 133.33333 -33.33333
3 次: -88.88889 77.77778
4 次: 88.88889 77.77778
5 次: 74.07407 85.18519

6.3 0 12 -100
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
1 次: -131.14754 -31.14754
2 次: 131.14754 -31.14754
3 次: -81.69847 80.59661
4 次: 81.69847 80.59661
5 次: 80.25341 81.35527

7 0 12 -100
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
1 次: -126.31579 -26.31579
2 次: 126.31579 -26.31579
3 次: -66.48199 86.14958
4 次: 66.48199 86.14958

100 0 12 -100
----------碰撞速度表-----------
碰撞次数 m1速度 m2速度
1 次: -21.42857 78.57143
2 次: 21.42857 78.57143

可以大概推测,当m1和m2在数量级相近的一定比例时,损失最大。

那么究竟是什么比例呢?大方块最多能损失多少能量呢?

这有些脱离本篇文章的范畴,先不深入讨论。

但可以想象,这与模运算有相当的关联。

如果想象大方块并行地与多个小方块碰撞。。损失能量是否会更多呢?

宏观量子系统

我当然不是指球状闪电或者宏原子。

但是,上述的模型却与光电效应有异曲同工之妙。

这样想,量子力学的内部机制是不是也是这样,实现从宏观连续规律到微观离散规律的转化的呢?

在进行具体的分析之前。现在,不妨构造一个新的宏观量子系统模型。

我们已经知道,完全弹性碰撞是一种量子模型,它具有这些特点:(在此处不妨准确描述一下)

  • 瞬时性:事件的发生是在时间点上完成的
  • 量子性:事件不可分为更基础的事件

对于宏观量子模型,其特性弱化为:

  • 时区性:事件的发生是在有限时区上完成的;
  • 宏观量子性:事件有限可分为更基础的事件。

容易想到的一个实例是:核裂变

(待续)