算法的第一步应该如下所示吗?
// 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行下面)?< / p>
[1 2 5 3]
[0 1 3 4]
[0 0 2 2] = A
[0 0 -1 1]
答案 0 :(得分:0)
是的,这一步是正确的。第一个p - 1
行中已包含透视变量。根据高斯消元算法,新的轴必须在不同的行中。
一个简单的例子:
如果您有2x2矩阵,则第一行已经处理,矩阵看起来像是
[1, 2]
[0, 1]
你显然需要选择(2,2)元素作为第二列的枢轴,而不是(1,2)。