Minun täytyy saada Givens-Rotation, joka nollaa matriisimerkinnän kerrottuna oikea puoli. Katsoin jo tätä aihetta https://math.stackexchange.com/questions/945736/givens-rotation-from-right-side , mutta en voinut oikein ymmärtää sinne pääsyn prosessia.

Joitakin yksityiskohtia: Minun on matriisit, A ja B ja i täytyy saada niiden ominaisarvot QZ-algoritmin avulla. Saan B triagonaaliseen muotoon Givens-Rotations vasemmalta. Näitä muunnoksia sovelletaan A: han myös vasemmalta puolelta. Kun B on triagonaalimuodossa, haluan saada myös A triagonaalimuodossa. Siksi tarvitsen Givens-Rotations from Right, jotta se ei tuhoaisi Matrix B: n nollia (vai onko siihen toinen mahdollisuus?)

Yhtälönä:

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

kanssa

$$ ce + dg = 0 $$

Kuinka löytää sopiva e, f, g, h?

Voiko kukaan antaa minulle vihjeitä tämän saavuttamiseksi?

Kiitos paljon etukäteen!

MUOKKAA: Olen melko varma, että se toimii näin: $$ \ begin {bmatrix} a & b \ end {bmatrix } \ cdot \ begin {bmatrix} c & -s \\ s & c \ end {bmatrix} = \ begin {bmatrix} 0 & r \ end {bmatrix} $$

merkinnällä

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

Voi kuka tahansa hyväksyy tämän?

EDIT2: Tarkastellaan yksinkertaista 3×3-matriisia, jota yritän kolmiota käyttämällä näitä givens-rotaatiota oikealta.

Voin nollata elementit (3,1 ) ja (2,1) käyttäen samaa kiertomatriisia $ G $ eri parametreilla $ c $ ja $ s $. Joten voin luoda tämän kaltaisen nollan

$ \ 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} $ MUTTA pitää myös siitä, että $ \ 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} $ samalle kiertomatriisille $ G $. Tämän vuoksi minun on mahdotonta nollata elementtejä iteratiivisesti, koska toinen kierto tuhoaa ensimmäisessä luodun nollan.

Ei ole mitään ongelmaa nollata kaikki viimeisen rivin elementit paitsi yksi oikeassa alareunassa (koska jokaisen nollan luo toinen kiertomatriisi $ G $).

Mutta miten voin saavuttaa nollan pois esimerkissäni mainitut elementit käytettäessä samaa kiertomatriisia $ G $, joka tuhoaa jo luodut nollaelementit?

Ole hyvä ja arvostatko apua!

Kommentit

  • myöhempää tarvetta varten , muokkauksesi kuten ” EDIT2 ”, on todennäköisesti parempi esittää toinen kysymys. Kuten nyt, se tulisi jättää yksin, koska kysymykseen on hyväksytty vastaus.
  • WOW! Kiitos Paljon yksityiskohtaisesta vastauksestasi! Lopuksi sain vihjeen, joka tarvitaan Zero out -elementtiin (2,1) 🙂
  • Tarkistin vain menettelytapasi. Se todella toimii! Kiitos paljon!

Vastaa

Olet oikeassa. Valinnalla $$ \ aloita {eqnarray *} r & = & \ sqrt {a ^ 2 + b ^ 2} \\ [.6em] c & = & \ frac {b} {r} \\ [.6em] s & = & \ frac {-a} {r} \ end {eqnarray *} $$ a Givensin kierto oikea tuottaa $$ \ 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} \ ,, $$ koska $$ ac + bs = a \ frac {b} {r} + b \ frac { -a} {r} = \ frac {ab} {r} – \ frac {ab} {r} = 0 $$ ja $$ – muodossa + bc = -a \ frac {-a} {r} + b \ frac {b} {r} = \ frac {a ^ 2 + b ^ 2} {r} = \ frac {r ^ 2} {r} = r \,. $$ Pidä huolta, että $ r \ neq0 $.

EDIT2:

Voit nollata vain molemmat elementit $ ( 3,1) $ ja $ (2,1) $ esimerkissäsi samalla Givens-kiertomatriisilla, jos matriisi näyttää tältä: $$ \ begin {pmatrix} * & * & * \\ a & b & * \\ a & b * \ end {pmatrix} $$ Ja siinä tapauksessa kertomalla Givens-kiertomatriisi oikealta saadaan $$ \ 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} \ ,, $$ ja olet saattanut molemmat elementit nollaan samanaikaisesti. Jos rivit 2 ja 3 eivät ole molemmat $ \ aloita {pmatrix} a & b & * \ end {pmatrix} $, tarvitsevat erilaisia kiertoja, eli erilaisia $ c $, $ s $ ja $ r $ -arvoja.

Se mitä käytännössä teet matriisin saattamiseksi ylemmän kolmion muotoon, on aloittaa alimmasta rivistä ja tuo kaikki elementit paitsi viimeiset nollaan: $$ \ begin {pmatrix} * & * & * \\ * & * & * \\ a_1 & b_1 & * \ end {pmatrix} \ begin {pmatrix} c_1 & -s_1 & 0 \\ s_1 & c_1 & 0 \\ 0 & 0 & 1 \ end { pmatrix} = \ begin {pmatrix} * & * & * \\ * & * & * \\ 0 & r_1 & * \ end {pmatrix} = \ aloita {pmatrix} *

* & * \\ * & * & * \\ 0 & a_2 & b_2 \ end {pmatrix} $$ ja $$ \ 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} = \ begin {pmatrix} * & * & * \\ * & * & * \\ 0 & 0 & r_2 \ end {pmatrix} \,. $$

Nyt näemme, että rivivektori $ \ begin {pmatrix} 0 & 0 & * \ end {pmatrix} $ on invariantti kohdassa Givens oikea, joka kohdistaa ensimmäiseen sarakkeeseen: $$ \ 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} \ ,.$$

Tämän avulla voimme tuoda elementin $ (2,1) $ nollaan muuttamatta viimeistä riviä: $$ \ 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} \ ,, $$ ja olemme saavuttaneet ylemmän kolmion muodon soveltamalla kolmea (erilaista) Givens-kiertoa oikealta.

Kommentit

  • Ole ystävällinen ja tutustu toiseen muokkaukseeni. Kiitos paljon etukäteen.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *