抽象數(shù)學(xué)概念的直觀想象,是從最基本的概念開始,用已經(jīng)習(xí)慣的具象,層層堆積建造而成。物理是描述現(xiàn)實的世界,其中的概念都經(jīng)事例反復(fù)喻解,而能直觀想象,任何認(rèn)知的偏差,都以事實為依據(jù)來糾正。數(shù)學(xué)研究邏輯建構(gòu)的抽象世界,在那里公理和定義是最終的依據(jù),定理是可信的構(gòu)件。數(shù)學(xué)為了強(qiáng)調(diào)邏輯推理是求證的唯一手段,防止學(xué)生誤用事實和想象作依據(jù),多數(shù)課文故意剝離抽象概念來源的事例來避免過度想象,一切通過定義和邏輯證明。這樣的數(shù)學(xué)訓(xùn)練嚴(yán)謹(jǐn)了,學(xué)生卻往往失去了有用的直觀。對于數(shù)學(xué)概念和定理,直觀想象因人而異使用的邊際不同,都不足為憑求真,只有邏輯證明才是可靠的,但有了它能將繽紛的美色編織成圖案,會指引你在這抽象世界里行走。正確的想象是由基礎(chǔ)概念和定理累積而成的,它必須在自己頭腦中通過邏輯證明的反復(fù)糾偏淬煉才有價值。 這篇用列向量和矩陣的具象,讓讀者回顧學(xué)過線性代數(shù)的基本概念,建立起基本圖像。這里常對一個概念從不同角度做不同的解讀,用心的讀者可從不同的方向看到圖像的不同側(cè)面。這些都是非?;镜?,大多是你已經(jīng)熟悉的,但也可能有你過去忽略的視角。 2.1列向量和矩陣 解析幾何告訴我們,幾何空間中一個點(diǎn)可以用它的坐標(biāo),也就是用一組數(shù)來表示。這組數(shù)也表示,從原點(diǎn)到這點(diǎn)的矢量分解在各坐標(biāo)軸方向上的分量。用幾何的語言來說,坐標(biāo)值即是向量在坐標(biāo)軸上投影的長度;向量是坐標(biāo)軸單位向量的線性組合,這線性組合的系數(shù)是這些投影分量的長度;包含著這些向量的幾何空間叫做向量空間。豎排著坐標(biāo)值的一組數(shù),稱為列向量,或統(tǒng)稱為向量;數(shù)組中每個數(shù)稱為它的分量。 列向量相加等于對應(yīng)的分量相加;數(shù)乘等于它乘以向量的每個分量。用n個實數(shù)表示列向量的線性空間通常記為Rn,其內(nèi)積等于兩個向量對應(yīng)分量乘積后的總和,它是向量投影與投向向量長度的乘積。 用一個數(shù)組的列向量表示n維線性空間中向量,以此類比三維物理空間的矢量,從三維的物理空間來推想多維的線性空間;用列向量的內(nèi)積計算向量對另一個向量方向的投影長度,想象向量方向間的夾角;矩陣乘列向量,得到另一個列向量,這表示了線性算子的映射作用,不難用計算來驗證這個映射是線性的。 2.2矩陣運(yùn)算 列向量和矩陣是線性代數(shù)中抽象概念的具體表達(dá)和運(yùn)算手段。列向量可以看成僅有一列的矩陣,它的運(yùn)算規(guī)則可以歸納在矩陣中來介紹。 矩陣是排列成矩形的一組數(shù),m*n矩陣是m行n列的矩陣,m*n矩陣A=(aij)mn和B=(bij)mn相加是矩陣中相同位置的各元素相加,A+B=(aij+bij)mn;數(shù)乘c則是c乘以矩陣A中的每一個元素cA=(caij)mn. 顯然,m*n矩陣相加及與數(shù)相乘仍然是m*n矩陣,這叫做對線性運(yùn)算封閉,即m*n矩陣構(gòu)成了一個線性空間。一行數(shù)組是1*n的矩陣,稱為行向量;一列數(shù)組是m*1的矩陣,稱為列向量,它們分別也構(gòu)成了線性空間。雖然矩陣也構(gòu)成線性空間,一般我們都把線性空間的元素表示成向量的形式,而用矩陣表示線性空間中的線性算子。這是在向量和算子的坐標(biāo)表示中,形成的約定。 m*n矩陣A與n*k矩陣D相乘AD是一個m*k的矩陣G=AD,其中G第i行第j列元素定義為A中第i行與D中第j列的內(nèi)積,G=(gij)mk, 。 任意的矩陣相乘未必都有定義,相乘的矩陣,左邊矩陣的列數(shù)必須等于右邊矩陣的行數(shù)。在有定義的矩陣乘法中,顯然乘法的交換律是不成立的,但多個矩陣相乘,結(jié)合律是成立的。矩陣與向量的相乘可以看作矩陣相乘的特殊情況。 乘法的交換律不成立,這在矩陣乘法算法定義下導(dǎo)出,也許人們不覺為奇,但是把矩陣看成是一個數(shù)學(xué)的實體,看成是線性算子的數(shù)值表示,用一個字母符號代表它,解讀成一個物理變量,相乘交換律不成立,就與長期直觀形成標(biāo)量的代數(shù)運(yùn)算相沖突。這是矩陣給經(jīng)驗數(shù)學(xué)之人第一個深刻的習(xí)慣改變。如果你不經(jīng)意,錯誤的習(xí)慣會在以后繼續(xù)迷惑你。量子力學(xué)奠基人之一海森堡創(chuàng)立矩陣力學(xué)時,曾為此苦惱過,物理學(xué)者當(dāng)時難以接受也因不習(xí)慣于此。 抽象代數(shù)運(yùn)算,原則上可以定義不同的矩陣乘法,例如在m*n矩陣間定義同下標(biāo)的元素相乘,實際上這種乘法在支持矩陣計算的軟件中,叫做元素運(yùn)算(Element-Wise Operations),非常有用。但是通常的矩陣乘列向量的算法定義,來自線性方程組中算子對向量作用的表達(dá),約定的矩陣乘法定義來自復(fù)合算子的表達(dá),這個約定乘法的設(shè)計,構(gòu)建了線性代數(shù)的大廈。 2.3 基本圖像 歷史中,矩陣來自解線性方程組。往下看個具體的例子。
這是一個線性方程組。將方程左邊的系數(shù),未知數(shù)和方程右邊的數(shù),由矩陣乘法的定義,可以寫成矩陣的形式,則是:
分別用 A, x, b,記這三個矩陣。方程用這些符號可以表示如下:
列向量這一組數(shù)表示線性空間中一個向量,方程式子 表示矩陣A將向量x變成向量b。矩陣A的作用如同函數(shù),實現(xiàn)一個映射,在空間中稱為算子。這是方程、矩陣和空間中向量間最基本的關(guān)系。 矩陣乘列向量,是矩陣作為一個線性算子把這列向量映射成另一個列向量,線性方程組用計算的細(xì)節(jié)反映了這種關(guān)系。注意方程的個數(shù)未必要等于未知數(shù)的個數(shù),即它表示成的矩陣不一定是方陣。這個方程右邊的向量未必在映射算子的值域中,即解未必存在。即使它在值域中,也許它不只是一個映射的像,即解即使存在也未必是唯一的。你要從中學(xué)習(xí)慣的特殊情況中走出來。 從另一個角度,線性方程組的每一行對應(yīng)著一個行向量與向量x的內(nèi)積計算,方程的右邊是內(nèi)積的值。它表示著向量間的投影關(guān)系。
兩個矩陣相乘既可以看成兩個線性算子的復(fù)合,也可以看成用右邊矩陣的列向量為線性組合的系數(shù),在左邊矩陣的列向量上構(gòu)造出了一組的列向量,形成的另一個矩陣。 矩陣是數(shù)據(jù)的一種形式表示,其加法和乘法對應(yīng)著它們元素間按它的規(guī)則運(yùn)算。矩陣中的元素通常是一個數(shù),但不限于此,它可以是任何數(shù)學(xué)實體,如矩陣、算符等,只要相應(yīng)的元素間運(yùn)算有意義。我們可以把矩陣分塊表示和運(yùn)算,這有時可以帶來運(yùn)算方便和解釋意義。例如上面的方程可以用分塊矩陣形式表示為: 其中 它表示方程右邊的向量是向量A1,A2,A3的線性組合,x是這線性組合系數(shù)的那組數(shù)。把矩陣看成是排成一行的一組列向量,它乘右邊的列向量,相當(dāng)于用右邊列向量的那組數(shù)把矩陣中的列向量線性組合成一個向量。解線性方程組可以看成求這個線性組合的系數(shù)。
2.4計算工具 從計算的角度,矩陣是排列成矩形的一組數(shù),它們打包起來用一個數(shù)學(xué)符號代表以便于批量計算和引用。其加法和數(shù)乘來自向量空間的線性,而乘法的定義則為了適用于線性組合的表示。 矩陣在計算機(jī)里是個數(shù)組,可以用這個數(shù)據(jù)結(jié)構(gòu),儲存諸如一張圖片的像素,一個代數(shù)方程的系數(shù),一個季度銷售的列表和實驗的數(shù)據(jù)等等,在計算機(jī)語言中用一個變量來表示。它們間的運(yùn)算,除了矩陣的加減乘除指數(shù)運(yùn)算外,還可以定義分別對應(yīng)于每個元素間的運(yùn)算,例如兩矩陣的元素乘法和矩陣的初等函數(shù)計算。 矩陣的計算和圖像顯示在今日,已經(jīng)是非常基本的科研和工程的工具了。我們學(xué)習(xí)線性代數(shù)必須明白矩陣各種計算的含義和算法,通過筆算的練習(xí)掌握它。但實際工作中,如果還停留于手算,就像仍然停留在手工作業(yè)不能融入工業(yè)時代一樣的落后。 在21世紀(jì),人機(jī)互動將成為最有效率的工作方式。過去直接引用數(shù)學(xué)定理來做科研,現(xiàn)在直接使用計算機(jī)中的軟件來協(xié)助。矩陣和圖像是一種非常通用的數(shù)據(jù)表達(dá)方式,已經(jīng)有許多的計算機(jī)軟件提供人機(jī)互動的界面和解釋程序為此工作。用于數(shù)學(xué)、統(tǒng)計、科學(xué)和工程中,基于矩陣計算最有名的軟件是MATLAB,這是個收費(fèi)商業(yè)軟件。在你的手頭,如果沒買這個軟件,建議裝一個GNU免費(fèi)軟件Octave,它的解釋程序語言與MATLAB幾乎一樣,而且功能非常相似。在你的學(xué)習(xí)中可以用它驗證計算,熟悉它用于工作。你可在GNU官網(wǎng)鏈接中下載這個免費(fèi)軟件https://www./software/octave/ 下面是在Octave(MATLAB也一樣)指令窗中,演示上述例子的線性方程組解的計算,以及用兩個和三個行向量分別表示二維和三維曲線100個點(diǎn)的坐標(biāo)來畫圖。用戶在“>>”字符開始的行,打進(jìn)指令,在那行下面,指令窗口直接打印出結(jié)果,如果在指令的末尾加上分號“;”,則不打印出結(jié)果,指令行中“%”后面是解釋文字。沒有用過這軟件的讀者,建議花幾個種頭讀一篇入門介紹的例子,如Introductionto Octave練習(xí)一遍。熟悉這類軟件的使用,就像過去學(xué)了數(shù)學(xué)有關(guān)的計算,要熟悉對數(shù)表,計算尺,計算器使用一樣的重要了。
在這例子畫出三維圖后,用戶還能用鼠標(biāo)在圖上旋轉(zhuǎn)不同角度來觀察這個空間曲線。這幾個極其簡單的例子,目的是給讀者一個印象,用計算機(jī)可以很方便地進(jìn)行矩陣計算和畫圖。它也是現(xiàn)代課程學(xué)習(xí)常用的工具。如果你還沒用過,不妨現(xiàn)在開始熟悉它。
(待續(xù)) http://blog.sciencenet.cn/blog-826653-1032707.html 上一篇:重修線性代數(shù)1——?dú)v史 |
|