高斯说过“数学是科学的皇后,而算术则是数学的女王。”这里的“算术”,其实就是我们现在所说的数论。从很小的时候开始,我便对数论情有独钟。虽然后来接触了很多更为有趣的数学分支,但是对数学的热情依然不减。我想,这大概是因为小时候的情结吧。小学时候,小小年纪的我,刚刚学完素数、合数、约数、整除等等概念,对数字尤其有兴趣。我想,在那时候我唯一能够读懂的数学难题只有数论这一领域吧。比如费马大定理,$x^n+y^n=z^n$,对于n大于2没有正整数解,很容易就知道它在讲什么;再比如,哥德巴赫猜想,每个大于4的偶数都可以分拆成两个奇素数之和,也很简单就弄懂它讲的是什么。所以,小小的我看懂了这些问题后就饶有兴致地摆弄数字啦,也许正因为如此,才让我对数字乃至对数学都有深厚的爱。
哥德巴赫猜想,无疑是数论中的一个璀璨明珠,可是目前来讲,它还是可望不可即的。一个看似如此简单的猜想,却困惑了数学家几百年,至今无人能解。尽管如此,我还是愿意细细地研究它,慢慢地品味它,在“论证”、或者说验算它的时候,欣赏到数学那神秘的美妙。本文主要就是研究给定偶数的“哥德巴赫分拆数”,即通过实际验算得出每个偶数分拆为两个素数之和的不同分拆方式的数目,比如6=3+3,只有一种分拆方式;8=3+5=5+3;有两种分拆方式;10=3+7=5+5=7+3,有三种分拆方式;等等。偶数2n的分拆数记为$G_2 (2n)$。
(这里定义的“分拆数”跟网上以及一般文献中的定义不同,这里把3+5和5+3看成是两种分拆方式,而网上一般的定义是只看成一种。我这里的定义的好处在于分拆方式的数目实际表示了分拆中涉及到的所有素数的个数。)
哥德巴赫猜想很难,这话没错,但是事实上哥德巴赫猜想是一个非常弱的命题。它说“每个大于4的偶数至少可以分拆成两个奇素数之和”,用上面的术语来说,就是每个偶数的“哥德巴赫分拆数”大于或等于1。可是经过实际验算发现,偶数越大,它的哥德巴赫分拆数越大,两者整体上是呈正相关关系的,比如$G_2 (100)=12,G_2 (1000)=56,G_2 (10000)=254$......所以,从强弱程度上来讲,这和“少于n的素数至少有一个”是差不多的(当然,难度有天壤之别)。
开始学习数学软件Scilab
By 苏剑林 | 2012-09-28 | 38750位读者 | 引用其实很早之前我就想学习一款数学软件的使用,以前很感兴趣的是mathematica,也玩弄过一阵子,但毕竟在高中没有多大需要,也就没有坚持下来。更重要的是,这些软件都是要收费的。上了大学后,听了师兄姐对数学建模的讲述,发现他们基本上也是用mathematica或者matlab的,但这两个软件都是要收费的,我不大想用破解版本。既然我都已经用上了ubuntu了,那么我就该好好利用它。据说命令跟matlab很相似的软件是scilab,还有octave,不同的是这些都是开源免费的。
出于熟悉代码操作和数学软件编程的目的,我选择了学习scilab。虽然网上说octave与matlab的相似程度更高,但是我感觉scilab比octave用的更广一些,所以就用它。所谓“一理通百理明”,先专心学好一个。
下面是我编写的第一个scialb程序,利用威尔逊方法来进行素性测试。这个代码的主要目的是练习条件语句和循环语句,以及一些输出输入的技巧而已。程序本身比较丑陋。
//我的第一个scilab程序
//完成于2012.09.27
label1=['p:';]; //定义标签
B=x_mdialog(['本程序使用威尔逊方法判断进行素数测试。';'请输入要判断的数'],label1,['127';]); //输入框
p=evstr(B(1)); //提取输入框里边的数字进行赋值
i=1;
j=1;
q=p-1;
while i<q
j=j*i;
j=modulo(j,p);//这个是模函数。
i=i+1;
end
if j==1
messagebox(['这是一个素数';],['测试结果']); //输出,其中后边的“测试结果”是输入框的标题
else
messagebox(['这是一个合数';],['测试结果']);
end
均值不等式的两个巧妙证明
By 苏剑林 | 2012-09-26 | 52664位读者 | 引用记得几年前,BoJone提供过一个证明均值不等式(代数—几何平均不等式)的方法,但是其中的证明有点长,有点让人眼花缭乱的感觉(虽然里边的思想还是挺简单的)。昨天在上《数学分析》课程的时候,老师讲到了这个不等式,也讲了他的证明,用的是数学归纳法,感觉还是没有那种简洁美和巧妙美。但这让我回想起了之前我研究过的两种巧妙证明方法,可是在昨天划了一整天,都没有把这两种方法回忆起来。直到今天才回想起来,所以就放在这里与大家分享,同时也作备忘之用。
对于若干个非负数$x_i$,我们有
$$\frac{x_1+x_2+...+x_n}{n} \geq \sqrt[n]{x_1 x_2 ... x_n}$$
记为$A_n \geq G_n$
证明1:数学归纳法
这个方法不算简单,但是非常巧妙,它从n递推到n+1的过程让人拍案叫绝。用数学归纳法证明詹森不等式也是同样的递推思路,而均值不等式不过是詹森不等式的一个特例而已。
假设$A_n \geq G_n$成立,要证$A_{n+1} \geq G_{n+1}$。我们有
$$\begin{aligned}&2n A_{n+1}=(n+1)A_{n+1}+(n-1)A_{n+1} \\
=&[x_1 + x_2 +...+x_n]+[x_{n+1}+(n-1)A_{n+1}] \\
\geq &nG_n+n(x_{n+1}\cdot A_{n+1}^{n-1})^{\frac{1}{n}} \\
\geq &2n(G_{n+1}^{n+1}\cdot A_{n+1}^{n-1})^{\frac{1}{2n}}\end{aligned}$$
军训中的数学——握手奇数次的人数
By 苏剑林 | 2012-09-22 | 26104位读者 | 引用军训是比较辛苦,可是总有一些无聊的时刻。比如我们每次集合后的第一件事基本上都是站军姿,少则五分钟,长则二三十分钟,在这段时间里,头脑总得找点东西想才行,不然一动不动的,非常难熬。我就是在军训那些无聊的时刻里通过想数学问题来度过的。比如一有空余时间,我的头脑就浮现着级数$\frac{1}{2}+\frac{1}{3}+\frac{1}{5}+...+\frac{1}{p}$、哥德巴赫猜想、稳定性问题啦等等,并不是说要做出什么大发现,只是为了渡过无聊时间,也是对自己的思维能力和想象能力的锻炼吧。
之前提到过,昨天我们的“格斗方阵”去大学城表演了。在去大学城的过程中,我的一位“战友”问了我一个这样的问题:
在一个相互握手的人群中,握手奇数次的人总是有偶数个。每两个人可以握多于一次的手
他还说这是爱因斯坦提问的。这可把我的兴致给调动起来了。(后来我在网上搜索,却发现不了这个问题跟爱因斯坦的任何联系...)下边是我的颇有戏剧性的思考过程。
复分析学习1:揭示微分与积分的联系
By 苏剑林 | 2012-08-02 | 34482位读者 | 引用笔者这段时间对复数尤其感兴趣,当然,严格来讲应该是复变函数内容,其中一个原因是通过它,我们可以把一些看似毫不相关的内容联系了起来,体现了数学的简洁美和统一美。我相当有兴趣的其中一个内容是实分析中的泰勒级数和傅里叶级数。这两者都是关于某个函数的级数展开式,其中泰勒级数是用于一般函数展开的,其各项系数通过求n阶导数得到;傅里叶级数的对象是周期函数,其各项系数是通过定积分求得的。在实数世界里,两者毫不相关,但是,复分析却告诉我们:它们只是同一个东西!只是将其在不同的角度“投影”到实数世界里,就产生了不同的“物像”,以至于我们认为它们是不同东西而已。
我们直接来看一个变魔术般的运算:
我们知道,在实数世界里头,我们有
$ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}+...$,其中$|x| < 1$
“未解之谜”:为何不讲中点矩形法则?
By 苏剑林 | 2012-07-20 | 53584位读者 | 引用前言
在之前的一些文章中,我们已经指出过现行教材的一些毛病。比如主次不当(最明显的是那些一上来就讲线性方程组的线性代数教程)、缺乏直观性、缺少引导性等,我想其中最主要的原因可能是过于随大流了,别人怎么编我们也跟着怎么编,缺乏自己的观点和逻辑,因此导致一些常见的毛病就一直流传了下来。也许正因如此,就导致了有那么一种奇怪的现象——明明有一种计算量少的、精确度高一些的方法,教科书几乎从未提及;另外一种计算量稍大、精确度稍低的方法,但每一本同类教科书都讲述了它。不能不说这是一个“未解之谜”......
本文要讲的就是这样的两种方法,它们分别是用来求定积分近似值的“中点矩形法则”和“梯形法则”。对于后者我想绝大多数学习过微积分的朋友都会有印象,它就是那个几乎出现在了所有微积分教材的方法;而前者我相信不少读者都未曾听闻,但让人意外的是,它的计算量稍低,精确度却稍高。本文就简单介绍这两种方法,并且比较它们的精度。而本文的独特之处在于,证明过程沿用了《复分析:可视化方法》的思路,使用几何方法漂亮地估计误差!
我们的目标是在难以精确计算的情况下,通过一定的方法求出$\int_a^b f(x)dx$的近似值,这些方法基本上都是利用了积分即面积的思想。
两种不同的方法
椭圆内的一根定长弦(化圆法)
By 苏剑林 | 2012-07-06 | 30723位读者 | 引用在上一篇文章《抛物线内的一根定长弦》中,我们解决了抛物线内的定长弦中点轨迹问题,那还算是一个比较简单的问题。虽然同是圆锥曲线,但把同样的问题延伸到椭圆上,却不是那么简单了。因为椭圆的轨迹方程的x,y坐标通过平方相互“纠缠”在一起,不像抛物线方程那样可以容易分离开来(指的是分离成$y=f(x)$的形式)。BoJone尝试了若干种方法,还是难以把它的轨迹求出来。最后通过“化圆法”,终得轨迹方程。
所谓化圆法,就是将椭圆通过拉伸变成一个圆,利用圆的性质来解决一些问题。众所周知,相比椭圆,圆具有相当多的简单性。这是我高考前研究各种各样的高考圆锥曲线题时,所总结出来的一种方法。有时候,把椭圆拉伸为圆后,结论就相当显然了;同时,圆作为一个特殊的椭圆,椭圆的一般结论,放在圆上自然也是成立的。所以要研究椭圆问题,不妨先研究它的特例——圆问题;另一方面,利用圆的对称性等等,也可以大幅度地减少计算量,所以BoJone很喜欢这个方法。更想不到的是,它居然在求本文的轨迹时派上用场了。
最近评论