前不久chensh出于不可告人的目的,要充當(dāng)老師,教別人線性代數(shù)。于是我被揪住就線性代數(shù)中一些務(wù)虛性的問題與他討論了幾次。很明顯,chensh覺得,要讓自己在講線性代數(shù)的時候不被那位強(qiáng)勢的學(xué)生認(rèn)為是神經(jīng)病,還是比較難的事情。
可憐的chensh,誰讓你趟這個地雷陣?!色令智昏?。?/font>
線性代數(shù)課程,無論你從行列式入手還是直接從矩陣入手,從一開始就充斥著莫名其妙。比如說,在全國一般工科院系教學(xué)中應(yīng)用最廣泛的同濟(jì)線性代數(shù)教材(現(xiàn)在到了第四版),一上來就介紹逆序數(shù)這個“前無古人,后無來者”的古怪概念,然后用逆序數(shù)給出行列式的一個極不直觀的定義,接著是一些簡直犯傻的行列式性質(zhì)和習(xí)題——把這行乘一個系數(shù)加到另一行上,再把那一列減過來,折騰得那叫一個熱鬧,可就是壓根看不出這個東西有嘛用。大多數(shù)像我一樣資質(zhì)平庸的學(xué)生到這里就有點(diǎn)犯暈:連這是個什么東西都模模糊糊的,就開始鉆火圈表演了,這未免太“無厘頭”了吧!于是開始有人逃課,更多的人開始抄作業(yè)。這下就中招了,因?yàn)槠浜蟮陌l(fā)展可以用一句峰回路轉(zhuǎn)來形容,緊跟著這個無厘頭的行列式的,是一個同樣無厘頭但是偉大的無以復(fù)加的家伙的出場——矩陣來了!多年之后,我才明白,當(dāng)老師犯傻似地用中括號把一堆傻了吧嘰的數(shù)括起來,并且不緊不慢地說:“這個東西叫做矩陣”的時候,我的數(shù)學(xué)生涯掀開了何等悲壯辛酸、慘絕人寰的一幕!自那以后,在幾乎所有跟“學(xué)問”二字稍微沾點(diǎn)邊的東西里,矩陣這個家伙從不缺席。對于我這個沒能一次搞定線性代數(shù)的笨蛋來說,矩陣?yán)洗蟮牟徽堊詠砻棵扛愕梦一翌^土臉,頭破血流。長期以來,我在閱讀中一見矩陣,就如同阿Q見到了假洋鬼子,揉揉額角就繞道走。
事實(shí)上,我并不是特例。一般工科學(xué)生初學(xué)線性代數(shù),通常都會感到困難。這種情形在國內(nèi)外皆然。瑞典數(shù)學(xué)家Lars Garding在其名著Encounter with Mathematics中說:“如果不熟悉線性代數(shù)的概念,要去學(xué)習(xí)自然科學(xué),現(xiàn)在看來就和文盲差不多。”,然而“按照現(xiàn)行的國際標(biāo)準(zhǔn),線性代數(shù)是通過公理化來表述的,它是第二代數(shù)學(xué)模型,...,這就帶來了教學(xué)上的困難。”事實(shí)上,當(dāng)我們開始學(xué)習(xí)線性代數(shù)的時候,不知不覺就進(jìn)入了“第二代數(shù)學(xué)模型”的范疇當(dāng)中,這意味著數(shù)學(xué)的表述方式和抽象性有了一次全面的進(jìn)化,對于從小一直在“第一代數(shù)學(xué)模型”,即以實(shí)用為導(dǎo)向的、具體的數(shù)學(xué)模型中學(xué)習(xí)的我們來說,在沒有并明確告知的情況下進(jìn)行如此劇烈的paradigm shift,不感到困難才是奇怪的。
大部分工科學(xué)生,往往是在學(xué)習(xí)了一些后繼課程,如數(shù)值分析、數(shù)學(xué)規(guī)劃、矩陣論之后,才逐漸能夠理解和熟練運(yùn)用線性代數(shù)。即便如此,不少人即使能夠很熟練地以線性代數(shù)為工具進(jìn)行科研和應(yīng)用工作,但對于很多這門課程的初學(xué)者提出的、看上去是很基礎(chǔ)的問題卻并不清楚。比如說:
* 矩陣究竟是什么東西?向量可以被認(rèn)為是具有n個相互獨(dú)立的性質(zhì)(維度)的對象的表示,矩陣又是什么呢?我們?nèi)绻J(rèn)為矩陣是一組列(行)向量組成的新的復(fù)合向量的展開式,那么為什么這種展開式具有如此廣泛的應(yīng)用?特別是,為什么偏偏二維的展開式如此有用?如果矩陣中每一個元素又是一個向量,那么我們再展開一次,變成三維的立方陣,是不是更有用?
* 矩陣的乘法規(guī)則究竟為什么這樣規(guī)定?為什么這樣一種怪異的乘法規(guī)則卻能夠在實(shí)踐中發(fā)揮如此巨大的功效?很多看上去似乎是完全不相關(guān)的問題,最后竟然都?xì)w結(jié)到矩陣的乘法,這難道不是很奇妙的事情?難道在矩陣乘法那看上去莫名其妙的規(guī)則下面,包含著世界的某些本質(zhì)規(guī)律?如果是的話,這些本質(zhì)規(guī)律是什么?
* 行列式究竟是一個什么東西?為什么會有如此怪異的計(jì)算規(guī)則?行列式與其對應(yīng)方陣本質(zhì)上是什么關(guān)系?為什么只有方陣才有對應(yīng)的行列式,而一般矩陣就沒有(不要覺得這個問題很蠢,如果必要,針對m x n矩陣定義行列式不是做不到的,之所以不做,是因?yàn)闆]有這個必要,但是為什么沒有這個必要)?而且,行列式的計(jì)算規(guī)則,看上去跟矩陣的任何計(jì)算規(guī)則都沒有直觀的聯(lián)系,為什么又在很多方面決定了矩陣的性質(zhì)?難道這一切僅是巧合?
* 矩陣為什么可以分塊計(jì)算?分塊計(jì)算這件事情看上去是那么隨意,為什么竟是可行的?
* 對于矩陣轉(zhuǎn)置運(yùn)算AT,有(AB)T = BTAT,對于矩陣求逆運(yùn)算A-1,有(AB)-1 = B-1A-1。兩個看上去完全沒有什么關(guān)系的運(yùn)算,為什么有著類似的性質(zhì)?這僅僅是巧合嗎?
* 為什么說P-1AP得到的矩陣與A矩陣“相似”?這里的“相似”是什么意思?
* 特征值和特征向量的本質(zhì)是什么?它們定義就讓人很驚訝,因?yàn)锳x =λx,一個諾大的矩陣的效應(yīng),竟然不過相當(dāng)于一個小小的數(shù)λ,確實(shí)有點(diǎn)奇妙。但何至于用“特征”甚至“本征”來界定?它們刻劃的究竟是什么?
這樣的一類問題,經(jīng)常讓使用線性代數(shù)已經(jīng)很多年的人都感到為難。就好像大人面對小孩子的刨根問底,最后總會迫不得已地說“就這樣吧,到此為止”一樣,面對這樣的問題,很多老手們最后也只能用:“就是這么規(guī)定的,你接受并且記住就好”來搪塞。然而,這樣的問題如果不能獲得回答,線性代數(shù)對于我們來說就是一個粗暴的、不講道理的、莫名其妙的規(guī)則集合,我們會感到,自己并不是在學(xué)習(xí)一門學(xué)問,而是被不由分說地“拋到”一個強(qiáng)制的世界中,只是在考試的皮鞭揮舞之下被迫趕路,全然無法領(lǐng)略其中的美妙、和諧與統(tǒng)一。直到多年以后,我們已經(jīng)發(fā)覺這門學(xué)問如此的有用,卻仍然會非常迷惑:怎么這么湊巧?
我認(rèn)為,這是我們的線性代數(shù)教學(xué)中直覺性喪失的后果。上述這些涉及到“如何能”、“怎么會”的問題,僅僅通過純粹的數(shù)學(xué)證明來回答,是不能令提問者滿意的。比如,如果你通過一般的證明方法論證了矩陣分塊運(yùn)算確實(shí)可行,那么這并不能夠讓提問者的疑惑得到解決。他們真正的困惑是:矩陣分塊運(yùn)算為什么竟然是可行的?究竟只是湊巧,還是說這是由矩陣這種對象的某種本質(zhì)所必然決定的?如果是后者,那么矩陣的這些本質(zhì)是什么?只要對上述那些問題稍加考慮,我們就會發(fā)現(xiàn),所有這些問題都不是單純依靠數(shù)學(xué)證明所能夠解決的。像我們的教科書那樣,凡事用數(shù)學(xué)證明,最后培養(yǎng)出來的學(xué)生,只能熟練地使用工具,卻欠缺真正意義上的理解。
自從1930年代法國布爾巴基學(xué)派興起以來,數(shù)學(xué)的公理化、系統(tǒng)性描述已經(jīng)獲得巨大的成功,這使得我們接受的數(shù)學(xué)教育在嚴(yán)謹(jǐn)性上大大提高。然而數(shù)學(xué)公理化的一個備受爭議的副作用,就是一般數(shù)學(xué)教育中直覺性的喪失。數(shù)學(xué)家們似乎認(rèn)為直覺性與抽象性是矛盾的,因此毫不猶豫地犧牲掉前者。然而包括我本人在內(nèi)的很多人都對此表示懷疑,我們不認(rèn)為直覺性與抽象性一定相互矛盾,特別是在數(shù)學(xué)教育中和數(shù)學(xué)教材中,幫助學(xué)生建立直覺,有助于它們理解那些抽象的概念,進(jìn)而理解數(shù)學(xué)的本質(zhì)。反之,如果一味注重形式上的嚴(yán)格性,學(xué)生就好像被迫進(jìn)行鉆火圈表演的小白鼠一樣,變成枯燥的規(guī)則的奴隸。
對于線性代數(shù)的類似上述所提到的一些直覺性的問題,兩年多來我斷斷續(xù)續(xù)地反復(fù)思考了四、五次,為此閱讀了好幾本國內(nèi)外線性代數(shù)、數(shù)值分析、代數(shù)和數(shù)學(xué)通論性書籍,其中像前蘇聯(lián)的名著《數(shù)學(xué):它的內(nèi)容、方法和意義》、龔昇教授的《線性代數(shù)五講》、前面提到的Encounter with Mathematics(《數(shù)學(xué)概觀》)以及Thomas A. Garrity的《數(shù)學(xué)拾遺》都給我很大的啟發(fā)。不過即使如此,我對這個主題的認(rèn)識也經(jīng)歷了好幾次自我否定。比如以前思考的一些結(jié)論曾經(jīng)寫在自己的blog里,但是現(xiàn)在看來,這些結(jié)論基本上都是錯誤的。因此打算把自己現(xiàn)在的有關(guān)理解比較完整地記錄下來,一方面是因?yàn)槲矣X得現(xiàn)在的理解比較成熟了,可以拿出來與別人探討,向別人請教。另一方面,如果以后再有進(jìn)一步的認(rèn)識,把現(xiàn)在的理解給推翻了,那現(xiàn)在寫的這個snapshot也是很有意義的。
因?yàn)榇蛩銓懙帽容^多,所以會分幾次慢慢寫。也不知道是不是有時間慢慢寫完整,會不會中斷,寫著看吧。
--------------------------------------------------------------------------
今天先談?wù)剬€形空間和矩陣的幾個核心概念的理解。這些東西大部分是憑著自己的理解寫出來的,基本上不抄書,可能有錯誤的地方,希望能夠被指出。但我希望做到直覺,也就是說能把數(shù)學(xué)背后說的實(shí)質(zhì)問題說出來。
首先說說空間(space),這個概念是現(xiàn)代數(shù)學(xué)的命根子之一,從拓?fù)淇臻g開始,一步步往上加定義,可以形成很多空間。線形空間其實(shí)還是比較初級的,如果在里面定義了范數(shù),就成了賦范線性空間。賦范線性空間滿足完備性,就成了巴那赫空間;賦范線性空間中定義角度,就有了內(nèi)積空間,內(nèi)積空間再滿足完備性,就得到希爾伯特空間。
總之,空間有很多種。你要是去看某種空間的數(shù)學(xué)定義,大致都是“存在一個集合,在這個集合上定義某某概念,然后滿足某些性質(zhì)”,就可以被稱為空間。這未免有點(diǎn)奇怪,為什么要用“空間”來稱呼一些這樣的集合呢?大家將會看到,其實(shí)這是很有道理的。
我們一般人最熟悉的空間,毫無疑問就是我們生活在其中的(按照牛頓的絕對時空觀)的三維空間,從數(shù)學(xué)上說,這是一個三維的歐幾里德空間,我們先不管那么多,先看看我們熟悉的這樣一個空間有些什么最基本的特點(diǎn)。仔細(xì)想想我們就會知道,這個三維的空間:1. 由很多(實(shí)際上是無窮多個)位置點(diǎn)組成;2. 這些點(diǎn)之間存在相對的關(guān)系;3. 可以在空間中定義長度、角度;4. 這個空間可以容納運(yùn)動,這里我們所說的運(yùn)動是從一個點(diǎn)到另一個點(diǎn)的移動(變換),而不是微積分意義上的“連續(xù)”性的運(yùn)動,
上面的這些性質(zhì)中,最最關(guān)鍵的是第4條。第1、2條只能說是空間的基礎(chǔ),不算是空間特有的性質(zhì),凡是討論數(shù)學(xué)問題,都得有一個集合,大多數(shù)還得在這個集合上定義一些結(jié)構(gòu)(關(guān)系),并不是說有了這些就算是空間。而第3條太特殊,其他的空間不需要具備,更不是關(guān)鍵的性質(zhì)。只有第4條是空間的本質(zhì),也就是說,容納運(yùn)動是空間的本質(zhì)特征。
認(rèn)識到了這些,我們就可以把我們關(guān)于三維空間的認(rèn)識擴(kuò)展到其他的空間。事實(shí)上,不管是什么空間,都必須容納和支持在其中發(fā)生的符合規(guī)則的運(yùn)動(變換)。你會發(fā)現(xiàn),在某種空間中往往會存在一種相對應(yīng)的變換,比如拓?fù)淇臻g中有拓?fù)渥儞Q,線性空間中有線性變換,仿射空間中有仿射變換,其實(shí)這些變換都只不過是對應(yīng)空間中允許的運(yùn)動形式而已。
因此只要知道,“空間”是容納運(yùn)動的一個對象集合,而變換則規(guī)定了對應(yīng)空間的運(yùn)動。
下面我們來看看線性空間。線性空間的定義任何一本書上都有,但是既然我們承認(rèn)線性空間是個空間,那么有兩個最基本的問題必須首先得到解決,那就是:
1. 空間是一個對象集合,線性空間也是空間,所以也是一個對象集合。那么線性空間是什么樣的對象的集合?或者說,線性空間中的對象有什么共同點(diǎn)嗎?
2. 線性空間中的運(yùn)動如何表述的?也就是,線性變換是如何表示的?
我們先來回答第一個問題,回答這個問題的時候其實(shí)是不用拐彎抹角的,可以直截了當(dāng)?shù)慕o出答案。線性空間中的任何一個對象,通過選取基和坐標(biāo)的辦法,都可以表達(dá)為向量的形式。通常的向量空間我就不說了,舉兩個不那么平凡的例子:
L1. 最高次項(xiàng)不大于n次的多項(xiàng)式的全體構(gòu)成一個線性空間,也就是說,這個線性空間中的每一個對象是一個多項(xiàng)式。如果我們以x0, x1, ..., xn為基,那么任何一個這樣的多項(xiàng)式都可以表達(dá)為一組n+1維向量,其中的每一個分量ai其實(shí)就是多項(xiàng)式中x(i-1)項(xiàng)的系數(shù)。值得說明的是,基的選取有多種辦法,只要所選取的那一組基線性無關(guān)就可以。這要用到后面提到的概念了,所以這里先不說,提一下而已。
L2. 閉區(qū)間[a, b]上的n階連續(xù)可微函數(shù)的全體,構(gòu)成一個線性空間。也就是說,這個線性空間的每一個對象是一個連續(xù)函數(shù)。對于其中任何一個連續(xù)函數(shù),根據(jù)魏爾斯特拉斯定理,一定可以找到最高次項(xiàng)不大于n的多項(xiàng)式函數(shù),使之與該連續(xù)函數(shù)的差為0,也就是說,完全相等。這樣就把問題歸結(jié)為L1了。后面就不用再重復(fù)了。
所以說,向量是很厲害的,只要你找到合適的基,用向量可以表示線性空間里任何一個對象。這里頭大有文章,因?yàn)橄蛄勘砻嫔现皇且涣袛?shù),但是其實(shí)由于它的有序性,所以除了這些數(shù)本身攜帶的信息之外,還可以在每個數(shù)的對應(yīng)位置上攜帶信息。為什么在程序設(shè)計(jì)中數(shù)組最簡單,卻又威力無窮呢?根本原因就在于此。這是另一個問題了,這里就不說了。
下面來回答第二個問題,這個問題的回答會涉及到線性代數(shù)的一個最根本的問題。
線性空間中的運(yùn)動,被稱為線性變換。也就是說,你從線性空間中的一個點(diǎn)運(yùn)動到任意的另外一個點(diǎn),都可以通過一個線性變化來完成。那么,線性變換如何表示呢?很有意思,在線性空間中,當(dāng)你選定一組基之后,不僅可以用一個向量來描述空間中的任何一個對象,而且可以用矩陣來描述該空間中的任何一個運(yùn)動(變換)。而使某個對象發(fā)生對應(yīng)運(yùn)動的方法,就是用代表那個運(yùn)動的矩陣,乘以代表那個對象的向量。
簡而言之,在線性空間中選定基之后,向量刻畫對象,矩陣刻畫對象的運(yùn)動,用矩陣與向量的乘法施加運(yùn)動。
是的,矩陣的本質(zhì)是運(yùn)動的描述。如果以后有人問你矩陣是什么,那么你就可以響亮地告訴他,矩陣的本質(zhì)是運(yùn)動的描述。(chensh,說你呢?。?/font>
可是多么有意思啊,向量本身不是也可以看成是n x 1矩陣嗎?這實(shí)在是很奇妙,一個空間中的對象和運(yùn)動竟然可以用相類同的方式表示。能說這是巧合嗎?如果是巧合的話,那可真是幸運(yùn)的巧合!可以說,線性代數(shù)中大多數(shù)奇妙的性質(zhì),均與這個巧合有直接的關(guān)系。
posted on 2008-03-11 19:48
zoyi 閱讀(101)
評論(0) 編輯 收藏 引用