Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calcul de valeur propres d'une matrice

Sujet résolu
    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.
    • Partager sur Facebook
    • Partager sur Twitter
      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
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        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!)
        • Partager sur Facebook
        • Partager sur Twitter
          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) ?
          • Partager sur Facebook
          • Partager sur Twitter
            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).
            • Partager sur Facebook
            • Partager sur Twitter
              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.
              • Partager sur Facebook
              • Partager sur Twitter
              Anonyme
                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)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  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...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    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.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      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 !
                      • Partager sur Facebook
                      • Partager sur Twitter
                      Anonyme
                        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.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Anonyme
                          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.
                          • Partager sur Facebook
                          • Partager sur Twitter

                          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é.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown