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