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

 C Discussion :

Calcul des valeurs propres par la décomposition QR de Householder


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut Calcul des valeurs propres par la décomposition QR de Householder
    bonjour;

    j'ai Cherché sur wikipedia la décomposition QR selon la méthode de Householder et je l'ai implémenté avec mon type de matrice.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    typedef float E;
     
    typedef struct matrix { 
    	E * mat; 	
    	int nb_rows,nb_columns;	
    	}StrMatrix, *Matrix;
    puis j'ai utilisé cette décomposition pour trouver les valeurs propres d’une matrice.

    mon programme compile, et s'exécute mais mon problème et que la matrice que je saisi ne s'affiche pas et pourtant ma fonction "printMatrix(M)" me semble bien écrite.
    et par la suite, toutes les fonctions qui viennent après ma fonction affiche dans mon "main.c" ne s'affichent pas aussi.

    j'ai besoin de votre aide svp, car je doit avancer et il me reste à afficher les valeur propres de ma matrice puis le grand travail est de faire un affichage des ittérations avec gnuplot.

    dans l'attente d'une réponse je vous remercie.


    je ne comprends pas d'ou vient l'erreur
    Fichiers attachés Fichiers attachés

  2. #2
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Juste une question, si tu veux stocker des float dans une matrice à deux dimensions, pourquoi ne pas utiliser un E **Ainsi tu pourrais accéder à chacun de tes éléments comme ceci maMatrice[i][j];
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        int n,i,j, p, q;
    	E v;
        Matrix M=newMatrix(n,n);
        //Matrix V=newMatrix(n,1);
        Matrix Q=newMatrix(n,n);
        Matrix R=newMatrix(n,n);
    n n'est pas initialisé il a donc une valeur indéterminée.

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut
    la structure nous a été imposée.
    je n'avais pas le choix

    ce n'est pas le "n" qui pose pb, car n représente la taille de la matrice qui sera saisi par l'utilisateur (par moi).

  4. #4
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 026
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 026
    Par défaut
    Si tu as des questions à poser, poses-les plutôt ici que par mp.

    En effet, par mp tu poses la question à une seule personne alors qu'ici tu poses la question à tous tes lecteurs.

    Pour retourner plusieurs matrices, tu as trois choix :
    - Tu retournes une structure contenant plusieurs matrices
    - Tu retournes un tableau de pointeur de matrices que tu aura alloué au préalable. La dernière valeur valant NULL pour marquer la fin du tableau.
    - Tu passes en paramètre des pointeurs de pointeurs de matrices afin de pouvoir écrire sur l'adresse de la matrice sur le pointeur de matrice.

  5. #5
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    L'indexation est fausse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        for(i=1;i<=n;i++){
            for(j=1;j<=n;j++){
                // printf("            Ligne","i : 1, : " );
                printf("inserez mat(%d,%d):",i,j);
                scanf("%f", &v);
                setElt(M, i, j, v);
     
            }
    setElt() fonctionne avec des indices basés sur 0, pas sur 1 -> on écrit en dehors de la zone allouée.

  6. #6
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 23
    Par défaut
    Merci merci diogene, Oui c'est exactement ça le pb.
    J'ai passé un temps fou à trouver la solution.
    Je ne l'aurai jamais trouvé toute seule.
    Encore merci.

Discussions similaires

  1. [Python 3.X] [Scipy] Calcul des valeurs propres - eig
    Par Invité dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 11/06/2015, 14h30
  2. Calcul des valeurs et vecteurs propres de l'ACP
    Par amine31000 dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 08/08/2012, 19h52
  3. Calcul rapide des valeurs propres d'une matrice creuse
    Par gsagnol dans le forum Mathématiques
    Réponses: 3
    Dernier message: 21/12/2007, 23h37
  4. Calcul de valeurs propres
    Par Andrey dans le forum Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 23h20
  5. [Debutant]calcul de valeurs propres, givens-householder
    Par malbarre dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 18/08/2005, 16h40

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