Jai besoin dobtenir une Givens-Rotation, qui met à zéro une entrée de matrice lorsquelle est multipliée par côté droit. Jai déjà regardé ce sujet https://math.stackexchange.com/questions/945736/givens-rotation-from-right-side mais je ne pouvais pas vraiment comprendre le processus pour y arriver.

Quelques détails supplémentaires: jai besoin de matrices, A et B et jai besoin dobtenir leurs valeurs propres en utilisant lalgorithme QZ. Jobtiens B à la forme triagonale en utilisant Givens-Rotations de gauche. Ces transformations sont également appliquées à A depuis le côté gauche. Une fois que B est sous forme triagonale, je veux aussi obtenir A sous forme triagonale. Par conséquent, jai besoin de Givens-Rotations à partir de la droite pour ne pas détruire les zéros de la matrice B (Ou y a-t-il une autre possibilité de le faire?)

En tant quéquation:

$$ \ 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} $$

avec

$$ ce + dg = 0 $$

Comment trouver les e, f, g, h appropriés?

Quelquun peut-il me donner des conseils pour y parvenir?

Merci davance!

EDIT: Je suis presque sûr que cela fonctionne comme ceci: $$ \ begin {bmatrix} a & b \ end {bmatrix } \ cdot \ begin {bmatrix} c & -s \\ s & c \ end {bmatrix} = \ begin {bmatrix} 0 & r \ end {bmatrix} $$

avec

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

Peut quelquun approuve cela?

EDIT2: Considérons une simple matrice 3×3 que jessaie de triangulariser en utilisant ces données-rotation à partir de la droite.

Je peux mettre à zéro les éléments (3,1 ) et (2,1) en utilisant la même matrice de rotation $ G $ avec des paramètres différents $ c $ et $ s $. Je peux donc créer un zéro comme celui-ci

$ \ 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} $ MAIS aussi comme ç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} $ pour la même matrice de rotation $ G $. Cela me rend impossible de remettre à zéro les éléments de manière itérative, car la deuxième rotation détruira le zéro créé dans la première.

Ce nest pas un problème de remettre à zéro tous les éléments de la dernière ligne sauf celui dans le bord inférieur droit (car chaque zéro est créé par une autre matrice de rotation $ G $).

Mais comment puis-je parvenir à mettre à zéro les éléments mentionnés dans mon exemple, en utilisant la même matrice de rotation $ G $ qui détruit les éléments zéro déjà créés?

Sil vous plaît, toute aide est grandement appréciée!

Commentaires

  • Pour référence future , une modification comme votre  » EDIT2  » est probablement mieux posée comme deuxième question. Dans létat actuel des choses, il faut la laisser seule car la question a une réponse acceptée.
  • WOW! Merci BEAUCOUP pour votre réponse détaillée! Enfin, jai eu le conseil nécessaire pour mettre à zéro lélément (2,1) 🙂
  • Je viens de vérifier votre procédure. Ça marche vraiment! Merci beaucoup!

Réponse

Vous avez raison. Avec le choix $$ \ begin {eqnarray *} r & = & \ sqrt {a ^ 2 + b ^ 2} \\ [.6em] c & = & \ frac {b} {r} \\ [.6em] s & = & \ frac {-a} {r} \ end {eqnarray *} $$ une rotation de Givens à partir du droite donne $$ \ 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} \ ,, $$ parce que $$ ac + bs = a \ frac {b} {r} + b \ frac { -a} {r} = \ frac {ab} {r} – \ frac {ab} {r} = 0 $$ et $$ – as + bc = -a \ frac {-a} {r} + b \ frac {b} {r} = \ frac {a ^ 2 + b ^ 2} {r} = \ frac {r ^ 2} {r} = r \,. $$ Veillez simplement à ce que $ r \ neq0 $.

Concernant EDIT2:

Vous ne pouvez remettre à zéro que les deux éléments $ ( 3,1) $ et $ (2,1) $ dans votre exemple avec la même matrice de rotation de Givens si la matrice ressemble à ceci: $$ \ begin {pmatrix} * & * & * \\ a & b & * \\ a & b * \ end {pmatrix} $$ Et dans ce cas, multiplier votre matrice de rotation Givens à partir de la droite donne $$ \ 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} \ ,, $$ et vous avez ramené les deux éléments à zéro simultanément. Si les lignes 2 et 3 ne sont pas toutes les deux $ \ begin {pmatrix} a & b & * \ end {pmatrix} $, vous nécessitent des rotations différentes, cest-à-dire des valeurs différentes de $ c $, $ s $ et $ r $.

Ce que vous faites en pratique pour amener une matrice sur la forme du triangle supérieur, cest de commencer par la ligne la plus basse et ramener à zéro tous les éléments sauf le dernier: $$ \ 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} = \ begin {pmatrix} *

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

Maintenant, nous allons voir quun vecteur ligne $ \ begin {pmatrix} 0 & 0 & * \ end {pmatrix} $ est invariant sous les rotations de Givens à partir de la droite qui cible la première colonne: $$ \ 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} \ ,.$$

Cela nous permet de ramener lélément $ (2,1) $ à zéro sans changer la dernière ligne: $$ \ 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} \ ,, $$ et nous avons atteint la forme du triangle supérieur en appliquant trois (différentes) rotations de Givens à partir de la droite.

Commentaires

  • Sil vous plaît, soyez si aimable et jetez un œil à ma deuxième édition. Merci davance.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *