Faremo alcuni esempi di funzionamento dell'algoritmo di fattorizzazione per osservarne il comportamento.
Per verificare la bontà dell'algoritmo abbiamo generato casualmente una matrice triangolare inferiore a diagonale unitaria ed una triangolare superiore e le abbiamo moltiplicate tra loro ed abbiamo poi applicato l'algoritmo di fattorizzazione al prodotto, ottenendo
» l1=round(10*(tril(rand(10,10),-1)))+eye(10) l1 = 1 0 0 0 0 0 0 0 0 0 4 1 0 0 0 0 0 0 0 0 1 5 1 0 0 0 0 0 0 0 4 6 1 1 0 0 0 0 0 0 9 1 5 5 1 0 0 0 0 0 4 5 0 5 4 1 0 0 0 0 3 5 2 3 4 8 1 0 0 0 4 9 3 4 5 8 8 1 0 0 7 9 9 9 10 9 4 6 1 0 7 5 3 8 3 6 0 5 6 1 » u1=round(10*(triu(rand(10,10)))) u1 = 8 0 7 3 5 2 0 8 10 10 0 4 4 10 1 6 4 3 4 5 0 0 5 5 7 10 7 2 1 5 0 0 0 4 0 3 9 7 7 1 0 0 0 0 6 5 5 3 9 5 0 0 0 0 0 6 1 5 2 4 0 0 0 0 0 0 5 8 0 3 0 0 0 0 0 0 0 9 5 3 0 0 0 0 0 0 0 0 1 8 0 0 0 0 0 0 0 0 0 1 » a1=l1*u1 a1 = 8 0 7 3 5 2 0 8 10 10 32 4 32 22 21 14 4 35 44 45 8 20 32 58 17 42 27 25 31 40 32 24 57 81 33 57 40 59 72 76 72 4 92 82 87 94 89 123 143 130 32 20 48 82 49 79 86 99 133 94 24 20 51 81 58 133 94 124 125 123 32 36 79 133 80 177 166 221 173 188 56 36 130 192 167 289 259 325 317 293 56 20 84 118 79 149 134 217 219 221 » A=fattlu(a1) A = 8 0 7 3 5 2 0 8 10 10 4 4 4 10 1 6 4 3 4 5 1 5 5 5 7 10 7 2 1 5 4 6 1 4 0 3 9 7 7 1 9 1 5 5 6 5 5 3 9 5 4 5 0 5 4 6 1 5 2 4 3 5 2 3 4 8 5 8 0 3 4 9 3 4 5 8 8 9 5 3 7 9 9 9 10 9 4 6 1 8 7 5 3 8 3 6 0 5 6 1 »
dove, nella parte strettamente triangolare inferiore di abbiamo la parte strettamente triangolare inferiore di e nella parte triangolare superiore abbiamo .
Proviamo adesso l'algoritmo su una matrice completamente casuale:
» a1 a1 = 2 6 5 1 9 6 1 9 9 10 3 1 9 2 10 6 8 3 5 5 6 9 6 1 8 2 5 3 7 5 8 7 4 5 9 7 6 2 7 4 0 0 8 8 4 1 5 6 10 8 4 7 7 2 7 5 1 6 6 5 8 3 4 0 3 3 3 9 5 8 2 8 5 1 8 6 9 2 6 5 3 1 9 5 2 3 4 3 10 1 6 2 6 9 4 8 1 6 4 1 » A=fattlu(a1) A = Columns 1 through 4 2.00000000000000 6.00000000000000 5.00000000000000 1.00000000000000 1.50000000000000 -8.00000000000000 1.50000000000000 0.50000000000000 3.00000000000000 1.12500000000000 -10.68750000000000 -2.56250000000000 4.00000000000000 2.12500000000000 1.79532163742690 4.53801169590643 0 0 -0.74853801169591 1.34020618556701 2.00000000000000 0.62500000000000 0.36842105263158 0.13917525773196 4.00000000000000 2.62500000000000 1.86549707602339 -0.11726804123711 1.00000000000000 -0.25000000000000 -0.03508771929825 0.00773195876289 1.50000000000000 1.00000000000000 0 0.66108247422680 3.00000000000000 2.00000000000000 1.12280701754386 1.73582474226804 Columns 5 through 8 9.00000000000000 6.00000000000000 1.00000000000000 9.00000000000000 -3.50000000000000 -3.00000000000000 6.50000000000000 -10.50000000000000 -15.06250000000000 -12.62500000000000 -5.31250000000000 -12.18750000000000 7.47953216374269 12.04093567251462 -2.27485380116959 10.19298245614035 -17.29896907216495 -24.58762886597938 4.07216494845361 -16.78350515463917 0.24880810488677 3.96811680572110 -3.80184743742551 1.80989272943981 -0.29849523241955 1.13394533303296 -2.89220545167831 17.43144101524367 0.14228247914184 0.55752046256664 -3.80207968220586 57.52323090703740 0.74828665077473 1.87457760756927 -0.54753281146551 0.20812412887897 0.69778009535161 1.62072914320042 0.61062429411536 -0.10213668385438 Columns 9 through 10 9.00000000000000 10.00000000000000 -8.50000000000000 -10.00000000000000 -10.43750000000000 -13.75000000000000 7.80116959064327 9.93567251461988 -8.26804123711340 -15.60824742268041 -1.87067938021454 -1.18355184743743 11.35173087031614 17.74881730119396 39.82797834638001 62.30377380535107 7.46266388810654 0.08094519791148 -0.25256005115097 -2.45256300872870 »
come riprova possiamo
» a2=(tril(A,-1)+eye(10))*triu(A) a2 = 2 6 5 1 9 6 1 9 9 10 3 1 9 2 10 6 8 3 5 5 6 9 6 1 8 2 5 3 7 5 8 7 4 5 9 7 6 2 7 4 0 0 8 8 4 1 5 6 10 8 4 7 7 2 7 5 1 6 6 5 8 3 4 0 3 3 3 9 5 8 2 8 5 1 8 6 9 2 6 5 3 1 9 5 2 3 4 3 10 1 6 2 6 9 4 8 1 6 4 1 »