版權(quán)歸原作者所有,如有侵權(quán),請(qǐng)聯(lián)系我們

[科普中國(guó)]-列主元消去法

科學(xué)百科
原創(chuàng)
科學(xué)百科為用戶(hù)提供權(quán)威科普內(nèi)容,打造知識(shí)科普陣地
收藏

針對(duì)問(wèn)題

高斯消去法從第k步到第k+1步的消元過(guò)程,必須滿(mǎn)足條件。而這個(gè)元素即被稱(chēng)為第k步的主元(素)。顯然,高斯消去法是按方程排列的自然順序產(chǎn)生主元的,這樣,一旦出現(xiàn)計(jì)算就歸于失敗,
而且即使,但若其絕對(duì)值很小,也將會(huì)因用它作除數(shù),引起其他元素的數(shù)量級(jí)及舍人誤差急劇增大,導(dǎo)致最終計(jì)算結(jié)果不可靠。為了避免在高斯消去法應(yīng)用中可能出現(xiàn)的這類(lèi)問(wèn)題,就發(fā)展形成了列主元、全主元等多種消去法。這些方法的基本點(diǎn)在于對(duì)高斯消去法的過(guò)程作某些技術(shù)性修改,全面或局部地選取絕對(duì)值最大的元素為主元素,從而構(gòu)成了相應(yīng)的主元(素)消去法。列主元(素)消去法以處理簡(jiǎn)單、相對(duì)計(jì)算量小的特點(diǎn),在各類(lèi)主元消去法中得到最為廣泛的應(yīng)用。1

基本思想列主元消去法的基本思想是:在進(jìn)行第 步消元時(shí),從第k列的 及其以下的各元素中選取絕對(duì)值最大的元素,然后通過(guò)行變換將它交換到主元素 的位置上,再進(jìn)行消元。2

過(guò)程概述高斯消去法中第k-1步消元得到的結(jié)果可由分塊矩陣記為

式中,b1、b2為對(duì)應(yīng)于右端常數(shù)列的兩個(gè)子塊,而

與高斯消去法不同的是,列主元消去法在第k步消元之前,先在它的第k列主對(duì)角元 及其下方的所有元素中(亦即Akk的第一列元素中)選出絕對(duì)值最大的元素 作為這一列的主元,即

對(duì)式(1),作初等行變換

這樣,就把 換到主對(duì)角元位置上。經(jīng)過(guò)選列主元與行交換之后,再如高斯消去法一樣作行的消元變換。上述過(guò)程從第一步消元開(kāi)始執(zhí)行,即k=1,2,…,n一1,這就構(gòu)成了列****主元消去法。綜上可見(jiàn),列主元消去法僅需矩陣行的交換,因此不發(fā)生未知數(shù)排列次序的調(diào)換。而全主元消去法則要花費(fèi)相當(dāng)多的時(shí)間選取主元,且還需記錄系數(shù)矩陣列交換信息。1

算法本算法將消元結(jié)果覆蓋A,乘數(shù)mik沖掉 方程組解x存放在b內(nèi)。1

1) 對(duì)于k=1,2,…,n-1,依次做到第5)步;

2) 按列選主元,即確定ik,使

3) 如果 則輸出無(wú)解信息,停機(jī);

4) 如果ik=k,則轉(zhuǎn)向5),否則換行

5) 消元過(guò)程

6) 如果 則停機(jī);

7) 回代求解

8) 輸出結(jié)果x。

功能將矩陣A化為上三角矩陣,然后回代求解線(xiàn)性方程組Ax=b。

MATLAB程序function z= Gausselimpiv (A,b, ep)

[m,n]=size(A);

if m~=n

disp(’輸入錯(cuò)誤,系數(shù)矩證陣只能是方陣')

end

if n~=length (b)

disp('輸入錯(cuò)誤,常數(shù)項(xiàng)的個(gè)數(shù)應(yīng)與方程的個(gè)數(shù)相同')

end

if nargin==2

ep= eps ;

end

for k=1:n-1

p=A(k,k);I=k;

for i=k:n

if abs (A (i, k)) > abs (p)

end

end

if p