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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *