jag behöver få en Givens-Rotation, som nollställer en matrispost när den multipliceras från höger sida. Jag tittade redan på det här ämnet https://math.stackexchange.com/questions/945736/givens-rotation-from-right-side men jag kunde inte riktigt förstå processen att komma dit.

Några mer detaljer: Jag måste matriserna, A och B och jag behöver få sina Eigenvalues med QZ-algoritmen. Jag får B till triangelform med hjälp av Givens-Rotations från vänster. Dessa omvandlingar tillämpas också på A från vänster sida. Efter att B är i triagonalform vill jag också få A i triagonalform. Därför behöver jag Givens-Rotations från höger så att det inte förstör nollorna i Matrix B (eller finns det en annan möjlighet att göra detta?)

Som en ekvation:

$$ \ börja {bmatrix} a & b \\ c & d \ end {bmatrix} \ cdot \ begin {bmatrix} e & f \\ g & h \ end {bmatrix} = \ börja {bmatrix} ae + bg & af + bh \\ ce + dg & cf + dh \ end {bmatrix} $$

med

$$ ce + dg = 0 $$

Hur hittar jag lämpliga e, f, g, h?

Kan någon ge mig några tips om hur jag kan uppnå detta?

Tack så mycket i förväg!

EDIT: Jag är ganska säker på att det fungerar så här: $$ \ begin {bmatrix} a & b \ end {bmatrix } \ cdot \ begin {bmatrix} c & -s \\ s & c \ end {bmatrix} = \ begin {bmatrix} 0 & r \ slut {bmatrix} $$

med

$$ r = \ sqrt {a ^ 2 + b ^ 2 } $$ $$ c = \ frac {b} {r} $$ $$ s = \ frac {-a} {r} $$

Kan någon som godkänner detta?

EDIT2: Tänk på en enkel 3×3-matris som jag försöker triangulera med hjälp av Dessa givar-rotation från höger.

Jag kan nollställa element (3,1 ) och (2,1) med samma rotationsmatris $ G $ med olika parametrar $ c $ och $ s $. Så jag kan skapa en noll som denna

