NAPOMENA: u navedenim algoritmima indeksi matrica i polja počinju od 1, za razliku od C-a gdje počinju od 0, pa se trebaju načiniti prilagodbe u zaglavljima programskih petlji.


Algoritam LU dekompozicije (isti memorijski prostor)

za i = 1 do n-1
    za j = i+1 do n
        A[j,i] /= A[i,i];
        za k = i+1 do n
            A[j,k] -= A[j,i] * A[i,k];

Rezultat: u memorijskom prostoru matrice sustava A nalaze se gornja i donja trokutna matrica.

Supstitucija unaprijed (rješavanje L * y = b , isti memorijski prostor)

za i = 1 do n-1
    za j = i+1 do n
        b[j] -= A[j,i] * b[i];

Rezultat: u memorijskom prostoru vektora b nalazi se vektor y. Za uporabu u laboratorijskim vježbama bit će prethodno potrebno kopirati originalni vektor b.

Supstitucija unatrag (rješavanje U * x = y , isti memorijski prostor)

za i = n do 1
    b[i] /= A[i,i];
    za j = 1 do i-1
        b[j] -= A[j,i] * b[i];

Rezultat: u memorijskom prostoru vektora b nalazi se rješenje sustava. Vrijedi ista napomena kao i kod supstitucije unaprijed.


Algoritam LUP dekompozicije (isti memorijski prostor)

za i = 1 do n
    P[i] = i;
za i = 1 do n-1
    pivot = i;
    za j = i+1 do n
        ako ( abs(A[P[j],i]) > abs(A[P[pivot],i) )
            pivot = j;
    zamijeni(P[i],P[pivot]);

    za j = i+1 do n
        A[P[j],i] /= A[P[i],i];
        za k = i+1 do n
            A[P[j],k] -= A[P[j],i] * A[P[i],k];

NAPOMENA: algoritam možete izvesti tako da zaista zamijenite odgovarajuće retke matrice (jednostavnije je) umjesto da elementima redaka pristupate preko indeksa, kao što je napisano u ovom primjeru.

Rezultat: u memorijskom prostoru matrice sustava A nalaze se gornja i donja trokutna matrica, s tim da je redoslijed redaka matrice zapisan u polju P.