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 :

Systéme linéaire et une matrice singuliére


Sujet :

Mathématiques

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut Systéme linéaire et une matrice singuliére
    onjour,
    pour résoudre l'équation de la chaleur en 2D, j'ai transformé l'équation en systéme linéaire de la forme AX=b.
    j'ai assayé de résoudre le systéme par l'utilisation de:
    Bibliothèque LINALG (Fortran 90)
    interfaçage f90 de LINPACK (partiel)

    version 0.2 -- 14 Novembre 2003

    (C) Édouard CANOT -- IRISA/CNRS

    E-mail : Edouard.Canot@irisa.fr

    src : ~ecanot/tools/fortran/numerical/linalg_f90/
    ________________________________________________________________________

    Interfaçage fortran 90 pour quelques routines (basic) de 'linalg' :

    - 'sgefa' : factorise (LU) une matrice carrée A

    - 'sgeco' : idem 'sgefa', mais fournit en plus une estimation de rcond
    (rcond = reciprocal condition number = 1/CN)

    - 'sgesl' : résoud un système linéaire du type : A.x = b, la matrice A
    ayant été factorisée (LU) au préalable

    je fais le calcul de tous les coeficients de la matrice et le vectuer second membre .Ensuite je fais l'appel à la subroutine sgefa et sgesl pour résoudre mon systéme
    Code fortran : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    call f90_geco (A, ipvt, rcond )
    write(*,*) 'rcond=',rcond
    call f90_gesl ( A, ipvt, vect )
    mais j'ai tombé sur une matrice singuliére dont j'arrive pas à comprendre comment je trouve la solution.
    j'ai bien vérifié que ma matrice est quelconque n'est pas définie positive ,creuse et à diagonale strictement dominante
    svp aider moi à résoudre ce probléme par vos propositions et vous expériences.
    merci

  2. #2
    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
    Si ta matrice est singulière, tu peux toujours chercher une solution au sens des moindres carrés, c'est à dire trouver x qui miminise || Ax - b ||^2.

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    j'ai pas bien compris votre réponse, prière de plus l'expliquer

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Bonjour,

    il y a deux réponses possibles selon ton problème :

    1. si ton problème initial (équation de la chaleur 2D) est mal posé, alors il faut le régulariser au préalable (ajouter autant d'équations que nécessaire);

    2. s'il est bien posé, tu dois aboutir à un système linéaire inversible et donc tu as fait une erreur quelque part (discrétisation, construction du système).

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    j'ai bien vérifié que la matrice est à diagonal dominant cad inversible et malgré quand je lance le calcul ,j'ai eu le terme qui calcule le conditionnement de la matrice est de l'ordre de 10e-6.
    je comprend rien

  6. #6
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Ta matrice est inversible et son conditionnement vaut 10^6.
    Il n'y a rien de choquant.
    Quel est le problème?

  7. #7
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    le conditionnement vaut 10^(-6) et pas 10^6.
    un conditionnement inférieur à 0 cad une matrice mal conditionnée.
    aussi les résultats sont insignificatives

  8. #8
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    La norme ||I|| de la matrice identité I vaut 1 quelque soit la taille de I et quelque soit la norme matricielle ||.|| choisie tant qu'elle est subordonnée à une norme vectorielle. Notons N la taille et considérons une matrice inversible A de taille N. Alors on a
    1=||I||=||A*A^{-1}||<=||A||*||A^{-1}||.
    Par conséquent, le conditionnement d'une matrice inversible est toujours supérieur à 1. Ce que tu calcules c'est le conditionnement réciproque (rcond), c'est-à-dire l'inverse du conditionnement. Quant à la significativité des résultats, elle n'est pas seulement déterminée par le conditionnement de la matrice mais également par l'algorithme et la précision machine. Je serais très surpris que l'erreur sur ta solution soit moins bonne que 1e-9 avec une factorisation LU.

  9. #9
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    le rcond dont je calcul n'est le réciproque . dans ci dessous la définition de rcond selon le programme
    rcond double precision
    an estimate of the reciprocal condition of a .
    for the system a*x = b , relative perturbations
    in a and b of size epsilon may cause
    relative perturbations in x of size epsilon/rcond .
    if rcond is so small that the logical expression
    1.0 + rcond .eq. 1.0
    is true, then a may be singular to working
    precision. in particular, rcond is zero if
    exact singularity is detected or the estimate
    underflows.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    488
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 488
    Points : 593
    Points
    593
    Par défaut
    Bonjour,

    Tu devrais détailler comment tu as posé ton système (en particulier quelles sont les conditions aux limites et comment tu les gères).
    D'expérience les problèmes de résolution tels que le tien (système "non-inversible") viennent de là.

  11. #11
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    le problème est décrite dans la pièce jointe
    Images attachées Images attachées  

  12. #12
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    le calcul se fait de la manière suivante:
    on fait la discrétisation en utilisant la méthode des volumes finies c'est-a-dire
    on divise le domaine en 9 éléments comme indique dans le schéma jointe.
    on fait la discrétisation pour chaque élément en utilisant la méthode des volumes finies et en tenant compte des conditions aux limites correspondantes à chaque élément
    la méthode des volumes finies a pour principe la somme des flux sur les faces d'un volumes de contrôle est nulle.
    par exemple pour l’élément de volume 1,on écrit l'équation comme suit:
    sur la face west (a gauche ) h(T-T_infini) et sur la face sud (en bas) q=q_in
    la face nord et la face East (haut et à droite) on considéré l'expression générale de flux.
    on fait ensuite la somme et on aboutit à une équation discrétésée. les conditions aux limites vont apparaître dans le second membre de l'équation déscrétisée.
    à la fin on obtient 9 équations désrétisées de la forme suivante chacune:
    a_p Tp+a_e T_e+a_w T_w+a_s T_s+a_n T_n= V
    les a_(p,e,w,s,n) correspond bien aux éléments de la matrice.
    le v correspond au vecteur second membre.
    Images attachées Images attachées  

  13. #13
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par manaiilhem Voir le message
    le rcond dont je calcul n'est le réciproque . dans ci dessous la définition de rcond selon le programme
    rcond double precision
    an estimate of the reciprocal condition of a .
    for the system a*x = b , relative perturbations
    in a and b of size epsilon may cause
    relative perturbations in x of size epsilon/rcond .
    if rcond is so small that the logical expression
    1.0 + rcond .eq. 1.0
    is true, then a may be singular to working
    precision. in particular, rcond is zero if
    exact singularity is detected or the estimate
    underflows.
    Ta matrice est bien inversible et rcond correspond bien au conditionnement réciproque, c'est-à-dire à l'inverse du conditionnement de ta matrice. Il est tout à fait normal d'obtenir des matrices ayant un conditionnement de l'ordre de 10^6 et même plus. Tu es encore très loin de vérifier
    Bref, ta matrice n'est pas singulière et ta solution est à mon avis calculée à une précision acceptable. Tu peux obtenir une majoration pessimiste de l'erreur relative commise sur la solution avec la quantité
    cond(A)*||b-Ay||/||b||,
    soit encore
    ||b-Ay||/(rcond(A)*||b||),
    où y désigne la solution calculée.
    Combien vaut ce produit?

  14. #14
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    j'ai pas calculé ce produit. je te tiens au courant suite de calcul.
    Notons que j'ai obtenu des résultats qui ne sont pas des bons résultats

  15. #15
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    aussi
    ils ont noté la phrase suivante qui est bien mon cas:
    in particular, rcond is zero if
    exact singularity is detected or the estimate
    underflows.

  16. #16
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Citation Envoyé par manaiilhem Voir le message
    aussi
    ils ont noté la phrase suivante qui est bien mon cas:
    in particular, rcond is zero if
    exact singularity is detected or the estimate
    underflows.
    Depuis quand 1e-6 vaut 0?

  17. #17
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    excusez-moi j'ai pas dit que 1e-6 vaut à mais ce que je savais une valeur qui n'est pas assez proche de 1 cad que la matrice a un problème.

  18. #18
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Pourquoi? Tu peux le justifier?

  19. #19
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2011
    Messages : 56
    Points : 22
    Points
    22
    Par défaut
    j'ai pas l'explication mais j'ai eu cette information de mon encadrant qui est un maître de conférence et un numéricien.

  20. #20
    Membre expérimenté
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Points : 1 685
    Points
    1 685
    Par défaut
    Dans ce cas, pose-lui la question.
    Je t'invite à lire cet article et à te pencher plus particulièrement sur le théorème 2.2 :
    http://eprints.ma.man.ac.uk/651/01/c...ep2006_404.pdf

Discussions similaires

  1. Réponses: 11
    Dernier message: 18/01/2013, 16h13
  2. Réponses: 23
    Dernier message: 04/11/2010, 16h36
  3. Réponses: 3
    Dernier message: 14/06/2009, 23h17
  4. Résolution de systèmes linéaires : une erreur
    Par delphidebutant dans le forum Mathématiques
    Réponses: 7
    Dernier message: 21/02/2009, 15h00
  5. Déclarer une matrice
    Par joy dans le forum C
    Réponses: 7
    Dernier message: 09/12/2002, 00h42

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