算法的第一步應該如下圖所示?此高斯消除僞代碼的第一步是否正確?
// find the element with largest absolute value in col p and below row p-1
所以不是所有的col p只是它的一部分。
算法:
for p = 1 to n do
// find the element with largest absolute value in col p <-first step
// if max is zero, stop!
// if max element not in row p, swap rows
// set pivot element to 1
multiply row p by 1/A[p][p]
// clear lower column entries
for r = p+1 to n do
subtract row p times A[r,p] from current row,
so that element in pivot column becomes 0
// do backwards substitution
for row = n-1 to 1
for col = row+1 to n
// subtract out known quantities
b[row] = b[row] - A[row][col]*b[col]
編輯:
我們有矩陣A.算法從其中p = 3的第一步開始。我的問題是:我應該從{5,3,2,-1}(所有元素od col p)還是{2,-1}選擇最大元素(只有來自col p的元素低於行p-1)?
[1 2 5 3]
[0 1 3 4]
[0 0 2 2] = A
[0 0 -1 1]
」在行'p-1'下面的列'p'中查找(不是零的東西)「。是的,這是高斯消除的一個步驟。這是你真正的問題嗎?還是你想弄清楚你的算法是否正確實現了它? (在這種情況下,你想要實現註釋行。) – Teepeemm
我知道高斯消元的所有步驟。因爲我想實現算法作爲程序,由於性能問題,它需要一些技巧。所以這就是算法從col p中選取最大元素的原因。我不確定它是否正確,因爲在這種情況下,算法可以在上一步中選擇與選擇軸元素的行。我添加更具體的問題。英語不是我的母語,所以對不起:) – ldurniat