IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

[Debutant]calcul de valeurs propres, givens-householder


Sujet :

Algorithmes et structures de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 17
    Points
    17
    Par défaut [Debutant]calcul de valeurs propres, givens-householder
    je dois réaliser un code C qui calcule les valeurs propres d'une matrice donnée en utilisant la matrice de householder et la méthode de rotation de givens

    je cherche un tutorial ou une aide pour le réaliser

    [Déplacé du forum C par Gangsoleil]

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Bonjour,

    Qu'est-ce qui pose problème ? L'algorithme ? l'implémentation ? autre chose ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 16
    Points : 17
    Points
    17
    Par défaut
    c plutot l'implémentation

  4. #4
    Membre éprouvé Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Points : 1 213
    Points
    1 213
    Par défaut
    encore un étudiant qui veut se faire faire ses exo? Déjà si c'est l'implémentation, c'est pas de l'algorithmique...

  5. #5
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Points : 28 129
    Points
    28 129
    Par défaut
    Si c'est un problème d'implémentation, alors poste le code que tu as écrit et qui pose problème dans le forum C.

    Si c'est un problème au niveau de l'algo, alors il faut que tu poses ta question plus précisément ici.

    Ceci dit, une recherche sur google donne pas mal de résultats, comme ceci par exemple : http://www.library.cornell.edu/nr/bookcpdf/c11-2.pdf

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Si tu trouves le livre de Van Loan, tout est expliqué dedans !
    Premièrement, est-ce une matrice hermitienne ou pas ?
    Si c'est une matrice hermitienne, tu commence par tridiagonaliser la matrice avec la même matrice de Houseolder de part et d'autre - à la transposition près - : tu essaies d'éliminer les n-2 dernières cases de la matrice.
    A la fin, tu obtiens une première décomposition.
    Ensuite, il te faut décomposer la matrice trigonale. Pour cela, tu utiliseras les matrices de givens. Tu commences donc par trouver une sous matrice trigonale. Si elle est de taille 2, ça va, il te faut trouver une matrice de rotation pour essayer d'éliminer les termes non-diagonaux. Si elle est de taille supérieure, tu fais la même chose avec la sous-matrice de taille 2, puis tu élimines les termes que tu auras introduit.
    Pour une explication un peu plus claire, je te propose de regarder dans l'extrait de Numerical Recipes in C qui parle de cela, ça se trouve sur le net. Autre chose aussi, regarder l'implémentation de cet algo par la GSL - dossier eigen -> qstep.c -
    Le meilleur moyen pour comprendre cette étape est de jeter un oeil au livre de Van Loan, Matrix Computations, où il y a un schéma...
    Si la matrice n'est pas hermitienne, il faut la bidiagonaliser, puis avec des étapes QR, on peut la diagonaliser - mais cette méthose a un bruit de 10^-3 avec des flottants tandis que pour les herimitiennes, c'est de l'ordre de l'epsilon -

  7. #7
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Je veux pas mettre le bazzard, mais si c'est juste pour trouver les valeurs propre d'une matrice, le polynôme caractéristique c'est pas bien dans ton cas ?
    Tu dois absolument passer par tes matrices de Householder et rotation de Givens ?
    Ton algorithme doit-il être performant ou précis, ou les deux ?
    Il est ponctuel, ou non (je veux dire par la c'est pour un jeu, qui doit calculer les valeur propres à chaque frame, ou bien tu as "tout ton temps pour calculer") ?

  8. #8
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    C'est en quelle copmplexité la recherche du polynôme caractéristique ?

  9. #9
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    La recherche du polynôme caractéristique c'est "juste" le calcul d'un déterminant... En plus il faut rechercher les racines de ce polynôme !!
    Sauf si tu as des documents qui nous prouvent qu'il y a moyen de faire tout ça rapidement, je pense qu'on peut oublier.

    --
    Jedaï

  10. #10
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Le déterminant est le produit des racines, non ? donc le dernier coefficient du polynôme caractéristiques ? - punaise, ça fait 5 ans que je ne m'étais plus posé ce genre de questions, ça fait mal... -

  11. #11
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Ben ca dépend de la taille de la matrice, c'est sur que si on a une matrice 15x15 c'est pas cool le polynome...
    Mais on peut se servir de la trace de la matrice (la trace de la matrice est égale à la somme des valeurs propres comptées autant de fois que leur multiplicité..)
    Donc on a déjà 2 coefficents du polynome. (3 en comptant le terme dominant) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (-1)^n * X^n + Tr(A) * X^(n-1) +......+ Det(A)
    avec n l'ordre de la matrice, A la matrice
    Si la matrice est d'ordre 2 on a tout.
    Si elle est d'ordre 3, c'est pas fini.
    Mais il est possible d'exprimer les autres coefficients du polynome au moyen des cofacteurs de la matrice.. Il faut rechercher je ne les connais pas.
    Si ensuite tu connais tous les coefficients du polynome directement, ça se passe pas trop mal...
    En plus on est sur qu'il y a des racines si on est sur qu'il y a des valeurs propres....

    Je ne suis pas tout a fait sur des signes dans l'expression littérale du polynome dans le cadre code

  12. #12
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Et ensuite, il faut factoriser le polynome... donc le plus rentable est définitivement une série de matrices de Houseolder et une série de rotations de Givens dans le cas hermitien.

  13. #13
    Membre averti Avatar de Rafy
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    415
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 415
    Points : 417
    Points
    417
    Par défaut
    Connait pas la methode avec les matrices...
    Mais faire des calculs sur des matrices ça peut être lourd.
    Je suis d'accord que le polynôme caractéristique c'est lourd aussi....

Discussions similaires

  1. Réponses: 42
    Dernier message: 28/05/2012, 16h52
  2. Calcul de valeurs propres
    Par Julien78510 dans le forum Fortran
    Réponses: 3
    Dernier message: 19/01/2010, 14h19
  3. Calcul de valeurs propres
    Par math09 dans le forum MATLAB
    Réponses: 5
    Dernier message: 15/08/2009, 15h45
  4. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 23h20
  5. valeurs propres et householder
    Par le_voisin dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 10/09/2006, 19h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo