Trebuie să obțin un Givens-Rotation, care pune la zero o intrare matricială atunci când este multiplicată din partea dreapta. M-am uitat deja la acest subiect https://math.stackexchange.com/questions/945736/givens-rotation-from-right-side , dar nu am putut înțelege cu adevărat procesul de a ajunge acolo.
Mai multe detalii: trebuie să matrici, A și B și trebuie să obțin valorile proprii folosind algoritmul QZ. Primesc B în formă triagonală folosind Givens-Rotations de la stânga. Aceste transformări sunt aplicate și la A din partea stângă. După ce B este în formă triagonală, vreau să obțin și A în formă triagonală. Prin urmare, am nevoie de Givens-Rotations from Right, astfel încât să nu distrugă zerourile Matricei B (Sau există o altă posibilitate de a face acest lucru?)
Ca o ecuație:
$$ \ 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} $$
cu
$$ ce + dg = 0 $$
Cum să găsesc e, f, g, h adecvate?
Poate cineva să-mi ofere câteva indicii despre cum să realizăm acest lucru?
Vă mulțumesc anticipat!
EDIT: Sunt destul de sigur că funcționează astfel: $$ \ begin {bmatrix} a & b \ end {bmatrix } \ cdot \ begin {bmatrix} c & -s \\ s & c \ end {bmatrix} = \ begin {bmatrix} 0 & r \ end {bmatrix} $$
cu
$$ r = \ sqrt {a ^ 2 + b ^ 2 } $$ $$ c = \ frac {b} {r} $$ $$ s = \ frac {-a} {r} $$
Poate cineva aprobă acest lucru?
EDIT2: Luați în considerare o matrice simplă 3×3 pe care încerc să o triangularizez folosind aceste date-rotație din dreapta.
Pot elimina zero elemente (3,1 ) și (2,1) folosind aceeași rotație-Matrice $ G $ cu parametri diferiți $ c $ și $ s $. Deci, pot crea un zero ca acesta
$ \ 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} $ DAR și așa $ \ 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} $ pentru aceeași matrice de rotație $ G $. Acest lucru îmi face imposibil să elimin zero elementele în mod iterativ, deoarece cea de-a doua rotație va distruge zero creat în primul.
Nu este o problemă să elimin zero toate elementele din ultimul rând, cu excepția celui în marginea din dreapta jos (deoarece fiecare Zero este creat de o altă Matrice de rotație $ G $).
Dar cum pot obține la zero elementele menționate în exemplul meu, când folosesc aceeași matrice de rotație $ G $ care distruge elementele zero deja create?
Vă rog, orice ajutor este foarte apreciat!
Comentarii
- Pentru referințe viitoare , o editare ca ” EDIT2 ” este probabil mai bine pusă ca o a doua întrebare. Așa cum este în prezent, ar trebui lăsat în pace, deoarece întrebarea are un răspuns acceptat.
- WOW! Vă mulțumesc MULȚI pentru răspunsul dvs. detaliat! În cele din urmă am primit indicii necesare pentru eliminarea zero a elementului (2,1) 🙂
- Doar verificat procedura. Chiar merge! Mulțumesc mult!
Răspunde
Ai dreptate. Cu alegerea $$ \ begin {eqnarray *} r & = & \ sqrt {a ^ 2 + b ^ 2} \\ [.6em] c & = & \ frac {b} {r} \\ [.6em] s & = & \ frac {-a} {r} \ end {eqnarray *} $$ o rotație Givens din dreapta produce $$ \ 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} \ ,, $$ deoarece $$ ac + bs = a \ frac {b} {r} + b \ frac { -a} {r} = \ frac {ab} {r} – \ frac {ab} {r} = 0 $$ și $$ – ca + bc = -a \ frac {-a} {r} + b \ frac {b} {r} = \ frac {a ^ 2 + b ^ 2} {r} = \ frac {r ^ 2} {r} = r \,. $$ Doar ai grijă ca $ r \ neq0 $.
Referitor la EDIT2:
Puteți elimina doar ambele elemente $ ( 3,1) $ și $ (2,1) $ în exemplul dvs. cu aceeași matrice de rotație Givens dacă matricea arată astfel: $$ \ begin {pmatrix} * & * & * \\ a & b & * \\ a & b * \ end {pmatrix} $$ Și, în acest caz, înmulțirea matricei de rotație Givens din dreapta produce $$ \ 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} \ ,, $$ și ați adus ambele elemente la zero simultan. Dacă rândurile 2 și 3 nu sunt ambele $ \ begin {pmatrix} a & b & * \ end {pmatrix} $, au nevoie de rotații diferite, adică valori diferite de $ c $, $ s $ și $ r $.
Ceea ce faceți în practică pentru a aduce o matrice pe forma triunghiului superior, este să începeți cu rândul cel mai jos și aduce toate elementele, dar ultimul la zero: $$ \ 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} = \ începe {pmatrix} *
* & * \\ * & * & * \\ 0 & a_2 & b_2 \ end {pmatrix} $$ și $$ \ 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} \,. $$
Acum, vom vedea că un vector rând $ \ begin {pmatrix} 0 & 0 & * \ end {pmatrix} $ este invariant sub rotații Givens din dreapta care vizează prima coloană: $$ \ 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} \ ,.$$
Acest lucru ne permite să aducem elementul $ (2,1) $ la zero fără a schimba ultimul rând: $$ \ 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} \ ,, $$ și am ajuns la forma triunghiului superior aplicând trei (diferite) rotații de date din dreapta.
Comentarii
- Vă rog, fiți atât de amabili și aruncați o privire la a doua editare. Vă mulțumesc anticipat.