Tous | Basic Casio | C/C++/ASM | LuaFX | Graphisme | Transferts | Logiciels | Diverses astuces

Calculatrice
Toutes
Graphs 35 à 100
Graph 25
Graphs 75/85/95 (SD)
Graph 100(+)
Classpad 300/330 (+)
Fx-CG 10/20
Fx-CP 400

Retour à la liste des tutoriels
Tutoriel Casio : Diagonalisation des matrices
Tutoriel rédigé le : 2014-04-30 20:47  par Alex_1186  Catégorie : Basic Casio  Calculatrice : Toutes

Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (14 commentaires)

Diagonalisation des matrices
A la veille de mes concours de fin de prépa, je me suis rappelé que personne à ma connaissance n'avait réussi à diagonaliser des matrices avec la calculette, alors, après avoir abandonné puis recommencé puis à nouveau abandonné j'ai relevé le défi!

Donc voilà, les programmes sont en fichier joint!
- DIAGO Diagonalise la matrice si cela est possible
- EGALMAT Renvoie le booléen, "Mat A=Mat B" (peut être utile!)
- COMTRIX Renvoie la comatrice et l'inverse de la matrice

ATTENTION: Programmes à utiliser avec PRÉCAUTIONS, je ne garantis pas la justesse des résultats dans tous les cas!

Programmes auxiliaires:
- NB ZERO Compte le nombre de lignes nulles dans la matrice échelonnée, ce qui correspond à Dim Ker M
- D2 programme auxiliaire pour éviter les bugs de SolveN



Maintenant quelques explications!

Vous savez tous qu'une matrice de Mn,p (lR) représente une application linéaire de lR^p dans lR^n.
Ici on s'intéresse au cas n*n, c'est-à-dire les matrices de Mn(lR) représentant les endomorphismes de lR^n.

On définit le spectre d'une matrice M par:
Sp(M)={ λ∈lR,∃X∈Mn,1(lR), MX = λX }

Les λ sont les valeurs propres associées aux vecteurs propres X (on identifie matrice colonne et vecteur).

Pour déterminer le spectre, j'utilise la fonction SolveN, appliquée à Det:
SolveN ( Det (Mat M - X Mat I, X))


En réduction, on définit le polynôme caractéristique de M par:
XM=det⁡( M - λ*I )

où I est la matrice identité d'ordre n.
XM est un polynôme en λ, et le spectre est inclus dans l'ensemble des racines de XM!

On dit qu'une matrice est diagonalisable si et seulement si elle est semblable à une matrice diagonale.
C'est-à-dire qu'il existe une base de lR^n constituée de vecteurs propres de M.
La caractérisation dont je me sers:
M est diagonalisable si et seulement si:
n = ∑(λ∈Sp(M)) Dim⁡ Eλ

où les Eλ sont les sous-espaces propres associés aux valeurs propres λ.


De plus, j'utilise la fonction Ref (inconnue au bataillon depuis des lustres).
En fait, elle donne la matrice échelonnée, la "Row Echelon Form" (et Rref la "Row Reduced Echelon Form"), cf Wikipédia pour plus d'informations.
Bref, le résultat dont je me sers est le suivant:
le rang de la matrice M est égal au nombre de lignes non nulles de la matrice échelonnée.
Or, par théorème du rang, Dim Ker Eλ = n - rg (M-λI).
Donc: pour obtenir la dimension de chaque sous-espace propre, je compte simplement le nombre de lignes nulles dans la matrice échelonnée de M.

Si la somme des dimensions est égale à n, c'est diagonalisable, je renvoie la matrice diagonale avec les ω(λ) valeurs propres placées sur la diagonales.
( ω(λ) est l'ordre de multiplicité de λ en tant que racine de XM, qui est égal à la dimension de Eλ dans le cas diagonalisable )

Voilà!
Si quelqu'un trouve une erreur quelconque, un contre-exemple ou carrément une erreur théorique grave dans mes programmes, qu'il m'en fasse part.
Sur ce, bonne diagonalisation à tous!

En bonus: le programme qui donne la comatrice et inverse la matrice si possible!

Fichier joint


Discutez de ce tutoriel sur le forum >> Voir le sujet dédié (14 commentaires)

Publicité et partenaires
Casio Education
Casio éducation

TI-Planet
Casiopeia
Casiopeia
CasioFan, la communauté ClassPad
CasioFan
CodeWalrus
CodeWalrus

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2015 | Il y a 34 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Rugby Manager | Jeu de basket | Jeu de handball | Jeu de tennis | Nova Raider | Réparation téléphone | Soccer Rush | Tasty Tale

Planète Casio est un site communautaire indépendant, géré bénévolement et n'est donc pas affilié à Casio | Toute reproduction de Planète Casio, même partielle, est interdite
Les fichiers, programmes et autres publications présents sur Planète Casio restent la propriété de leurs auteurs respectifs et peuvent être soumis à des licences ou des copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd