Gauß-Algorithmus mit Spaltenpivotisierung
Eingabe: Matrix A = (a
i,j)
ni,j=1, rechte Seite b = (b
j)
nj=1Ausgabe: Lösung x = (x
j)
nj=1Sei p = (p
j)
nj=1ein Vektor zur Speicherung der Zeilenvertauschungen Initialisiere: p
j= j, j = 1, . . . , n
// Berechnung der LR-Zerlegung und Auflösen von Ly = b für k = 1, 2 bis n − 1
bestimme Index m, so dass |a
pm,k| = max
k≤i≤n
|a
pi,k| falls |a
pm,k| > |a
pk,k|
// tausche implizit Zeile k und Zeile m:
setze tmp = p
k, p
k= p
m, p
m= tmp für i = k + 1, k + 2 bis n
a
pi,k= a
pi,k/a
pk,kfür j = k + 1, k + 2 bis n
a
pi,j= a
pi,j− a
pi,ka
pk,jb
pi= b
pi− a
pi,kb
pk// Löse Lz = y
für i = n, n − 1 bis 1 z
pi= (b
pi− P
k>i
a
pi,kz
pk)/a
pi,i// Rücktausch für j = 1, 2 bis n
x
i= z
pigib x zurück
2