19 Sep

Cantor-Bernstein 定理(给出双射!)

学过集合论的朋友应该会知道,按照定义,判断两个集合的“势”相同的最直接的方法就是给出这两个集合之间的一个双射。然而,这样的双射往往不容易想到,比如

请给出一个$[0,+\infty)$到$(0,+\infty)$的双射

但是,直观地看,这两个集合的势一定是相当的,而且这两个集合之间的双射有无穷多个。然而,大多数的我们却很难想出一个双射来。当我们看到构造出来的双射时,第一反应往往是:这样的证明是怎么想到的!?比如,上述问题的答案之一是:

点击阅读全文...

22 Sep

实数集到无理数集的双射

集合论的结果告诉我们,全体实数的集合$\mathbb{R}$跟全体无理数的集合$\mathbb{R} \backslash \mathbb{Q}$是等势的,那么,如何构造出它们俩之间的一个双射出来呢?这是一个颇考读者想象力的问题。当然,如果把答案给出来,又似乎显得没有那么神秘。下面给出笔者构造的一个例子,读者可以从中看到这种映射是怎么构造的。

为了构造这样的双射,一个很自然的想法是,让全体有理数和部分无理数在它们自身内相互映射,剩下的无理数则恒等映射。构造这样的一个双射首先得找出一个函数,它的值只会是无理数。要找到这样的函数并不难,比如我们知道:

1、方程$x^4 + 1 = y^2$没有除$x=0,y=\pm 1$外的有理点,否则将与费马大定理$n=4$时的结果矛盾。

2、无理数的平方根依然是无理数。

根据这些信息,足以构造一个正实数$\mathbb{R}^+$到正无理数$\mathbb{R}^+ \backslash \mathbb{Q}^+$的双射,然后稍微修改一下,就可以得到$\mathbb{R}$到$\mathbb{R} \backslash \mathbb{Q}$的双射。

点击阅读全文...

12 Oct

集合的划分与贝尔数

集合上的一个等价关系决定了几何的一个划分,反之亦然,这直观上是不难理解的。但是,如果我要问一个有$n$个元素的有限集合,共有多少种不同的划分呢?以前感觉这也是一个很简单的问题,就没去细想,但前天抽象代数老师提到这是一个有相当难度的题目,于是研究了一下,发现里面大有文章。这里把我的研究过程简单分享一下,读者可以从中看到如何“从零到有”的过程。

以下假设有$n$个元素的有限集合为$\{1,2,\dots,n\}$,记它的划分数为$B(n)$。

前期:暴力计算

$n=3$的情况不难列出:
$$\begin{aligned}&\{\{1,2,3\}\},\{\{1,2\},\{3\}\},\{\{1,3\},\{2\}\},\\
&\{\{2,3\},\{1\}\},\{\{1\},\{2\},\{3\}\}\end{aligned}$$

点击阅读全文...

17 Oct

两百万素数之和与“电脑病”

原则上来讲,同样的算法,如果分别在Python和C++上实现,那么Python的速度肯定比不上C++的。但是Python还被称为“胶水语言”,它允许我们把主要计算的部分用C或C++等高效的语言编写好,然后它作为“粘合剂”把两者粘合在一起。正因为如此,Python才有了各种各样的扩展库,这些库中有不少是用C语言编写的。因此,我们在编写Python程序的时候,如果可以用这些现成的库,速度会快很多。本文就是用Numpy来改进之前的《两百万前素数之和与前两百万素数之和》的计算。

算法本身是没有变的,只是用了Numpy来处理数组计算,代码如下:

点击阅读全文...

25 Oct

从费马大定理谈起(十二):再谈谈切线法

首先谈点题外话,关于本系列以及本博客的写作。其实本博客的写作内容,代表了笔者在这段时间附近的研究成果。也就是说,我此时在写这篇文章,其实表明我这段时间正在研究这个问题。而接下来的研究是否有结果,有怎样的结果,则是完全不知道的。所以,我在写这篇文章的时候,并不确定下一篇文章会写些什么。有些类似的话题,我会放在同一个系列去写。但不管怎样,这些文章可能并不遵循常规的教学或者学习思路,有些内容还可能与主流的思想方法有相当出入,请读者见谅,望大家继续支持!

