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 :

Solution d'un système linéaire de faible rang (régularisé)


Sujet :

Mathématiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut Solution d'un système linéaire de faible rang (régularisé)
    Bonjour,

    Je cherche à résoudre efficacement le problème suivant:

    (a * I_n + QQ^T) x = y

    Où a est un scalaire positif, I_n est la matrice identité de taille n x n, et Q une matrice n x m telle que m << n. x et y sont des vecteurs de taille n.

    L'inverse de la matrice est a priori calculable par:

    (a * I_n + QQ^T)^(-1) = 1/a * ( I_n + Q (a * I_m + Q^TQ)^(-1)Q^T))

    Ce qui permet de beaucoup réduire les temps de calcul puisque la matrice à inverser est de taille m x m au lieu de n x n. Cependant, j'imagine que, comme pour la solution de Ax = y, le calcul de l'inverse n'est pas la méthode la plus adaptée pour des problèmes de précision numérique et de temps de calcul.

    Quelle est donc la meilleure façon de résoudre ce type de système ?

    D'avance merci,

    Alexis

  2. #2
    Membre éclairé

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Points : 827
    Points
    827
    Par défaut
    Salut,
    Citation Envoyé par Alexis.M Voir le message
    le calcul de l'inverse n'est pas la méthode la plus adaptée pour des problèmes de précision numérique et de temps de calcul.
    Habituellement, une décomposition LU ou une décomposition de Cholesky est utilisée pour résoudre les systêmes linéaires.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur R&D en apprentissage statistique
    Inscrit en
    Juin 2009
    Messages
    447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur R&D en apprentissage statistique

    Informations forums :
    Inscription : Juin 2009
    Messages : 447
    Points : 752
    Points
    752
    Par défaut
    Citation Envoyé par bertry Voir le message
    Habituellement, une décomposition LU ou une décomposition de Cholesky est utilisée pour résoudre les systêmes linéaires.
    Oui mais mon cas a une structure très particulière. Il n'y a pas d'intérêt à calculer naïvement la décomposition de Cholesky de (a*I_n + QQ^T), à moins de disposer d'une méthode spécialisée pour la structure du problème, faute de quoi on se retrouve avec la complexité O(n^3) habituelle. Alors que la formule de l'inverse montre qu'il doit être possible de calculer le tout en O(m^3 + n^2m). Avec m << n, le gain en temps de calcul est considérable.

  4. #4
    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 je comprend bien, tu as un système sur-dimensionné, c'est ça ?

    N équations à m inconnues ?
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  5. #5
    Membre averti

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Points : 422
    Points
    422
    Par défaut
    A x = b

    où A a plus de colonnes que de lignes (donc x plus grand que b)

    supposons que A est de rang plein (pas de lignes dépendantes)
    x = x1 + x2
    où x1 = A^T y est une combinaison linéaire des lignes de A,
    et A x2 = 0 (donc x2 appartient à ker(A))

    tu résous pour y (A A^T est inversible) :
    A A^T y = b

    puis si tu veux tu cherches une base de ker(A) pour trouver l'ensemble des x2 possibles

    si A n'est pas de rang plein c'est pareil mais A A^T n'est pas inversible donc il peut ne pas y avoir de solution pour y

    pour trouver ker(A) je pense à Gram-Schmidt

    concernant la régularisation, c'est A A^T y = b qu'il faut régulariser

  6. #6
    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
    ben moi je pensais au Simplex, si effectivement il ya plus d"équations que d'inconnues
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

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

Discussions similaires

  1. [Débutant] Solution pour un système non linéaire à 3 inconnues
    Par geant02 dans le forum MATLAB
    Réponses: 5
    Dernier message: 10/03/2008, 16h36
  2. Résolution système linéaire mais avec paramètre
    Par feynman dans le forum Scilab
    Réponses: 7
    Dernier message: 03/10/2007, 06h55
  3. Réponses: 4
    Dernier message: 10/03/2007, 17h45
  4. Vérification de système linéaire, avec tableaux
    Par lenny_ dans le forum Algorithmes et structures de données
    Réponses: 12
    Dernier message: 13/06/2006, 17h51

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