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

Mathématiques Discussion :

Résoudre un système d'équations linéaires homogènes surdéterminé


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Points : 17
    Points
    17
    Par défaut Résoudre un système d'équations linéaires homogènes surdéterminé
    Bonjour,

    Voilà ça fait un 2 jours que je cherche une solution à mon problème.
    Je veux résoudre mon système d'équations linéaires homogènes surdéterminé par la méthode des moindres carrées.
    sous la forme matricielle il est comme suit :
    U*P = 0 tel que
    U est de taille 6x4
    P est de taille (4x1)

    j'ai calculé la matrice A = P^t*P
    et normalement la solution est le vecteur propre correspondant à la plus petite des valeurs propres de A.
    le code (en matlab ) est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    A=U'*U;
    A = (PP'*PP);
    [e,d]=eigs(A);% calcul des vecteurs et valeurs propres de A
     
    indice = minimum(d(1,1),d(2,2),d(3,3),d(4,4));
     
    P = e(:,indice);
    Mais je ne suis pas tellement convaincu du résultat.
    Pourriez vous m'indiquer si je peux résoudre le système autrement ou alors si mon code n'est pas juste?

    Merci beaucoup pour votre aide.

  2. #2
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Je n'ai pas matlab sous la main donc je peux pas te dire exactement pourquoi ton code est faux. Par contre voici le code qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    [V,D]=eig(U'*U);
    [v,i]=min(diag(D));
    V(:,i) % Vecteur propre correspondant à la plus petite valeur propre
    Pour ton code, essaye ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    A=U'*U;
    A = (PP'*PP);
    [e,d]=eigs(A);% calcul des vecteurs et valeurs propres de A
     
    [v,indice] = minimum(d(1,1),d(2,2),d(3,3),d(4,4));
     
    P = e(:,indice);
    Ca devrait marcher.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Merci pour ta réponse.
    Mais j'ai encore une question.
    Est ce que cette façon de résoudre un tel système est la plus appropriée ou il existe d'autres méthodes plus efficace?

  4. #4
    Membre expérimenté

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2006
    Messages
    450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2006
    Messages : 450
    Points : 1 630
    Points
    1 630
    Par défaut
    Si tes données ont comme bruit un bruit blanc c'est le système le plus adapté. Maintenant si ce n'est pas le cas (par exemple des données complètement fausses de temps en temps), il faut aller voir du côté de méthodes plus robustes (si vraiment c'est nécessaire) : moindres carrés médians/tronqués, M-estimateurs, etc.

    En gros, cela dépend de tes données .

  5. #5
    Membre à l'essai
    Inscrit en
    Novembre 2008
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 28
    Points : 17
    Points
    17
    Par défaut
    Pour l'instant, mes données proviennent d'une simulation que j'ai programmée (pas de bruit pour l'instant).
    J'ai fait ma propre recherche et il paraît que c'est la méthode utilisée dans mon application.
    Merci beaucoup pour ton aide.

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    résoudre mon système d'équations linéaires homogènes surdéterminé
    Si ton système est homogène, P=0 est nécessairement la solution, quel que soit U.
    S'il n'est pas homogène, je te recommande vivement la méthode des valeurs singulières.
    Jean-Marc Blanc

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    si "surdéterminé" signifie "plus d'équations que d'inconnues", il y a l'algo du Simplex...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 24/03/2015, 09h20
  2. Résolution de systèmes d'équations linéaires
    Par Eric06 dans le forum MATLAB
    Réponses: 3
    Dernier message: 14/06/2008, 17h19
  3. Réponses: 7
    Dernier message: 19/05/2008, 13h24
  4. Résoudre un système d'équations différentielles
    Par mostafaziad dans le forum MATLAB
    Réponses: 7
    Dernier message: 06/07/2007, 09h18
  5. Réponses: 1
    Dernier message: 11/01/2007, 09h00

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