Mathematica diagonalisation de la matrice
Je suis en train d'étudier une matrice A telle que A=PDP^-1.
La façon dont je résoudre ce à l'aide de Mathematica est:
a={{0, -1}, { -1, 0}}
d = DiagonalMatrix[Eigenvalues[a]]
{{ -1,0}, {0,1}}
p = Transpose[Eigenvectors[a]]
p.d.Inverse[p]
{{0, -1}, { -1, 0}}
Ce qui est correct.
Problème, c'est le P de la matrice n'est pas ce que j'attendais. La matrice que Mathematica produit est
p={{1, -1}, {1, 1}}
Mais je suis à la recherche d'
p2={{1/Sqrt[2], 1/Sqrt[2]}, {1/Sqrt[2], -(1/Sqrt[2])}}
p2.d.Inverse[p2]
{{0,-1}, { -1,0}}
Qui a également résout l'équation. Est-il un moyen pour moi de force Mathematica pour me montrer les différentes réponses données lors de l'exécution de Transposer[Vecteurs propres[a]]?
OriginalL'auteur CHM | 2012-01-14
Vous devez vous connecter pour publier un commentaire.
Ce que vous devez faire est de normaliser la réponse que vous obtenez. Il y a une fonction appelée Normaliser, qui peut être utilisée comme ceci:
OriginalL'auteur C. E.
Vous pourrait normaliser votre vecteurs propres:
donc
p
est ce que vous voulez:OriginalL'auteur acl
Vecteurs propres peuvent être librement normalisée par une constante, ce qui signifie qu'il y a un nombre infini de possibles vecteurs propres. Naturellement, Mathematica ne peut pas et ne sera pas vous montrer toutes. De sorte que vous aurez besoin de normaliser les vecteurs propres d'une certaine façon.
Une option est de convertir votre matrice sous forme numérique à l'aide de
N
. Mathematica renvoie vecteurs propres normalisés pour les matrices.C'est risqué, cependant, parce que le calcul de l'inverse d'un numérique de la matrice peut omettent souvent de façon spectaculaire en raison de diverses erreurs numériques.
L'autre, la meilleure option est d'manuellement normaliser les vecteurs propres en utilisant
Normalize
. Vous aurez à appliquer à chaque vecteur propre dans la liste retournée par laEigenvectors
fonction:OriginalL'auteur David Z
Peut-être vous devriez envisager un construit dans la factorisation de matrice de l'outil? Bien sûr, il y a beaucoup de matrice factorisations, beaucoup de qui sont intégrés dans Mathematica. Celui qui correspond probablement le plus étroitement à votre situation est
JordanDecomposition
. Ici, il est en actionBien sûr, de nombreuses matrices ne sont pas diagonalizable mais, si elle l'est, la Jordanie, la décomposition va vous donner ce que vous voulez. Les vecteurs sont normalisés dans la même manière que le
Eigen
fonctions de les normaliser, mais je ne vois pas pourquoi c'est un problème.OriginalL'auteur Mark McClure