$ \ begin {bmatrix} * & * & * \\ * & * & * \\ a & b & * \ end {bmatrix} \ cdot \ begin {bmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \ end {bmatrix} = \ begin {bmatrix} * & * & * \\ * & * & * \\ 0 & * & * \ end {bmatrix} $ MEN också så att $ \ begin {bmatrix} * & * & * \\ a & b & * \\ * & * & * \ end {bmatrix} \ cdot \ begin {bmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \ end {bmatrix} = \ begin {bmatrix} * & * & * \\ 0 & * & * \\ * & * & * \ end {bmatrix} $ för samma rotationsmatris $ G $. Detta gör det omöjligt för mig att nollställa elementen iterativt, eftersom den andra rotationen förstör nollan som skapades i den första.

Det är inget problem att nollställa alla element i den sista raden utom den i den högra nedre kanten (eftersom varje noll skapas av en annan rotationsmatris $ G $).

Men hur kan jag uppnå att nollställa de element som nämns i mitt exempel när jag använder samma rotationsmatris $ G $ som förstör redan skapade nollelement?

Snälla, någon hjälp uppskattas mycket!

Kommentarer

  • För framtida referens , en redigering som din ” EDIT2 ” är troligen bättre som en andra fråga. Som det är för närvarande bör det lämnas i fred eftersom frågan har ett accepterat svar.
  • WOW! TILL MYCKET för ditt detaljerade svar! Slutligen fick jag ledtråden som behövs för att nollställa element (2,1) 🙂
  • Kontrollerade bara din procedur. Det funkar verkligen! Tack så mycket!

Svar

Du har rätt. Med valet $$ \ begin {eqnarray *} r & = & \ sqrt {a ^ 2 + b ^ 2} \\ [.6em] c & = & \ frac {b} {r} \\ [.6em] s & = & \ frac {-a} {r} \ end {eqnarray *} $$ a Givens rotation från rätt ger $$ \ begin {pmatrix} a & b \ end {pmatrix} \ begin {pmatrix} c & -s \\ s & c \ end {pmatrix} = \ begin {pmatrix} ac + bs & -as + bc \ end {pmatrix} = \ begin {pmatrix} 0 & r \ end {pmatrix} \ ,, $$ eftersom $$ ac + bs = a \ frac {b} {r} + b \ frac { -a} {r} = \ frac {ab} {r} – \ frac {ab} {r} = 0 $$ och $$ – som + bc = -a \ frac {-a} {r} + b \ frac {b} {r} = \ frac {a ^ 2 + b ^ 2} {r} = \ frac {r ^ 2} {r} = r \,. $$ Se bara till att $ r \ neq0 $.

När det gäller EDIT2:

Du kan bara nollställa båda elementen $ ( 3,1) $ och $ (2,1) $ i ditt exempel med samma Givens-rotationsmatris om matrisen ser ut så här: $$ \ begin {pmatrix} * & * & * \\ a & b & * \\ a & b * \ end {pmatrix} $$ Och i så fall ger multiplicering av din Givens-rotationsmatris från höger $$ \ begin {pmatrix} * & * & * \\ a & b & * \\ a & b & * \ end {pmatrix} \ begin {pmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \ end {pmatrix} = \ begin {pmatrix} * & * & * \\ 0 & r & * \\ 0 & r & * \ end {pmatrix} \ ,, $$ och du har tagit båda elementen till noll samtidigt. Om raderna 2 och 3 inte båda är $ \ begin {pmatrix} a & b & * \ end {pmatrix} $, du behöver olika rotationer, dvs olika $ c $, $ s $ och $ r $ värden.

Vad du gör i praktiken för att få en matris på övre triangelform är att börja med den lägsta raden och sätt alla element utom det sista till noll: $$ \ begin {pmatrix} * & * & * \\ * & * & * \\ a_1 & b_1 & * \ end {pmatrix} \ begin {pmatrix} c_1 & -s_1 & 0 \\ s_1 & c_1 & 0 \\ 0 & 0 & 1 \ slut { pmatrix} = \ börja {pmatrix} * & * & * \\ * & * & * \\ 0 & r_1 & * \ end {pmatrix} = \ börja {pmatrix} *

* & * \\ * & * & * \\ 0 & a_2 & b_2 \ end {pmatrix} $$ och $$ \ begin {pmatrix} * & * & * \\ * & * & * \\ 0 & a_2 & b_2 \ end {pmatrix} \ begin {pmatrix} 1 & 0 & 0 \\ 0 & c_2 & -s_2 \ \ 0 & s_2 & c_2 \ end {pmatrix} = \ börja {pmatrix} * & * & * \\ * & * & * \\ 0 & 0 & r_2 \ end {pmatrix} \,. $$

Nu ska vi se att en radvektor $ \ begin {pmatrix} 0 & 0 & * \ end {pmatrix} $ är invariant under Givens-rotationer från till höger som riktar sig mot den första kolumnen: $$ \ begin {pmatrix} 0 & 0 & * \ end {pmatrix} \ begin { pmatrix} c & -s & 0 \\ s & c & 0 \\ 0 & 0 & 1 \ end {pmatrix} = \ begin {pmatrix} 0 \ cdot (c + s) & 0 \ cdot (cs) & 1 \ cdot * \ end {pmatrix} \ ,.$$

Detta gör att vi kan sätta elementet $ (2,1) $ till noll utan att ändra den sista raden: $$ \ begin {pmatrix} * & * & * \\ a_3 & b_3 & * \\ 0 & 0 & r_2 \ end {pmatrix} \ begin {pmatrix} c_3 & -s_3 & 0 \\ s_3 & c_3 & 0 \\ 0 & 0 & 1 \ end {pmatrix} = \ begin {pmatrix} * & * & * \\ 0 & r_3 & * \\ 0 & 0 & r_2 \ end {pmatrix} \ ,, $$ och vi har nått den övre triangelformen genom att använda tre (olika) Givens-rotationer från höger.

Kommentarer

  • Var så snäll och titta på min andra redigering. Tack så mycket i förväg.

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *