Diagonalisation de matrice symétrique

Bonjour
Je cherche à obtenir les valeurs propres d'une matrice réelle $A, 3\times 3$ quelconque mais symétrique ; je pré-suppose qu'elle est implicitement diagonalisable.

La dernière fois que j'ai fait ça à la main c'était il y a plus de 20 ans :-D ; je suis dans le calcul du déterminant ( $\det(A - \lambda I$), puis celui des racines du polynôme de degré 3, mais je n'arrête pas de me dire qu'il doit y avoir plus simple ... ou pas.

En parallèle je regarde du côté des méthodes numériques trouvées sur la toile ; je suis également tombé sur le théorème spectral, mais cela ne réveille rien en moi.

Avez-vous des pistes à partager ? Assurément un grand classique de l'algèbre linéaire, mais je ne tombe que sur des exemples "numéraires", et non sur une matrice approche générale

Merci par avance

Paul

Réponses

  • Bonjour,

    Si ton calcul est numérique, on n’a rien inventé de mieux que de calculer le polynôme caractéristique. Si ton calcul est littéral, tu es mal. Le cas général est particulièrement pénible, mais faisable (en cinq jours de travail). Bref calcule. Tu as aussi le droit d’utiliser des simplifications si tu en vois dans le calcul du déterminant.
  • de prime abord il est littéral, donc normal que je le trouve pénible.

    Merci
  • Si je ne dis pas de bêtise, l'une des démonstrations utilise le fait que $X \mapsto {\,}^t\!XAX$ atteint son $\max$ sur la sphère unité. Puis que ce $\max$ est une valeur propre de $A$.
    Mais est-ce simple ensuite de calculer ce $\max$ en fonction des coefficients de $A$ ? Je n'en sais rien...
  • Bonjour,

    Le calcul de mon déterminant (calcul aux valeurs propres) revient à résoudre un polynôme de degré 3 ; pas du tout familier de la chose, je regarde actuellement du côté des méthodes de Tschirnhauss, Lagrange, etc.

    Pour autant je me pose la question suivante : à partir de la matrice $A$, il doit être possible de dire si mes racines sont toutes réelles non ? genre $\det(A) > 0$ ? ou est-ce une propriété de la symétrie de $A$ ?

    Merci.
    Paul
  • Oui : du fait que $A$ est symétrique, elle a trois valeurs propres réelles (distinctes ou pas).

    Je ne crois pas que ce soit une bonne idée de prendre la matrice symétrique la plus générale et de la diagonaliser à la main mais chacun s'amuse comme il veut.
  • Tu peux toujours te ramener à une matrice de trace nulle en retirant un multiple convenable de la matrice identité (ce qui ne change pas le caractère symétrique de la matrice). Le polynôme caractéristique est alors de la forme $X^3+pX+q$. Un tel polynôme a trois racines réelles si et seulement si son discriminant $-4p^3-27q^2$ est positif ou nul.

    C'est toujours le cas pour une matrice symétrique réelle : on sait depuis 175 ans, grâce à Kummer, que le discriminant pour une telle matrice est une somme de carrés de polynômes en les coefficients de la matrice. On connaît une représentation explicite, que je peux donner. Mais ce n'est pas très instructif.
  • Math Coss écrivait : http://www.les-mathematiques.net/phorum/read.php?3,1710112,1711034#msg-1711034
    [Inutile de recopier l'avant dernier message. Un lien suffit. AD]

    Bonne idée ou pas, c'est aujourd'hui mon besoin ; fort heureusement le fait que les solutions soient obligatoirement réelles me simplifie un peu la tâche ; les formules des racines pour la forme généralisées sont accessibles sur la toile.

    Merci à vous.
    Paul
  • C'est indiscret de demander pour quoi en faire ? Par exemple, si c'est pour programmer, inutile d'écrire des formules indigestes, il vaut sans doute mieux procéder par étapes : une fonction qui calcule le polynôme caractéristique, une qui le résout.
  • Si le but est d'avoir une formule générale, du style $M=P^{-1}DM$, avec $P\in O_3(\mathbb{R})$ et $D$ diagonale, où tous les coefficients de $P$ et $D$ sont explicites et écrits en fonction des coefficients de $M$, c'est une entreprise que je trouve assez vaine.

    Déjà, il y a aura probablement des formules qui ne seront valables que sous certaine conditions, du style "si un machin est non nul, alors c'est telle formule qui s'applique", ou "si truc est nul, alors c'est telle autre".

    Mais le plus emmerdant sera évidemment la factorisation exacte d'un polynôme de degré $3$. Les formules de Cardan sont bien jolies, mais elles donnent souvent des sommes de racines cubiques complexes alors que les racines sont réelles....En tout cas, si on veut des choses en fonction des coefficients du polynôme caractéristique, et donc de la matrice $M$, et de radicaux. Sinon, on peut y arriver avec des fonctions trigo, mais on va se taper des cosinus d'arcosinus...

    Sans parler de la mocheté des formules....

    Mel.
  • Je suis un mécanicien (à chacun ses défauts :-D), et mon objectifs est de calculer à partir du tenseur de contraintes (matrice 3x3 symétrique) le tenseur des contraintes principales ; un exemple parmi d'autres, dans le domaine de la fatigue ou de la fissuration par exemple, cela permet de dire si la "zone" est en traction ou en compression - je simplifie).

    Je suis dans un contexte particulier, et pour ce cas très spécifique, le solveur ne le calcule pas (d'où ce travail pénible mais des plus enrichissants).

    Merci à tous

    Paul
  • Peux-tu en dire plus sur le "contexte particulier" (à moins que ça ne soit top secret) ?

    PS. Suivant le genre de questions que tu te poses réellement, il peut y avoir des réponses efficaces qui ne passent pas forcément par le calcul explicite des valeurs propres. Par exemple, les signes des valeurs propres, on y a accès sans les calculer.
  • je ne voulais pas alourdir les explications ; pour résumer le contexte "spécifique", je réalise des calculs par "éléments finis" ; le contexte est le suivant:
    • j'utilise 2 solveurs pour mes calculs
    • chacun desdits solveurs calcule bien entendu les composantes des tenseurs et la diagonalisation qui va avec
    • en revanche il n'a pas été prévu qu'ils cumulent leurs valeurs respectives $\sigma_{ij} + \sigma_{ij}^{'}$
    • j'additionne terme à terme les différentes composantes pour ensuite calculer chacune des grandeurs (déplacements ou les contraintes équivalentes (scalaire) ou les contraintes/déformations principales (tenseur))
    • on parle d'un nombre d'éléments $\in$ $\mathbb{N}$ (plusieurs $10^5$ est commun - après c'est une question de ressource informatique)
    • mon calcul utilise la vectorisation (au sens numérique), il me suffit donc d'exprimer mes racines en littéral pour que l'ensemble des éléments soit pris en compte

    Cela fonctionne très bien sur des matrices 2x2, maintenant j'augmente la difficulté

    Paul
  • Bonjour,

    un juste retour des choses ; grâce au site de Serge Mehl ici, j'arrive à mes fins

    Au passage, j'ai découvert que taper $(-27)^{\frac{1}{3}}$ sous Scilab donnait un résultat singulier :-D

    J'imagine que le cas où il n'existe qu'une seule solution réelle, c'est-à-dire $\Delta > 0$ est à exclure, ce qui impliquerait que la matrice n'est pas (de fait) diagonalisable.

    Paul
Connectez-vous ou Inscrivez-vous pour répondre.