計算方法實驗(五) 高斯列主元消去法

2021-10-06 13:51:18 字數 2874 閱讀 9644

高斯(gauss)列主元消去法:對給定的n

nn階線性方程組ax=

bax = b

ax=b

,首先進行列主元消元過程,然後進行回代過程,最後得到解或確定該線性方程組是奇異的。

如果係數矩陣的元素按絕對值在數量級方面相差很大,那麼,在進行列主元消元過程前,先把係數矩陣的元素進行行平衡:係數矩陣的每行元素和相應的右端向量元素同除以該行元素絕對值最大的元素。這就是所謂的平衡技術。然後再進行列主元消元過程。

如果真正進行運算去確定相對主元,則稱為顯式相對gauss列主元消去法;如果不進行運算,也能確定相對主元,則稱為隱式相對gauss列主元消去法。

顯式相對gauss列主元消去法:對給定的n

nn階線性方程組ax=

bax = b

ax=b

,首先進行列主元消元過程,在消元過程中利用顯式平衡技術,然後進行回代過程,最後得到解或確定該線性方程組是奇異的。

隱式相對gauss列主元消去法:對給定的n

nn階線性方程組ax=

bax = b

ax=b

,首先進行列主元消元過程,在消元過程中利用隱式平衡技術,然後進行回代過程,最後得到解或確定該線性方程組是奇異的。

gauss列主元消去法

1對k =1

,2,⋯

,n−1

k = 1,2,\cdots,n - 1

k=1,2,

⋯,n−

1,做1.1—1.3,消元過程

1.1 尋找最小的正整數p

pp,k≤p

≤nk \leq p \leq n

k≤p≤n和∣apk

∣=max⁡k≤

j≤n∣

ajk∣\left| a_} \right| = \max_\left| a_} \right|

∣apk​∣=

maxk≤j

≤n​∣

ajk​∣

。如果apk=

0a_} = 0

apk​=

0,輸出奇異標誌,停機;

1.2 如果p≠k

p \neq k

p​=

k,那麼交換p,k

p,kp,

k兩行;

1.3 對i=k

+1,⋯

,ni = k + 1,\cdots,n

i=k+1,

⋯,n,記,記

,記m ik=

aik/a

kkm_} = a_}/a_}

mik​=aik

​/akk

​$,計算

\ a_} = a_} - a_}m_} \\ \ i = k + 1,\cdots,n \\ \ j = k + 1,\cdots,n \\ \ b_ = b_ - b_m_} \\ \ i = k + 1,\cdots,n \\ \end \right.\

⎩⎪⎪⎪⎪⎨

⎪⎪⎪⎪

⎧​aij

​=aij

​−akj

​mik​

i=k+

1,⋯,

nj=k

+1,⋯

,nbi

​=bi

​−bk

​mik​

i=k+

1,⋯,

n​如果a nn=

0a_} = 0

ann​=

0輸出奇異標誌,停機;

置 x n=

bn/a

nnx_ = b_/a_}

xn​=bn

​/ann

​,回代過程

對k =n

−1,⋯

,2,1

k = n - 1,\cdots,2,1

k=n−1,

⋯,2,

1,置 xk=

計算方法 列主元高斯消去

gauss.cpp 定義控制台應用程式的入口點。實驗名稱 列主元高斯消去 實現語言 c 實驗環境 vs 2017 include stdafx.h include include include using namespace std 輸出係數矩陣 右側矩陣 void displayzengguan...

高斯消去法與列主元消去法

兩種消去法的實現主要是,通過函式的實現,傳入引數來實現的。如有其他需要,請另行修改 function time gauss n,a,b b a b tic for k 1 n 1 if a k,k 0 disp the matrix has too many answers,please chang...

列主元高斯消去法(C語言)

高斯消元法是將方程組中的一方程的未知數用含有另一未知數的代數式表示,並將其代人到另一方程中,這就消去了一未知數,得到一解 或將方程組中的一方程倍乘某個常數加到另外一方程中去,也可達到消去一未知數的目的。消元法主要用於二元一次方程組的求解。核心 1 兩方程互換,解不變 2 一方程乘以非零數k,解不變 ...