漫步線性代數三 高斯消元法

2021-07-16 18:38:41 字數 4438 閱讀 5872

了解消元法最好的方式是看例子。我們以三維開始: or

igin

alsy

stem

2u4u

−2u+

−+v6

v7v+

+w2w

===5

−29(1)

問題是找出未知量u,

v,w ,我們應用高斯消元法。(高斯被公認為最偉大的數學家,當然不是因為這項發明,這個他也許只花了十分鐘。諷刺的是,以他名字命名的所有想法中,這個是最常用的)該方法從其他方程減去第乙個方程的倍數開始。目標是消除後面兩個方程中的

u 。這就要求我們

a. 第二個方程減去第乙個方程的2倍

b. 第三個方程減去第乙個方程的-1倍 eq

uiva

lent

syst

em2u

+−v8

v8v+

−+w2

w3w=

==5−

1214

(2)係數2是第乙個主元。消元法不斷用下面的數除以主元,從而找出正確的乘數。

消去法第二階段的主元是-8。我們現在忽略第乙個方程。從餘下的方程中(例題中也就是第三個方程)減去第二個方程的倍數來消除

v 。我們將第二個方程加上第三個,換句話說

c. 第三個方程減去第二個方程的-1倍

現在完成了消去過程,得到了 tr

iang

ular

syst

em2u

+−v8

v+−w

2w1w

===5

−122(3)

然後反向求解方程組,即從下往上。最後乙個方程給出了w=

2 。將它代到第二個方程,我們發現v=

1 。繼續代入第一方程,求出u=

1 。這個過程稱為回代。

大概總結一下:前向消去過程產生主元2,-8,1。下面的每一行減去上面的倍數,達到(3)那樣的「三角」系統,這是以相反的順序來求解的。然後將每個新計算出來的值代入方程即可。

註解:寫出前向消去步驟的好方法是將右邊包含進來作為額外的列。沒有需要每步都複製u,

v,w,

= ,所以我們最終寫成: ⎡⎣

⎢24−

21−6

7102

5−29

⎤⎦⎥→

⎡⎣⎢2

001−

881−

235−

1214⎤⎦

⎥→⎡⎣

⎢200

1−80

1−21

5−122

⎤⎦⎥

最後是三角形系統,準備回代。你可能會更喜歡這個安排,它保證左邊方程運算的同時,右邊也在運算-因為雙方都在一起。

在乙個更大的問題裡,前向消元法比較費力。我們用第乙個方程的倍數在第乙個主元下邊產生零。然後第二列將第二個主元下面的元素清零。當系統是三角形的時候,前向步驟就完成了;

n 個方程中只有最後乙個只包含乘數和主元。以相反的順序回代,得到完整的解-從最後乙個未知量開始,然後乙個乙個解決,知道第乙個。

根據定義,主元不能為零。因為我們需要除它們。

在什麼情況下消元法會失效呢?奇異情況下它肯定失效,一些非奇異情況也會失效。現在討論這個可能似乎有點太早了-畢竟,我們好不容易知道演算法如何工作。但失效的可能性揭示了方法本身。

答案是:有

n個主元的話,問題只有乙個解。該系統是非奇異的,並且它能用前向消元和回代求解出來。但是,如果零出現在主元的位置,消去法將停止-也可能暫時,也可能永久。系統可能是奇異的,也可能不是。

如果第乙個係數為零,即左上角,那麼就無法從其他方程中消去

u 。在中間的每個階段同樣如此。注意零可以出現在乙個主元的位置上,即使那個位置的原始係數不是零。粗略地說,在執行消去過程之前,我們不知道零是否會出現。

在許多情況下是這一問題可以解決,並且消去法可以繼續執行。這種系統仍算作非奇異;它只需要演算法來修復。而其他情況下,失效是不可避免的。那些無藥可救的系統是奇異的,他們沒有解或者有無窮多個,不能找出完整的主元集合。

例1:非奇異(交換方程2,3就能恢復會非奇異的) u2

u4u+

++v2

v4v+

++w=

_5w=

_8w=

_→u+

v2v+

+w=_

3w=_

4w=_

→u+v

2v++

w=_4

w=_3

w=_這個系統現在變成三角形了,然後回帶就能求解它。

例2:奇異(無法恢復) u2

u4u+

++v2

v4v+

++w5

w8w=

_=_=

_→u+

v+w3

w4w=

_=_=

_ 無論如何交換方程,都不可避免的在第二個主元位置上是零。方程本身可能有解也可能無解。如果最後兩個方程是3w

=6,4

w=7 ,那麼沒有解。如果這些兩個方程碰巧是一致的- 3w

=6,4

w=8 -那麼這個奇異情況有無窮個解。我們知道w=

2 ,但是第乙個方程無法確定u,

v 。後面我們會討論系統非奇異的情況。然後交換方程可以產生完整的主元集合。還有奇異情況,消去法就比較麻煩。3w

仍然可以消去4w

,並且我們將3作為第二個主元。(不存在第三個主元)。目前來說,我們相信在不需更改變方程順序的情況下,所有主元都不為零。這是最好的情況,我們繼續討論這種情況。

我們另乙個問題是非常實用的。對

n 個未知量的

n個方程,消去法需要多少部單獨的算術運算?如果

n 很大,電腦將去掉我們進行消元。然而所有的步驟都是已知的,所以我們能夠推測出操作的數量。

眼下,忽略方程右邊,只考慮左邊的操作。這些操作有兩種。除以主元找出要減的乘數(

ℓ)。當我們做減法的時候,我們不斷遇到「乘法-減法」組合;含有主元的方程乘以

ℓ ,然後減去另乙個方程。

假設我們將每個除法和每個乘法-減法,看做一次操作。在列1 中,為了實現每個為零,我們需要

n 次操作-一方面找乘數

ℓ,另一方面整行的計算。第乙個主元下面有n−

1 行,所以消去法的第一階段需要n(

n−1)

=n2−

n 次操作。(另一種計算n2

−n的方法是這樣的:一共有n2

項,除了第一行的

n 個外,一共有n2

−n項需要改變)下一步計算會更快,因為方程變得更簡單了。

當消去法降為

k 個方程時,與第一階段k=

n時一樣,採用同樣的方法,可以得出僅需要k2

−k次操作就完成列的消去。最終,總的操作次數是

k 從1取到

n時所有k2

−k的和: le

ftsi

de(1

2+⋯+

n2)−

(1+⋯

+n)=

n(n+

1)(2

n+1)

6−n(

n+1)

2=n3

−n3

將n=1

,n=2

,n=100

分別代入公式13

(n3−

n),前向消去法可能不需要任何步驟或兩個步驟或大約有100萬的三分之一步:如果n

是乙個很大的值,那麼運算大概需要13

n3步

如果規模翻了一番,並且係數幾乎不為零,那麼成本將是原來的8倍。

回代是相當快的。最後乙個未知量只需一步操作(除以最後乙個主元)。倒數第二個需要兩步,等等。那麼回代的總數是1+

2+⋯+

n 。

右邊有執行前向消元(跟左邊一樣,減去相同的倍數從而保證方程正確)。從第乙個方程開始有n−

1 次減法。最後右邊一共需要n2

步運算-遠遠小於左邊的n3

/3。前向和回代一共需要 ri

ghts

ide[

(n−1

)+(n

−2)+

⋯+1]

+[1+

2+⋯+

n]=n

2 三十年前,幾乎每個數學家會猜測乙個

n 階系統不可能在少於n3

/3次乘法的情況下計算出來。(甚至有定理來證明它,)。令人驚訝的是,這種猜測已被證明是錯的。現在存在一種方法只需要cn

log7

2 次乘法!它依賴於乙個簡單的事實:二維空間中兩個向量的兩種組合似乎需要8次乘法,但他們可以7次就完成。這將

log8

2 的指數3降為

log72≈

2.8

n 值提供了支援。最後指數(在ibm機器上)低於2.376。幸運的是,對於消元法,常數

c非常大,並且編碼很麻煩,所以新方法更多地(或全部)在理論上很有趣。最新的問題是與多個並行處理器的代價。

線性代數 矩陣消元 高斯消元法

能使用消元法的情況 每次消元過程中,對角線元素始終不能為0,即矩陣可逆 我們一般利用高斯消元法進行矩陣的消元。下面我們通過舉例說明 如果按照我們初中所學的解法,一般是先用第三個方程將z用y表示,然後代入到第二個方程就可以用x來表示y和z,最後代入第乙個方程就可以求得x,y,z。這個演算法的核心就是消...

線性代數導論2 矩陣消元

線性代數導論2 矩陣消元 第二課時 矩陣消元 本課時的目標是用矩陣變換描述消元法。核心概念是矩陣變換。一 消元法 消元法 將主對角線上的主元固定 0不能做主元 把主元下面的元素消為0。過程 先完成左側矩陣的消元 變成上三角矩陣 再回代運算右側向量,最後即可求出解完成整個消元過程 matlab也是先計...

線性代數三部曲 二 Gauss消元

1.上三角行列式 d begin a a dots a 0 a dots a vdots vdots ddots vdots 0 0 dots a end 稱為上三角行列式,即主對角線下均為 0 的行列式,其值等於 d prod n a 即主對角線上元素的乘積.2.下三角行列式 d begin a ...