24 Apr

“抢15”游戏简析

昨天在上“科学计算软件”课时,讲到了一个“抢15”游戏(Pick15),就是在1~9这9个数字中,双方轮流选一个数字,不可重复,谁的数字中有三个数字的和为15的,谁就是赢家。

这是个简单的游戏,属于博弈论范畴。在博弈论中有一个著名的“策梅洛定理”(Zermelo's theorem),它指出在二人的有限游戏中,如果双方皆拥有完全的资讯,并且运气因素并不牵涉在游戏中,那先行或后行者当一必有一方有必胜/必不败的策略。比如中国象棋就属于这一类游戏,它告诉我们对于其中一方必有一种必不败策略(有可能和棋,有可能胜,反正不会输)。当然,策梅洛定理只是告诉我们其存在性,并没有告诉我们怎么发现这个策略,甚至连哪一方有这种最优策略都没有给出判别方法。这是幸运的,因为如果真有一天发现了这种策略,那么像象棋这类博弈就失去了意义了

上述的抢15游戏当然也属于这类游戏。不同于象棋的千变万化,它的变化比较简单,而且很容易看出它对先手有着明显的优势。下面我们来分析一下。

点击阅读全文...

8 Apr

2^29363731-1不是素数!

2^29363731-1

2^29363731-1

很小的时候就开始对素数感兴趣了,后来是在一本《未解之谜》上看到了梅森素数、完全数、孪生素数等等东西,觉得甚是好玩。在初中买了计算机之后,就关注到了Prime 95这个梅森素数的分布式计算程序,以前也尝试过运行它,不过由于那时候计算机配置较低,一般都是运行到20%左右就没有坚持下去了。

上大学入手了一台四核的笔记本,就在去年10月份左右再次运行了这个程序,由于是四核,一次性可以同时测试四个数字。经过半年的运行,今天终于测试完了第一个数字:$2^{29363731}-1$。正如预料中的,这不是一个素数。不管怎样,它是我第一个完成的测试,也算是自己的一个独立的成果啦,呵呵,自娱自乐一番。

点击阅读全文...

8 Apr

浅谈引力助推

这已经是去年写的稿件了,刊登在今年二月份的《天文爱好者》上,本文的标题还登载了该期天爱的封面上,当时甚是高兴呢!在此与大家分享、共勉。

相信许多天文爱好者都知道第一、第二、第三宇宙速度的概念,也会有不少的天爱自己动手计算过它们。我们道,只要发射速度达到7.9km/s,宇宙飞船就可以绕地球运行了;超过11.2km/s,就可以抛开地球,成为太阳系的一颗“人造行星”;再大一点,超过16.7km/s,那么就连太阳也甩掉了,直奔深空。

16.7km/s,咋看上去并不大,因为地球绕太阳运行的速度已经是30km/s了,这个速度在宇宙中实在是太普通了。但是对于我们目前的技术来说,它大得有点可怕。维基百科上的资料显示,史上最强劲的火箭土星五号在运送阿波罗11号到月球时,飞船最终也只能加速到接近逃逸速度,即11.2km/s,而事实上第三宇宙速度已经是是目前人造飞行器的速度极限了。可是没有速度,我们就不能发射探测器去探索深空,那些科幻小说中的“星际移民”,就永远只能停留在小说上了。

点击阅读全文...

14 Apr

流体静力平衡的应用

很早以前我就对这个问题感兴趣了,但是一直搁置着,没有怎么研究。最近在阅读《引力与时空》的“潮汐力”那一节时重新回到了这个问题上,决定写点什么东西。在这里不深究流体静力平衡的定义,顾名思义地理解,它就是流体在某个特定的力场下所达到的平衡状态。流体静力学告诉我们:

达到流体静力平衡时,流体的面必定是一个等势面。

这是为什么呢?我们从数学的角度来简单分析一下:只考虑二维情况,假如等势面方程是$U(x,y)=C$,那么两边微分就有
$$0=dU=\frac{\partial U}{\partial x}dx+\frac{\partial U}{\partial y}dy=(\frac{\partial U}{\partial x},\frac{\partial U}{\partial y})\cdot (dx,dy)$$

这意味着向量$(\frac{\partial U}{\partial x},\frac{\partial U}{\partial y})$和向量$(dx,dy)$是垂直的,前者便是力的函数,后者就是一个切向量(三维就是一个切平面)。也就是说合外力必然和流体面垂直,这样才能提供一个相等的方向相反的内力让整个结构体系处于平衡状态!

点击阅读全文...

14 Apr

费曼积分法(8):求高斯积分

自从了解了费曼积分法之后,我就一直想着用费曼积分法来求高斯积分$\int_0^{\infty} e^{-x^2}dx=\frac{\sqrt{\pi}}{2}$这个神奇的积分,但一直无果。在《数学桥》里边,作者是通过将其转变为二重积分来解决的,简洁而巧妙。但是为了显示费曼积分法的威力,我一直想找到高斯积分的其他求法。上星期在《数学物理方法》中看到作者用拉普拉斯变换求出了该积分,眼睛不禁为之一亮,不过这属于积分变换内容,属于“积分符号内取积分”的技巧,在此不作讨论。今天在网上查找资料时,在“赵洁”的一篇论文《含参变量积分》中,看到了一种属于费曼积分法范畴内的方法,特与大家分享。

从“事后分析”来看,高斯积分的结果涉及到了$\sqrt{\pi}$这个量,一般来说我们常见的公式出现$\pi$的不少,可是几乎没有出现$\sqrt{\pi}$的,所以一般来说我们都将它平方。我们引入
$$f(x)=(\int_0^x e^{-t^2}dt)^2$$

点击阅读全文...

18 Apr

纠缠的时空(三):长度收缩和时间延缓

我们之前通过矩阵变换方式推导出了洛伦兹变换以及速度合成公式等结论,不得不说,矩阵推导方式有种引人入胜的魅力。今天,在讲述相对论(包括电动力学、广义相对论)的书籍里边,在数学形式上取而代之了张量这一工具,这实际上是对矩阵的一个推广(之前已经提到过,二阶张量相当于矩阵)。采用这样的形式在于它充分体现了相对论的对称和变换关系。本文将来谈及狭义相对论的一些基本结论,包括同时性、长度收缩、时间延缓等。

本文的光速$c=1$。

同时的相对性

在同一时空中,采取两个时空坐标进行洛伦兹变换,再作差,我们得到:
\begin{equation}\left[\begin{array}{c} \Delta x\\ \Delta t \end{array}\right]=\frac{1}{\sqrt{1-v^2}}\left[\begin{array}{c c}1 & v\\ v & 1 \end{array}\right]\left[\begin{array}{c}\Delta x'\\ \Delta t' \end{array}\right]\end{equation}

点击阅读全文...

25 Apr

学习场论(电磁场、重力场)

本博客的文章其实一定程度上反映了我在该时期的学习研究,所以我觉得写blog是一件很惬意的事情,它记录着我的成长历程。读者可能留意到,我上学期说对量子力学很感兴趣,也算是入了一点点门。这学期开学初表示对摄动理论方面的知识很感兴趣,也研究了一两个星期。再后来就将学习重点放在了相对论上面了。现在呢?我在学习朗道的《场论》,主要先学习电磁场(电动力学)。

有的读者可能比较无语:你怎么变来变去,学习不是贵在精而不在多吗?

点击阅读全文...

22 May

当Matlab遇上牛顿法

牛顿法是求方程近似根的一个相当有用而且快捷的方法,我们最近科学计算软件课程(Matlab)的一个作业就是编写求方程近似解的程序,其中涉及到牛顿法。我们要实现的目标是,用户输入一道方程,脚本就自动求出根来。这看起来是一个挺简单的循环迭代程序,但是由于Matlab本身的特殊性,却产生了不少困难。

Matlab是为了数值计算(尤其是矩阵运算)而生的,因此它并不擅长处理符号计算。这就给我们编程带来了困难。在网上随便一搜,就可以发现,网上的Matlab牛顿法程序都是要求用户同时输入方程及其导函数,这显然是不方便的,因为Matlab本身就具备了求导功能。下面我们来分析一下困难在哪里。

我们要实现的最基本功能是定义一个函数,然后可以根据该函数求具体的函数值,并且自动求该函数的导数,接着求导数值。这些看起来很基本的功能在Matlab中却很难调和,因为Matlab的“函数”定义很广,一个具有特定功能的M文件叫“函数”,一个运算式$f(x)$也可能是一个函数,显然后者是可以求导的,前者却不行,所以Matlab一刀砍——不能对函数求导!!

点击阅读全文...