《新理解矩阵3》:行列式的点滴
By 苏剑林 | 2012-11-04 | 41718位读者 | 引用本文的最新版本位于:http://kexue.fm/archives/2208/
亲爱的读者朋友们,科学空间版的理解矩阵已经来到了BoJone认为是最激动人心的部分了,那就是关于行列式的叙述。这部分内容没有在孟岩的文章中被谈及到,是我自己结合了一些书籍和网络资源而得出的一些看法。其中最主要的书籍是《数学桥》,而追本溯源,促进我研究这方面的内容的是matrix67的那篇《教材应该怎么写》。本文包含了相当多的直观理解内容,在我看来,这部分内容也许不是正统的观点,但是至少在某种程度上能够促进我们对线性代数的理解。
大多数线性代数引入行列式的方式都是通过讲解线性方程组的,这种方式能够让学生很快地掌握它的计算,以及给出了一个最实际的应用(就是解方程组啦)。但是这很容易让读者走进一个误区,让他们认为线性代数就是研究解方程组的。这样并不能让读者真正理解到它的本质,而只有当我们对它有了一个直观熟练的感觉,我们才能很好地运用它。
行列式的出现其实是为了判断一个矩阵是否可逆的,它通过某些方式构造出一个“相对简单”的函数来达到这个目的,这个函数就是矩阵的行列式。让我们来反思一下,矩阵可逆意味着什么呢?之前已经提到过,矩阵是从一个点到另外一个点的变换,那么逆矩阵很显然就是为了把它变换回来。我们还说过,“运动是相对的”,点的变换又可以用坐标系的变换来实现。但是,按照我们的直觉,不同的坐标系除了有那些运算上的复杂度不同(比如一般的仿射坐标系计算点积比直角坐标系复杂)之外,不应该有其他的不同了,用物理的语言说,就是一切坐标系都是平权的。那么给出一个坐标系,可以自然地变换到另外一个坐标系,也可以自然地将它变换回来。既然矩阵是这种坐标系的一个描述,那么矩阵不可逆的唯一可能性就是:
这个$n$阶矩阵的$n$个列向量根本就构不成一个$n$维空间的坐标系。
《新理解矩阵2》:矩阵是什么?
By 苏剑林 | 2012-10-31 | 38066位读者 | 引用上一篇文章中我从纯代数运算的角度来讲述了我对矩阵的一个理解,可以看到,我们赋予了矩阵相应的运算法则,它就在代数、分析等领域显示出了巨大作用。但是纯粹的代数是不足够的,要想更加完美,最好是找到相应的几何对象能够与之对应,只有这样,我们才能够直观地理解它,以达到得心应手的效果。
几何理解
我假设读者已经看过孟岩的《理解矩阵》三篇文章,所以更多的细节我就不重复了。我们知道,矩阵A
$$\begin{pmatrix}a_{11} & a_{12} \\ a_{21} & a_{22}\end{pmatrix}$$
事实上由两个向量$[a_{11},a_{21}]^T$和$[a_{12},a_{22}]^T$(这里的向量都是列向量)组成,它描述了一个平面(仿射)坐标系。换句话说,这两个向量其实是这个坐标系的两个基,而运算$y=Ax$则是告诉我们,在$A$这个坐标系下的x向量,在$I$坐标系下是怎样的。这里的$I$坐标系就是我们最常用的直角坐标系,也就是说,任何向量(包括矩阵里边的向量),只要它前面没有矩阵作用于它,那么它都是在直角坐标系下度量出来的。
《新理解矩阵1》:矩阵是什么?
By 苏剑林 | 2012-10-29 | 76946位读者 | 引用前边我承诺过会写一些关于自己对矩阵的理解。其实孟岩在《理解矩阵》这三篇文章中,已经用一种很直观的方法告诉了我们有关矩阵以及线性代数的一些性质和思想。而我对矩阵的理解,大多数也是来源于他的文章。当然,为了更好地理解线性代数,我还阅读了很多相关书籍,以求得到一种符合直觉的理解方式。孟岩的blog已经很久没有更新了,在此谨引用他的标题,来叙述我对矩阵的理解。
当然,我不打算追求那些空间、算子那些高抽象性的问题,我只是想发表一下自己对线性代数中一些常用工具的看法,比如说矩阵、行列式等。同时,文章命名为“理解矩阵”,也就是说这不是矩阵入门教程,而是与已经有一定的线性代数基础的读者一起探讨关于矩阵的其他理解方式,仅此而已。我估计基本上学过线性代数的读者都能够读懂这篇文章。
首先,我们不禁要追溯一个本源问题:矩阵是什么?
分享:孟岩的《理解矩阵》一文
By 苏剑林 | 2012-10-22 | 58990位读者 | 引用之前已经提到我要自学相对论和量子力学。作为现代物理的两大支柱,所用的数学也是很“现代”的,不能总是用高中那套简单的模式来计算,所以线性代数是我要熟悉的一门课程之一。现在大一还没开设线性代数课程,但是我所持的观点是:“任何东西只要你需要它,你就应该去学,而且能够学会。”其实我初三暑假的时候就开始接触了线性代数,我看的那本教材,跟国内其他线性代数教材一样,采用了一种只要求记忆和计算的方式来教授,先讲从线性方程组引出行列式,再到矩阵。我那时也在背诵,知道了了行列式怎么算的,行列式可以用来解方程组,矩阵是怎么相乘的等等。但我完全不知道为什么,我甚至不懂为什么这门课程叫“线性代数”。(当然,也有可能是那时的数学水平不够)国外很多教程都讲的很好,很规范地教,但是对于国内像我这样平庸的学生又显得过于专业。我一直期待有这样的一个平衡点,可惜一直没有找到,所以只能从各种渠道摸索。
高斯说过“数学是科学的皇后,而算术则是数学的女王。”这里的“算术”,其实就是我们现在所说的数论。从很小的时候开始,我便对数论情有独钟。虽然后来接触了很多更为有趣的数学分支,但是对数学的热情依然不减。我想,这大概是因为小时候的情结吧。小学时候,小小年纪的我,刚刚学完素数、合数、约数、整除等等概念,对数字尤其有兴趣。我想,在那时候我唯一能够读懂的数学难题只有数论这一领域吧。比如费马大定理,$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 | 39933位读者 | 引用其实很早之前我就想学习一款数学软件的使用,以前很感兴趣的是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 | 53913位读者 | 引用记得几年前,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 | 26753位读者 | 引用军训是比较辛苦,可是总有一些无聊的时刻。比如我们每次集合后的第一件事基本上都是站军姿,少则五分钟,长则二三十分钟,在这段时间里,头脑总得找点东西想才行,不然一动不动的,非常难熬。我就是在军训那些无聊的时刻里通过想数学问题来度过的。比如一有空余时间,我的头脑就浮现着级数$\frac{1}{2}+\frac{1}{3}+\frac{1}{5}+...+\frac{1}{p}$、哥德巴赫猜想、稳定性问题啦等等,并不是说要做出什么大发现,只是为了渡过无聊时间,也是对自己的思维能力和想象能力的锻炼吧。
之前提到过,昨天我们的“格斗方阵”去大学城表演了。在去大学城的过程中,我的一位“战友”问了我一个这样的问题:
在一个相互握手的人群中,握手奇数次的人总是有偶数个。每两个人可以握多于一次的手
他还说这是爱因斯坦提问的。这可把我的兴致给调动起来了。(后来我在网上搜索,却发现不了这个问题跟爱因斯坦的任何联系...)下边是我的颇有戏剧性的思考过程。
最近评论