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?