アルゴリズムの最初のステップは次のようになりますか?このGauss-elimination擬似コードの最初のステップは正しいですか?
// find the element with largest absolute value in col p and below row p-1
だから、すべてのcolpの代わりに、その一部だけです。
アルゴリズム:
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]
EDIT:
我々は、行列Aのアルゴリズムは、p = 3の最初のステップから始まる有します。私の質問は、{5,3,2、-1}(すべての要素od col p)または{2、-1}(行p-1の下にあるcol pの要素のみ)から最大の要素を選択する必要がありますか?
[1 2 3 5]
[0 1 3 4]
[0 0 2 2]
を= [0 0 -1 1]
"行' p-1'の下の列 'p'で(ゼロでないもの)を検索します。はい、それはガウス消去の一歩です。それはあなたの実際の質問ですか?または、あなたのアルゴリズムがそれを正しく実装しているかどうかを知りたいですか? (その場合、コメント行を実装したいと思っています) – Teepeemm
ガウス消去のすべてのステップを知っています。私はプログラムとしてアルゴリズムを実装したいので、performaceの問題のためにいくつかのトリックが必要です。だから、アルゴリズムはcol pから最大の要素を選ぶのです。この場合、アルゴリズムは前のステップでピボット要素を選択して行を入れ替えることができるため、正しいかどうかはわかりません。私はより具体的な質問を追加します。英語は私の母国語ではないので、ごめんなさい。 – ldurniat