上一篇我们谈到了切线法来求二次和三次曲线的有理点。切线法在寻找不高于三次的曲线上的有理点是很成功的,可是对于更高次的曲线有没有类似的方法呢?换句话说,有没有推广的可能性。我们从纯代数的角度来回复一下切线法生效的原因。切线法,更一般的是割线法,能够起作用,主要是因为如果有理系数的三次方程有两个有理数的根,那么第三个根肯定是有理数。如果只有一个已知的有理根,那么就可以让两个根重合为已知的那个根,从而割线变成了切线。

点击阅读全文...

24 Nov

力的无穷分解与格林函数法

我小时候一直有个疑问:

直升机上的螺旋桨能不能用来挡雨?

一般的螺旋桨是若干个“条状”物通过旋转对称而形成的,也就是说,它并非一个面,按常理来说,它是没办法用来挡雨的。但是,如果在高速旋转的情况下,甚至假设旋转速度可以任意大,那么我们任意时刻都没有办法穿过它了,这种情况下,它似乎与一个实在的面无异?

力的无穷分解

力的离散化

力的离散化

当然,以上只是笔者小时候的一个“异想天开”的念头,读者不必较真。不过,这个疑问跟本文有什么联系呢?我们在研究振动问题之时,通常会遇到在变力的作用下的受迫振动问题,已知变力是时间的函数,比如$f(t)$,然而,虽然知道$f(t)$的具体形式,但是由于$f$的非线性性,加上外力之后的运动,不一定容易求解。然而,如果可以将一个变化的力分段为无数个无穷小时间内的恒力(冲力),那么我们就可以分段讨论我们要研究的运动,而通常来说,恒力的问题会比变力容易。将一个变力离散化,然后再取极限,那么是不是跟原来在变力下的运动是一样的呢?这跟文章开头的疑问有着类似的思想——离线的极限,跟连续本身,是不是等价的?

而让人惊喜的是,在通常的物理系统中,将力分段为无数个小区间内的恒力的做法,能够导致正确的答案,而且,这恰好是线性常微分方程的格林函数法。下面我们来分析这一做法。

点击阅读全文...

3 Dec

正弦级数和余弦级数

在数学分析的级数理论中,有一类常见的题目,其中涉及到
$$\cos\theta+\cos 2\theta+\dots+\cos n\theta\tag{1}$$

$$\sin\theta+\sin 2\theta+\dots+\sin n\theta\tag{2}$$
之类的正弦或者余弦级数的求和,主要是证明该和式有界。而为了证明这一点,通常是把和式的通项求出来。当然,该级数在物理中也有重要作用,它表示$n$个相同振子的合振幅。在我们的数学分析教材中,通常是将级数乘上一项$\sin\frac{\theta}{2}$,然后利用积化和差公式完成。诚然,如果仅限在实数范围内考虑,这有可能是唯一的推导技巧的。但是这样推导的运算过程本身不简单,而且也不利于记忆,在大二的时候我就为此感到很痛苦。前几天在看费曼的书的时候,想到了一种利用复数的推导技巧。很奇怪,这个技巧是如此简单——写出来显得这篇文章都有点水了——可是我以前居然一直没留意到!看来功力尚浅,需多多修炼呀。

点击阅读全文...

13 Jan

当概率遇上复变:从二项分布到泊松分布

泊松分布,适合于描述单位时间内随机事件发生的次数的概率分布,如某一服务设施在一定时间内受到的服务请求的次数、汽车站台的候客人数等。[维基百科]泊松分布也可以作为小概率的二项分布的近似,其推导过程在一般的概率论教材都会讲到。可是一般教材上给出的证明并不是那么让人赏心悦目,如《概率论与数理统计教程》(第二版,茆诗松等编)的第98页就给出的证明过程。那么,哪个证明过程才更让人点赞呢?我认为是利用母函数的证明。

二项分布的母函数为
$$\begin{equation}(q+px)^n,\quad q=1-p\end{equation}$$

点击阅读全文...