Givens-rotatie

Uit testwiki
Versie door imported>ErikvanB op 27 feb 2019 om 21:22
(wijz) ← Oudere versie | Huidige versie (wijz) | Nieuwere versie → (wijz)
Naar navigatie springen Naar zoeken springen

Een givens-rotatie is in de numerieke lineaire algebra een rotatie in het vlak dat wordt gevormd door twee coördinaatassen. Givens-rotaties zijn genoemd naar de Amerikaanse wiskundige Wallace Givens (1910-1993).

Matrixvoorstelling

De givens-rotatie in wijzerzin van een vector x over een hoek van θ radialen in het vlak van de i-de en j-de coördinaatassen in een n-dimensionele ruimte kan men berekenen uit het product G(i,j,θ)x van de givens-matrix G(i,j,θ) met de vector x.

De givens-matrix is de vierkante n×n-matrix

G(i,j,θ)=[10000cs00sc00001]

waarin c=cos(θ) en s=sin(θ) voorkomen op de snijpunten van de i-de en j-de rijen en kolommen. De andere elementen op de hoofddiagonaal zijn gelijk aan 1, en alle andere elementen van een givens-matrix zijn nul. De vier elementen op de plaatsen (i,i), (i,j), (j,i) en (j,j) vormen de rotatiematrix van rotatie over de hoek θ.

Toepassing

De givens-rotatie is numeriek stabiel. Givens-rotaties worden in numerieke lineaire algebra gebruikt om nulwaarden in vectoren en matrices te bekomen, bijvoorbeeld in het jacobi-eigenwaardealgoritme of bij de berekening van de QR-decompositie van een matrix.

QR-decompositie

In de QR-decompositie vermenigvuldigt men de matrix A achtereenvolgens links met givens-rotaties G1,,Gk, zodanig dat de elementen onder de hoofddiagonaal nul worden en de matrix herleid wordt tot een bovendriehoeksmatrix R. Elke vermenigvuldiging met een givens-matrix verandert alleen de waarden in de i-de en j-de rij van de matrix.

R=GkG1A

De inverse, of equivalent de getransponeerde, van het product van de toegepaste givens-rotaties vormt een orthogonale matrix Q, zodat A=QR.

Als in de i-de kolom van de matrix A onder de diagonaal in de j-de rij het getal b staat, kan dat omgezet worden in 0 door een givens-rotatie G(i,j,θ) met c=cos(θ) en s=sin(θ). Er moet voldaan worden aan:

[cssc][ab]=[r0],

waarin a=Aii het element op de diagonaal is. Daaruit volgt dat:

r=a2+b2
c=a/r
s=b/r

Voorbeeld

De 3x3-matrix A wordt met QR-decompositie herleid tot een bovendriehoeksmatrix R met behulp van van givens-rotaties.

A=[650514043]

Er zijn twee rotaties nodig om de elementen A(2,1) en A(3,2) om te zetten in 0. Noem G1 de givens-matrix die A(2,1) omzet in 0, dan worden

r=62+52=61=7,8102
c=6/r=0,7682
s=5/r=0,6402
G1=[cs0sc0001]

De matrixvermenigvuldiging G1A geeft de volgende getransformeerde matrix:

A=[7,81024,48132,560702,43273,0729043]

Noem G2 de givens-matrix waarmee A(3,2) op nul gezet wordt. Daarvoor geldt

G2=[1000cs0sc]

met

r=(2,4327)2+42=4,6817
c=2,4327/r=0,5196
s=4/r=0,8544

Met deze waarden levert de matrixvermenigvuldiging de bovendriehoeksmatrix R:

R=G2A=[7,81024,48132,560704,68170,9664004,1843]

De matrix Q in de decompositie A=QR wordt dan gegeven door:

Q=(G1G2)T

Dit is in dit voorbeeld de matrix:

Q=[0,76820,33260,54700,64020,39920,656400,85440,5196]