FACTORISATION QR AVEC L'ALGORITHME DE HOUSEHOLDER
Contents
Exercice 1
Ecrivez une fonction [W,R] = householder(A) qui prend en entree une matrice A mxn et qui donne en sortie la matrice triangulaire superieure R de la factorisation QR et la matrice triangulaire inf?rieure W dont les colonnes sont les reflections Householder successives.
Testez votre fonction avec la matrice suivante:
rng('default')
A = rand(5,3)-0.5
A =
0.3147 -0.4025 -0.3424
0.4058 -0.2215 0.4706
-0.3730 0.0469 0.4572
0.4134 0.4575 -0.0146
0.1324 0.4649 0.3003
Le resultat de householder(A) devrait etre:
[W,R]=householder(A)
W =
0.8394 0 0
0.3143 -0.7412 0
-0.2889 -0.0711 0.8265
0.3202 0.5090 0.3257
0.1025 0.4318 0.4592
R =
-0.7689 -0.0216 0.0697
0 0.7989 0.2371
-0.0000 0 -0.7596
0 -0.0000 0
0 0 0
Exercice 2
Ecrivez une fonction Q = formQ(W) qui calcule et renvoie la matrice mxm unitaire Q de la factorisation QR.
Testez votre fonction sur W,
Q = formQ(W)
Q =
-0.4093 -0.5149 0.2525 -0.6386 -0.3096
-0.5277 -0.2915 -0.7590 0.2206 0.1086
0.4851 0.0718 -0.5349 -0.2744 -0.6309
-0.5376 0.5581 0.1441 0.2285 -0.5714
-0.1721 0.5773 -0.2309 -0.6450 0.4096
Verifiez que Q est unitaire:
Q*Q'
ans =
1.0000 -0.0000 -0.0000 0 0
-0.0000 1.0000 -0.0000 -0.0000 -0.0000
-0.0000 -0.0000 1.0000 -0.0000 -0.0000
0 -0.0000 -0.0000 1.0000 0.0000
0 -0.0000 -0.0000 0.0000 1.0000
Exercice 3
Calculer trois factorisations QR de la matrice Z a l'aide de householder et formQ, mgs, et la fonction MATLAB [Q,R]=qr(Z,0). Quelle difference voyez-vous?