線性代數(shù)的核心問題是解方程。高斯消去法啟示的初等變換,至今仍是解線性方程組和矩陣計(jì)算的基礎(chǔ)。行列式因研究線性方程組解而被引入,帶來矩陣的表示,進(jìn)而聯(lián)系起抽象的代數(shù)。代數(shù)能應(yīng)用于現(xiàn)實(shí)中,在于它具備解方程的有效手段。解方程的算法從空間的角度來看是坐標(biāo)變換,不僅由此易于得出解的表示,也因此能夠看到定性的結(jié)果。線性方程的解從理論到算法都有著清晰明確的結(jié)果。這導(dǎo)致成功的科學(xué)理論系統(tǒng)基本都是線性的。
9.1 線性方程的定性理論
從X到Y線性空間抽象的線性算子A,作用在向量x,映射得到x的像b,于是有等式Ax=b。這便是線性方程。這式子可以表示任何線性空間中線性算子的作用,一切線性方程都可以表示成這個(gè)等式。從已知的A和b,求x,是解方程。如果這是微分算子的線性組合在函數(shù)空間中的作用,則是線性微分方程;對積分算子則是積分方程;在有限維空間則是代數(shù)線性方程組。它們有著共同的性質(zhì)。
Ax=0,叫做齊次方程,它的解構(gòu)成Y的一個(gè)子空間Ker(A),即零空間。滿足Ax=b的等式任何一個(gè)向量x0叫做特解,通解則是特解與零空間中任何一個(gè)向量之和。只有b在算子的像空間Im(A)中,解才存在。如果像空間就是Y的全空間,即映射是滿的,解總是存在的。當(dāng)零空間只有一個(gè)0向量時(shí),線性方程若有解,則是唯一的。線性空間是無窮維時(shí),上述的結(jié)論還涉及到收斂的問題,這要求算子是閉的。巴拿赫空間(定義了距離且柯西列都收斂的向量空間)中,線性算子定義域D(A)中的序列(xn),當(dāng)xn→x,Axn→b,有x也在D(A)中,且Ax=b,則稱A是閉的。
從代數(shù)的角度來看,從Y映射到X的線性算子AR和AL,若AAR= I,稱AR是A的右逆;若ALA=I,稱AL是A的左逆。如果算子有右逆,從A(AR b)= b得知,至少存在著一個(gè)解x0=ARb。如果有左逆,若x是方程的解,因?yàn)?/span>x=AL(Ax)=ALb,它則是唯一的解。當(dāng)AL=AR時(shí),依定義是A的逆A-1,這時(shí)方程的解存在且是唯一的,反之亦然。對此不難有,無窮維的巴拿赫空間(包括了希爾伯特空間)的逆算子定理:一一滿映射閉算子的逆存在,而且是有界的。
9.2有限維線性方程組
在有限維線性空間,線性算子表達(dá)為矩陣A,可以從空間看到更清晰的圖像。
表示成m*n矩陣形式,用算子和向量的符號把方程簡記如下:
從線性算子角度來看,它自然擁有上面抽象線性方程的全部結(jié)論。
將矩陣第j列看成是一個(gè)列向量,記為Aj,即
,這個(gè)線性方程組可以寫成:這意味著解是將方程組右邊的向量b,表示為矩陣中列向量線性組合的系數(shù)。算子A的像空間,即是矩陣A的列空間。線性方程組有解的充要條件是:方程組右邊的向量是矩陣列向量的線性組合,或說它與它們是線性相關(guān)的。齊次方程Ax=0沒有非零解,意味著A的列向量是線性無關(guān)的。顯然,如果非齊次方程有解,方程組右邊的向量,是這些線性無關(guān)的列向量的線性組合,這個(gè)組合的表示是唯一的。如果齊次方程有非零解,線性相關(guān)的列向量則有多種的線性組合,表示同一個(gè)向量。這對應(yīng)著這方程組有唯一解或無數(shù)的解。
再從空間的幾何圖像來看。線性方程組的每個(gè)方程,例如第i個(gè)方程,
,將系數(shù)看成矩陣行向量ai的分量,用向量內(nèi)積的式子記為 ,這表明滿足這第i個(gè)方程解x,是空間中一個(gè)變動的向量,它與向量ai的內(nèi)積是bi,所以滿足這第i個(gè)方程所有的向量x的所指的點(diǎn),在n=3時(shí)是3維空間中的一個(gè)平面,對于一般的n,是n維空間的一個(gè)超平面(注:這里的超平面,指n維幾何空間中的n-1維平面,它不是指那種過原點(diǎn)作為線性n-1維子空間的超平面),它與向量ai的方向垂直,與原點(diǎn)的距離是。這m個(gè)線性方程組的解,是這m個(gè)超平面的交集,它是n維空間里的一個(gè)子集,在極端情況可以是一個(gè)點(diǎn)或空集。也就是說線性方程組可以有無數(shù)個(gè)解,有唯一的解或無解。
9.3 解線性方程組
線性方程具有非常確定的解法和清晰理論結(jié)果。這是它能被廣泛應(yīng)用的原因。我們必須充分地了解這些結(jié)果,才有把握應(yīng)用好計(jì)算機(jī)求解的軟件。
中學(xué)代數(shù)讓我們習(xí)慣于方程的個(gè)數(shù)等于未知數(shù)的個(gè)數(shù),其他情況沒有答案。在應(yīng)用中,我們可能有多于或少于未知數(shù)的方程,實(shí)際上即使等量的方程數(shù),由于在數(shù)學(xué)模型中抽象為屬性的未知數(shù)相關(guān)或相近,方程作為實(shí)驗(yàn)的樣本也可能是線性相關(guān)的相近的,這樣解方程也可能陷入無解、多解或不確定解的情況。我們需要了解從實(shí)用角度怎么處理這些問題,并理解計(jì)算軟件解方程的函數(shù)。下面我們分析n個(gè)未知數(shù)m個(gè)線性方程組Ax=b中,矩陣A的不同情況,然后匯總答案。
A是滿秩方陣。這時(shí)A的逆A-1存在,方程個(gè)數(shù)m與未知個(gè)數(shù)n相等,且列向量線性無關(guān),方程的解可以表示為x = A-1b.
A是列滿秩的長方陣。這是列向量線性無關(guān),方程個(gè)數(shù)多于未知個(gè)數(shù)的情況,矩陣A的秩r = n < m,這時(shí)方程可能有解也可能無解。我們不能扔掉幾個(gè)方程來求解,那犯了丟棄實(shí)驗(yàn)數(shù)據(jù)去修改計(jì)算的錯(cuò)誤,正確的做法是求誤差最小的解y,
。
用最小二乘法可以推出正規(guī)方程(normal equation)ATAy=ATb,它的解y是滿足方程式約束的最小誤差向量。在幾何直觀上,這最小誤差解y對應(yīng)著向量b在A列空間投影Pb的解,即Ay = Pb。投影的算子P=A (ATA)-1AT.
對于列滿秩的A,方陣ATA是滿秩的,ATA的逆存在。顯然AL=(ATA)-1AT是A的左逆。若方程右邊向量b就在A的列空間中,方程有解,這時(shí)Pb=b,正規(guī)方程的解y也就是原方程的解x。從左逆的存在,知道x=(ATA)-1ATb是唯一的解。
A是行滿秩的扁方陣。這是矩陣列向量線性相關(guān),方程個(gè)數(shù)少于未知個(gè)數(shù)的情況,矩陣A的秩r =m < n,這時(shí)方程有多個(gè)解,解點(diǎn)構(gòu)成n維空間中一個(gè)n-m維的超平面。只要求出一個(gè)特解x0,通解便是x0加上A零空間的向量。對于這個(gè)行滿秩的A,方陣AAT的逆存在,顯然AR=AT(AAT)-1是A的右逆,x0= AT(AAT)-1b是方程的一個(gè)特解,若z是A的零空間中的一個(gè)向量,它們的內(nèi)積〈x0, z〉=〈AT(AAT)-1b, z〉=〈(AAT)-1b, Az〉=〈(AAT)-1b, 0〉= 0,這說明x0與零空間正交。而方程的通解是由x0與零空間中向量之和,這些端點(diǎn)構(gòu)成了解平面。x0與這解平面垂直,x0的長度是從原點(diǎn)到這解平面的距離,是這方程中長度最短的解。
A是秩虧缺的。這是矩陣列向量線性相關(guān),方程個(gè)數(shù)多于線性無關(guān)的未知個(gè)數(shù)情況,矩陣A的秩r小于m和n,這方程可能是無解但一旦有解則有多解。這時(shí)矩陣A沒有左逆或右逆,更不可能有逆。但有一種偽逆(Moore–Penrosepseudoinverse)可以用來給出它的廣義解。讓我們看看這是什么?
秩數(shù)為r的m*n矩陣A,都可以做奇異值分解 A= UΣVT,這里U是m階正交陣,V是n階正交陣,Σ是主對角線上有從大到小的r個(gè)正數(shù),其余都是0的m*n矩陣。將Σ主對角線上非零元素取倒數(shù),構(gòu)造n*m矩陣Σ+如下:
令A+=VΣ+UT,A+稱為A的偽逆。從這偽逆的構(gòu)造中很容易看出它的幾何意義:AA+是對A的像空間Im(A)投影算子, A+A是對AT像空間Im(AT)的投影算子。不難從幾何含義中或從代數(shù)式子中推出,它還有這些性質(zhì):AA+A=A,A+AA+=A+,(AA+)T=AA+,(A+A)T=A+A.
這個(gè)偽逆A+,當(dāng)A是滿秩方陣時(shí)等于它的逆A+=A-1,A是列滿秩時(shí)等于左逆A+=AL,A是行滿秩時(shí)等于右逆A+=AR,所以它是包含了這三種情況廣義的逆。
令y0=A+b,它是方程Ay=AA+b的解。因?yàn)?/span>AA+是A的像空間投影算子,如果b在A的像空間中,y0就是Ax=b方程的一個(gè)解,否則它是與之最小誤差的解。如果矩陣A的秩小于它的列數(shù),方程的解或最小誤差解是多個(gè)的。這個(gè)y0是從原點(diǎn)到解平面的垂線??傊?/span>y0=A+b,可以作為各種情況下,滿足線性方程組約束的最好結(jié)果。
上述都是解線性方程組最基本的內(nèi)容。下面的練習(xí)是熟悉、記憶、應(yīng)用這些知識的最好手段。
在MATLAB或Octave中,通過驗(yàn)證下面的例子來熟悉用計(jì)算機(jī)的矩陣計(jì)算。賦值2x4矩陣 A=[1 2 3 4;2 3 4 5],函數(shù)N=null(A)給出A的零空間的一個(gè)標(biāo)準(zhǔn)正交基(線性無關(guān)向量組),rank(A)給出矩陣A的秩,size(A)給出A的行數(shù)和列數(shù)。用矩陣乘法A*N,驗(yàn)證N是A的零空間,隨機(jī)給幾個(gè)矩陣通過以上指令,來驗(yàn)證秩-零度定理。
在數(shù)值計(jì)算中的定性結(jié)果與允許的誤差有關(guān),在一些函數(shù)變量中都有允許誤差的參數(shù)tol,如null(A,tol)和rank(A,tol),不同的誤差允許值可能得出不同的結(jié)果。設(shè)A2=[1 2 3 4;2 3 4 5;2 4 6 8.01]計(jì)算tol=0.01和 0.001時(shí),B的秩,零空間。為什么B*N也近似為0矩陣?
在MATLAB和Octave中用于計(jì)算矩陣A的逆的指令函數(shù)是:inv(A),計(jì)算偽逆是:pinv(A).建議讀者在計(jì)算軟件中,用幾種2x3和3x2行滿秩、列滿秩,秩虧缺的矩陣A及相應(yīng)的b向量,運(yùn)用矩陣的乘法和這些函數(shù),計(jì)算左逆,右逆,偽逆,投影算子,方程解并驗(yàn)證它們間的關(guān)系。
可以用x=A\b來得到線性方程組A*x=b的一個(gè)解,它等于pinv(A)*b. 驗(yàn)證x與Null(A)中任何向量的和,都是這線性方程組的解。
9.4 微分方程
微分方程與代數(shù)方程的區(qū)別,在于前者算子作用的線性空間是無窮維,后者則是有限維的。微分和積分都是線性算子,微積分的計(jì)算基本都是映射和線性代數(shù)運(yùn)算,只因涉及有無窮個(gè)線性無關(guān)的向量,則要考慮無窮個(gè)線性組合的收斂問題。有這個(gè)理解在心,就不至迷惑于在線性代數(shù)中未見的許多條件,放心從抽象的高度,透視許多繁雜的定理和計(jì)算方法。
在計(jì)算機(jī)時(shí)代之前,人們用函數(shù)族作為無窮維線性空間的基,用級數(shù)或積分來表示解與系數(shù)中的函數(shù),在算子作用下將微分方程變成代數(shù)方程來求解。這在物理研究中被廣泛地采用。
另一種解法是對無窮維線性空間進(jìn)行線性變換,如拉普拉斯變換,將解微分方程變成在另一個(gè)線性空間中的代數(shù)運(yùn)算。在現(xiàn)代控制理論中,對線性動態(tài)系統(tǒng)的微分方程,應(yīng)用這種解法,已成為分析和計(jì)算的必備的數(shù)學(xué)工具。
在計(jì)算機(jī)時(shí)代,機(jī)器可以直接給出數(shù)值解。應(yīng)用者不必像舊時(shí)代那樣,花費(fèi)大量時(shí)間學(xué)習(xí)各種計(jì)算方法和技巧了。只需要有一些基本的概念。
高階常微分方程,通過定義導(dǎo)數(shù)變量xk+1(t)=x’k(t)的方式,把它寫成一階微分方程的向量形式x‘(t) = f(x, t), x(0) = c. 將方程兩邊積分后,有定理證明只要這個(gè)f“足夠光滑”(滿足Lipschitz條件),微分方程存在著唯一的解,整理成線性算子作用的形式是:x(t) =Φ(x,t)x(0). 對于一個(gè)離散的時(shí)間序列,可以寫成遞推的式子,如龍格-庫塔法,來計(jì)算這些向量值。
離散的數(shù)值計(jì)算作為精確解的近似是否有意義,取決于它對初值和參數(shù)變化的穩(wěn)定性。對于線性常微分方程,這個(gè)穩(wěn)定性可以通過對微分方程矩陣的特征值分析容易得知。這在現(xiàn)代控制理論中的課程中有詳細(xì)介紹。
(待續(xù))
聯(lián)系客服