2010-07-20 8 views
2

J'essaie de trouver un programme en code C qui me permettra de calculer une décomposition de valeur propre (spectrale) pour une matrice carrée. J'essaie spécifiquement de trouver le code où la plus grande valeur propre (et donc sa valeur propre associée) sont situées dans la première colonne.Décomposition du vecteur propre (spectral)

La raison pour laquelle j'ai besoin que la sortie soit dans cet ordre est parce que j'essaie de calculer la centralité du vecteur propre et donc j'ai seulement besoin de calculer le vecteur propre associé à la valeur propre la plus élevée. Merci d'avance!

+0

Quelle matrice de taille? –

+0

Pour une très grande matrice éparse. C'est pour l'analyse de réseau. – Spencer

+0

Décrivez la matrice, s'il vous plaît. symétrique, réel? hermitien? pas du tout – FFox

Répondre

5

En tout cas, je recommande d'utiliser un ensemble d'algèbre linéaire dédié comme Lapack (Fortran, mais peut être appelé à partir de C) ou CLapack. Les deux sont gratuits et offrent des routines pour presque n'importe quel problème de valeur propre. Si la matrice est grande, il peut être préférable d'exploiter sa faible densité, par ex. en utilisant Arpack. Toutes ces bibliothèques ont tendance à trier les vecteurs propres en fonction des valeurs propres si elles le peuvent (valeurs propres réelles ou purement imaginaires).