Partage

Calcul de valeur propres d'une matrice

Sujet résolu
Le 13 mars 2011 à 1:24:03

Bonsoir,

Je voulais savoir comment je pouvais déterminer les valeurs propres d'une matrice carré de dimension indéfini... Parce dimension 2 c'est facile... 3 je sais qu'il y a une méthode pour résoudre uen équation du 3e degré... 4 pareil il me semble... mais au dela ça devient plus compliquer... Alors je voulais savoir comment faire? (Par exemple wolframalpha arrive à déterminer les valeur propre pour une matrice 6x6).

Merci.
Publicité
Le 13 mars 2011 à 1:24:03
Le 13 mars 2011 à 1:58:06

Ou tu résous l'équation analytiquement mais ça risque de ne pas marcher si le degré est >=5 sur C ; ou tu calcules les valeurs numériquement (itération de Newton par exemple).
Autres solutions (plus compliquées !) :
http://en.wikipedia.org/wiki/Arnoldi_iteration
http://en.wikipedia.org/wiki/Lanczos_iteration
anonyme
Photo
Le 13 mars 2011 à 14:37:36


Bonjour,

Dés que les tailles de matrices dépassent 3 ou 4 , la recherche des valeurs propres sauf matrices de formes particulières passe par l'analyse numérique.

Une résolution numérique par une recheche directe des racines du polynôme caratéristique devient vite inutilisable, ne serait ce que parce que expliciter ce polynôme en dimension élevée s'avère vite inextricable. . De plus le calcul exhaustif des racines d'un polynôme de degré élevé ne s'avère pas être une méthodologie trés efficace ni numériquement trés fiable.

On est donc vite conduit à utiliser l'arsenal des méthodes matricielles, directes ou itératives.
Les logiciels scientifiques font ce genre de calcul trés efficacement Matlab sans doute , à titre personnel j'utilise Scilab aussi puissant dans ce domaine et qui a l'avantage d'être ...gratuit.
Dans les cas simples , c'est instantané.

Ceci étant , si on veut à peu prés comprendre ce que l'on fait et choisir les bonnes options numériques de ces logiciels, mieux vaut avoir un minimum de bases théoriques.

( NB: pour une première étape, vous avez un tuto sur la recherche des valeurs prorpres sur ce site!)
Le 13 mars 2011 à 18:13:28

Citation : nabucos


Une résolution numérique par une recheche directe des racines du polynôme caratéristique devient vite inutilisable, ne serait ce que parce que expliciter ce polynôme en dimension élevée s'avère vite inextricable. . De plus le calcul exhaustif des racines d'un polynôme de degré élevé ne s'avère pas être une méthodologie trés efficace ni numériquement trés fiable.


Qu'entends-tu par inextricable ? à la main c'est bien sûr très pénible, mais à l'ordinateur on fait ça très bien en temps polynomial. Et d'ailleurs comment crois-tu que fait Scilab (qui soit dit en passant à l'avantage d'être libre) ?
Le 13 mars 2011 à 19:46:27

Un algo polynomial pour trouver les racines d'un polynôme sur C quelconque ?
Sur Z/nZ, je veux bien mais sur C j'ai comme un petit doute.
Autre méthode : calculer x^n % P et faire le rapport des coefficients.
Par exemple, x^100 % x²-x-1 = 3.5422e20 x + 2.1892e20.
Le rapport est 1.6180 :)
Ça marche souvent (mais pas toujours). Et Aitken a permis de trouver les autres racines.
Par exemple pour x²-2, il y a un petit problème. On translate en x²-4x+2.
x^10 % x²-4x+2 = kx-44576
x^11 % x²-4x+2 = kx-152192
D'où ~ 63040/44576 (=1.41421392677674... : erreur relative de 2.6e-7).
Pour trouver l'autre racine :
12 -> -519616
13 -> -1774080
déterminant([f(12) f(13) ; f(11) f(12)])/déterminant([f(11) f(12) ; f(10) f(11)])=
4096/2048=2~=produit des racines
Donc l'autre racine est ~ 2/(152192/44576)=89152/152192.
On translate : -215232/152192 ~= -1.41421362489487 (erreur relative de 4.4e-8).
Le 13 mars 2011 à 19:49:34

Citation : Pole

Un algo polynomial pour trouver les racines d'un polynôme sur C quelconque ?
Sur Z/nZ, je veux bien mais sur C j'ai comme un petit doute.
Autre méthode : calculer x^n % P et faire le rapport des coefficients.
Par exemple, x^100 % x²-x-1 = 3.5422e20 x + 2.1892e20.
Le rapport est 1.6180 :)
Ça marche souvent (mais pas toujours). Et Aitken a permis de trouver les autres racines.


Pas pour trouver les racines du polynôme mais pour calculer le pôlynome caractéristique, on utilise ensuite une méthode numérique pour calculer les racines.
anonyme
Photo
Le 13 mars 2011 à 23:30:54

Bonjour,
à Thomash
ma rédaction hâtive a pu préter à confusion
mais
-le côté inextricable se rapporte à un calcul que l'on veut faire soi-même ( ce que sous-entend la question posée ) et la difficulté à calculer soi-même les racines d'un polynômes de degré élevé par la bonne vielle méthode de Newton comme suggéré par un précédent post.
- d'où ma suggestion d'efficacité via des logiciels même pour des degrés modestes .
Je vous accorde que dans Scilab , une fonction de base en la matière tel que spec(), utilise des recherches de racines via des algorithmes performants (DGEEV ZGEEV) à la base de la résolution polynomiale dans roots()
Mais l'utilisateur dans ses utilisations courantes n'a guère à se préoccuper du polynôme caractéristique.
NB: vous ajoutez que Scilab est libre...je pense qu'en disant qu'il est gratuit, je disais à peu prés la même chose? c'est pourquoi je l'ai sur mon ordi ( à titre personnel , le reproche que je peux faire à Scilab est que l'aide Scilab n'est pas toujours trés explicite et les tutoriels sur les sujets non basiques sont souvent inexistants)
anonyme
Photo
Le 15 mars 2011 à 17:23:11

Si tu n'as besoin que du résultat pour utiliser ces valeurs propres, Maple le fait très bien avec Eingenvalues, ainsi que Eingenvectors qui complète le résultat par les vecteurs propres.

Evidemment, Maple n'est pas gratuit...
Le 15 mars 2011 à 17:41:35

Non il fallait que je créer un programme capable de les calculer, j'ai réussi en utilisant une méthode itérative.
Le 16 mars 2011 à 18:54:04

Citation : nabucos

NB: vous ajoutez que Scilab est libre...je pense qu'en disant qu'il est gratuit, je disais à peu prés la même chose?


Diantre, non !
anonyme
Photo
Le 16 mars 2011 à 21:43:32

Bonsoir,
"a peu prés la même chose " , disais je dans le cadre des préoccupations du post et vu des utilisateurs "ordinaires" dans lesquels je m'inclus, où l'aspect gratuit l'emporte sans doute sur l'aspect libre.
...Maintenant, si vous faites partie de ceux qui veulent accéder aux codes sources de Scilab , pour les modifier ou améliorer, voire commercialiser vos modifications , ce n'est certes pas la même chose, OK!
Et je concéde le manque de précisiond de ma terminologie.
anonyme
Photo
Le 16 mars 2011 à 21:56:07

Ce n'est à mon avis pas tellement l'envie d'accéder aux sources qui motivent les adeptes du libres, mais plus la possibilité d'y accéder et toute l'éthique et philosophie qui repose sur le libre.

Calcul de valeur propres d'une matrice

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown