線性代數課程,不管你從行列式入手仍是直接從矩陣入手,從一開始就充斥着莫名其妙。好比說,在全國通常工科院系教學中應用最普遍的同濟線性代數教材(如今到了第四版),一上來就介紹逆序數這個「前無古人,後無來者」的古怪概念,而後用逆序數給出行列式的一個極不直觀的定義,接着是一些簡直犯傻的行列式性質和習題——把這行乘一個係數加到另外一行上,再把那一列減過來,折騰得那叫一個熱鬧,可就是壓根看不出這個東西有嘛用。大多數像我同樣資質平庸的學生到這裏就有點犯暈:連這是個什麼東西都模模糊糊的,就開始鑽火圈表演了,這未免太「無厘頭」了吧!因而開始有人逃課,更多的人開始抄做業。這下就中招了,由於其後的發展能夠用一句峯迴路轉來形容,緊跟着這個無厘頭的行列式的,是一個一樣無厘頭可是偉大的無以復加的傢伙的出場——矩陣來了!多年以後,我才明白,當老師犯傻似地用中括號把一堆傻了吧嘰的數括起來,而且不緊不慢地說:「這個東西叫作矩陣」的時候,個人數學生涯掀開了何等悲壯辛酸、慘絕人寰的一幕!自那之後,在幾乎全部跟「學問」二字稍微沾點邊的東西里,矩陣這個傢伙從不缺席。對於我這個沒能一次搞定線性代數的笨蛋來講,矩陣老大的不請自來往往搞得我灰頭土臉,頭破血流。長期以來,我在閱讀中一見矩陣,就如同阿Q見到了假洋鬼子,揉揉額角就繞道走。數組
事實上,我並非特例。通常工科學生初學線性代數,一般都會感到困難。這種情形在國內外皆然。瑞典數學家Lars Garding在其名著Encounter with Mathematics中說:「若是不熟悉線性代數的概念,要去學習天然科學,如今看來就和文盲差很少。」,然而「按照現行的國際標準,線性代數是經過公理化來表述的,它是第二代數學模型,...,這就帶來了教學上的困難。」事實上,當咱們開始學習線性代數的時候,不知不覺就進入了「第二代數學模型」的範疇當中,這意味着數學的表述方式和抽象性有了一次全面的進化,對於從小一直在「第一代數學模型」,即以實用爲導向的、具體的數學模型中學習的咱們來講,在沒有並明確告知的狀況下進行如此劇烈的paradigm shift,不感到困難纔是奇怪的。函數
大部分工科學生,每每是在學習了一些後繼課程,如數值分析、數學規劃、矩陣論以後,才逐漸可以理解和熟練運用線性代數。即使如此,很多人即便可以很熟練地以線性代數爲工具進行科研和應用工做,但對於不少這門課程的初學者提出的、看上去是很基礎的問題卻並不清楚。好比說:工具
矩陣到底是什麼東西? 向量能夠被認爲是具備n個相互獨立的性質(維度)的對象的表示,矩陣又是什麼呢?咱們若是認爲矩陣是一組列(行)向量組成的新的複合向量的展開式,那麼爲何這種展開式具備如此普遍的應用?特別是,爲何恰恰二維的展開式如此有用?若是矩陣中每個元素又是一個向量,那麼咱們再展開一次,變成三維的立方陣,是否是更有用?學習
矩陣的乘法規則究竟爲何這樣規定? 爲何這樣一種怪異的乘法規則卻可以在實踐中發揮如此巨大的功效?不少看上去彷佛是徹底不相關的問題,最後居然都歸結到矩陣的乘法,這難道不是很奇妙的事情?難道在矩陣乘法那看上去莫名其妙的規則下面,包含着世界的某些本質規律?若是是的話,這些本質規律是什麼?spa
行列式到底是一個什麼東西? 爲何會有如此怪異的計算規則?行列式與其對應方陣本質上是什麼關係?爲何只有方陣纔有對應的行列式,而通常矩陣就沒有(不要以爲這個問題很蠢,若是必要,針對m x n矩陣定義行列式不是作不到的,之因此不作,是由於沒有這個必要,可是爲何沒有這個必要)?並且,行列式的計算規則,看上去跟矩陣的任何計算規則都沒有直觀的聯繫,爲何又在不少方面決定了矩陣的性質?難道這一切僅是巧合?.net
矩陣爲何能夠分塊計算? 分塊計算這件事情看上去是那麼隨意,爲何竟是可行的?設計
對於矩陣轉置運算\(A^T\),有\((AB)^T = B^TA^T\),對於矩陣求逆運算\(A^{-1}\),有\((AB)^{-1} = B^{-1}A^{-1}\)。兩個看上去徹底沒有什麼關係的運算,爲何有着相似的性質?這僅僅是巧合嗎?對象
爲何說\(P^{-1}AP\)獲得的矩陣與A矩陣「類似」?這裏的「類似」是什麼意思?blog
特徵值和特徵向量的本質是什麼? 它們定義就讓人很驚訝,由於\(Ax =λx\),一個諾大的矩陣的效應,居然不過至關於一個小小的數λ,確實有點奇妙。但何至於用「特徵」甚至「本徵」來界定?它們刻劃的到底是什麼?get
這樣的一類問題,常常讓使用線性代數已經不少年的人都感到爲難。就好像大人面對小孩子的刨根問底,最後總會無可奈何地說「就這樣吧,到此爲止」同樣,面對這樣的問題,不少老手們最後也只能用:「就是這麼規定的,你接受而且記住就好」來搪塞。然而,這樣的問題若是不能得到回答,線性代數對於咱們來講就是一個粗暴的、不講道理的、莫名其妙的規則集合,咱們會感到,本身並非在學習一門學問,而是被不禁分說地「拋到」一個強制的世界中,只是在考試的皮鞭揮舞之下被迫趕路,全然沒法領略其中的美妙、和諧與統一。直到多年之後,咱們已經發覺這門學問如此的有用,卻仍然會很是迷惑:怎麼這麼湊巧?
我認爲,這是咱們的線性代數教學中直覺性喪失的後果。上述這些涉及到「如何能」、「怎麼會」的問題,僅僅經過純粹的數學證實來回答,是不能令提問者滿意的。好比,若是你經過通常的證實方法論證了矩陣分塊運算確實可行,那麼這並不可以讓提問者的疑惑獲得解決。他們真正的困惑是:矩陣分塊運算爲何居然是可行的?究竟只是湊巧,仍是說這是由矩陣這種對象的某種本質所必然決定的?若是是後者,那麼矩陣的這些本質是什麼?只要對上述那些問題稍加考慮,咱們就會發現,全部這些問題都不是單純依靠數學證實所可以解決的。像咱們的教科書那樣,凡事用數學證實,最後培養出來的學生,只能熟練地使用工具,卻欠缺真正意義上的理解。
自從1930年代法國布爾巴基學派興起以來,數學的公理化、系統性描述已經得到巨大的成功,這使得咱們接受的數學教育在嚴謹性上大大提升。然而數學公理化的一個備受爭議的反作用,就是通常數學教育中直覺性的喪失。數學家們彷佛認爲直覺性與抽象性是矛盾的,所以絕不猶豫地犧牲掉前者。然而包括我本人在內的不少人都對此表示懷疑,咱們不認爲直覺性與抽象性必定相互矛盾,特別是在數學教育中和數學教材中,幫助學生創建直覺,有助於它們理解那些抽象的概念,進而理解數學的本質。反之,若是一味注重形式上的嚴格性,學生就好像被迫進行鑽火圈表演的小白鼠同樣,變成枯燥的規則的奴隸。
對於線性代數的相似上述所提到的一些直覺性的問題,兩年多來我斷斷續續地反覆思考了4、五次,爲此閱讀了好幾本國內外線性代數、數值分析、代數和數學通論性書籍,其中像前蘇聯的名著《數學:它的內容、方法和意義》、龔昇教授的《線性代數五講》、前面提到的Encounter with Mathematics(《數學概觀》)以及Thomas A. Garrity的《數學拾遺》都給我很大的啓發。不過即便如此,我對這個主題的認識也經歷了好幾回自我否認。好比之前思考的一些結論曾經寫在本身的blog裏,可是如今看來,這些結論基本上都是錯誤的。所以打算把本身如今的有關理解比較完整地記錄下來,一方面是由於我以爲如今的理解比較成熟了,能夠拿出來與別人探討,向別人請教。另外一方面,若是之後再有進一步的認識,把如今的理解給推翻了,那如今寫的這個snapshot也是頗有意義的。
由於打算寫得比較多,因此會分幾回慢慢寫。也不知道是否是有時間慢慢寫完整,會不會中斷,寫着看吧。
今天先談談對線形空間和矩陣的幾個核心概念的理解。這些東西大部分是憑着本身的理解寫出來的,基本上不抄書,可能有錯誤的地方,但願可以被指出。但我但願作到直覺,也就是說能把數學背後說的實質問題說出來。
首先說說空間(space) ,這個概念是現代數學的命根子之一,從拓撲空間開始,一步步往上加定義,能夠造成不少空間。線形空間其實仍是比較初級的,若是在裏面定義了範數,就成了賦範線性空間。賦範線性空間知足完備性,就成了巴那赫空間;賦範線性空間中定義角度,就有了內積空間,內積空間再知足完備性,就獲得希爾伯特空間。
總之,空間有不少種。你要是去看某種空間的數學定義,大體都是「存在一個集合,在這個集合上定義某某概念,而後知足某些性質」,就能夠被稱爲空間。這未免有點奇怪,爲何要用「空間」來稱呼一些這樣的集合呢?你們將會看到,其實這是頗有道理的。
咱們通常人最熟悉的空間,毫無疑問就是咱們生活在其中的(按照牛頓的絕對時空觀)的三維空間,從數學上說,這是一個三維的歐幾里德空間,咱們先無論那麼多,先看看咱們熟悉的這樣一個空間有些什麼最基本的特色。仔細想一想咱們就會知道,這個三維的空間:
上面的這些性質中,最最關鍵的是第4條。第一、2條只能說是空間的基礎,不算是空間特有的性質,凡是討論數學問題,都得有一個集合,大多數還得在這個集合上定義一些結構(關係),並非說有了這些就算是空間。而第3條太特殊,其餘的空間不須要具有,更不是關鍵的性質。只有第4條是空間的本質,也就是說,容納運動是空間的本質特徵。
認識到了這些,咱們就能夠把咱們關於三維空間的認識擴展到其餘的空間。事實上,無論是什麼空間,都必須容納和支持在其中發生的符合規則的運動(變換)。你會發現,在某種空間中每每會存在一種相對應的變換,好比拓撲空間中有拓撲變換,線性空間中有線性變換,仿射空間中有仿射變換,其實這些變換都只不過是對應空間中容許的運動形式而已。
所以只要知道,「空間」是容納運動的一個對象集合,而變換則規定了對應空間的運動。
下面咱們來看看線性空間。線性空間的定義任何一本書上都有,可是既然咱們認可線性空間是個空間,那麼有兩個最基本的問題必須首先獲得解決,那就是:
空間是一個對象集合,線性空間也是空間,因此也是一個對象集合。那麼線性空間是什麼樣的對象的集合?或者說,線性空間中的對象有什麼共同點嗎?
線性空間中的運動如何表述的? 也就是,線性變換是如何表示的?
咱們先來回答第一個問題,回答這個問題的時候實際上是不用拐彎抹角的,能夠直截了當的給出答案。線性空間中的任何一個對象,經過選取基和座標的辦法,均可以表達爲向量的形式。一般的向量空間我就不說了,舉兩個不那麼平凡的例子:
L1. 最高次項不大於n次的多項式的全體構成一個線性空間,也就是說,這個線性空間中的每個對象是一個多項式。若是咱們以x0, x1, ..., xn爲基,那麼任何一個這樣的多項式均可以表達爲一組n+1維向量,其中的每個份量ai其實就是多項式中x(i-1)項的係數。值得說明的是,基的選取有多種辦法,只要所選取的那一組基線性無關就能夠。這要用到後面提到的概念了,因此這裏先不說,提一下而已。
L2. 閉區間[a, b]上的n階連續可微函數的全體,構成一個線性空間。也就是說,這個線性空間的每個對象是一個連續函數。對於其中任何一個連續函數,根據魏爾斯特拉斯定理,必定能夠找到最高次項不大於n的多項式函數,使之與該連續函數的差爲0,也就是說,徹底相等。這樣就把問題歸結爲L1了。後面就不用再重複了。
因此說,向量是很厲害的,只要你找到合適的基,用向量能夠表示線性空間裏任何一個對象。這裏頭大有文章,由於向量表面上只是一列數,可是其實因爲它的有序性,因此除了這些數自己攜帶的信息以外,還能夠在每一個數的對應位置上攜帶信息。爲何在程序設計中數組最簡單,卻又威力無窮呢?根本緣由就在於此。這是另外一個問題了,這裏就不說了。
下面來回答第二個問題,這個問題的回答會涉及到線性代數的一個最根本的問題。
線性空間中的運動,被稱爲線性變換。也就是說,你從線性空間中的一個點運動到任意的另一個點,均可以經過一個線性變化來完成。那麼,線性變換如何表示呢?頗有意思,在線性空間中,當你選定一組基以後,不只能夠用一個向量來描述空間中的任何一個對象,並且能夠用矩陣來描述該空間中的任何一個運動(變換)。而使某個對象發生對應運動的方法,就是用表明那個運動的矩陣,乘以表明那個對象的向量。
簡而言之,在線性空間中選定基以後,向量刻畫對象,矩陣刻畫對象的運動,用矩陣與向量的乘法施加運動。
是的,矩陣的本質是運動的描述。若是之後有人問你矩陣是什麼,那麼你就能夠響亮地告訴他,矩陣的本質是運動的描述。
但是多麼有意思啊,向量自己不是也能夠當作是n x 1矩陣嗎?這實在是很奇妙,一個空間中的對象和運動居然能夠用相類同的方式表示。能說這是巧合嗎?若是是巧合的話,那可真是幸運的巧合!能夠說,線性代數中大多數奇妙的性質,均與這個巧合有直接的關係。
做者:myan
來源:CSDN
原文:https://blog.csdn.net/myan/article/details/647511