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

Fortran Discussion :

résolution d'un système linéaire


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    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
    Par défaut résolution d'un système linéaire
    Bonjour,
    Je me permets de poser ma question sur ce forum à propos la résolution d'un système linéaire AX=b
    En effet j'ai en train de résoudre l'équation de la chaleur .
    j'ai calculé les coefficients de la matrice, le vecteur second membre et je voudrais chercher le vecteur x qui correspond bien à les valeurs de la température dans mon problème.
    J'ai essayé d'utiliser les sources prête sur le net
    méthode directe: linalgf.90
    méthode itérative: utiliser la subroutine SYMMLQ
    comme sont des sources se trouve dans les bibliothèques linpack ou lapack
    j'arrive plus à comprendre comment se fait la résolution en utilisant ces programmes que se trouve sur le net.
    notons que j'utilise la langage fortran pour la programmation
    j'ai créer un project avec différents modules
    la matrice est une matrice creuse.
    Prière me transmettre une explication comment se fait la résolution d'un système linéaire en utilisant ces bibliothèque pour que je puisse l'introduire dans mon programme ou bien me proposer une autre méthode pour résoudre mon système.
    Je vous remercie d'avance.

  2. #2
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Bonjour.
    Je peux répondre sur l'utilisation de LAPACK.

    Est-ce vraiment nécessaire d'utiliser la procédure SYMMLQ ?
    Utiliser une procédure plus générale est plus facile (moins d'arguments, plus de documentation).
    Je conseille de prendre DSYSV. Le NAG donne une fiche technique avec un exemple :
    http://www.nag.co.uk/numeric/fl/manu...F07/f07maf.pdf.

    Si tu as un problème de mise en œuvre, précise ton OS et tes outils.

    Bien cordialement.

  3. #3
    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 : 84
    Localisation : Suisse

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Si tu es débutant, je te conseille d'utiliser la bibliothèque LinPack qui est bien plus ancienne que LAPack, mais aussi bien plus simple à utiliser.
    Ensuite, pour choisir les sous-programmes que tu vas utiliser, il faut tenir compte des particularités de la matrice de ton système: est-elle bande, symétrique, définie positive?
    Jean-Marc Blanc

  4. #4
    Membre actif
    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
    Par défaut
    j'ai essayé d'utilisé la bibliothèque Linpack mais j'arrive pas à comprendre comment j'introduit les subroutines dans mon programme et qu'est ce qu'il faut changer pour les adapter à mon programme.

    quelqu'un sache comment se fait la résolution en utilisant ces fichiers svp?
    l'utilisation de la subroutine SYMMLQ n'est pas nécessaire mais il faut trouver une méthode pour résoudre numériquement mon problème.
    Priére une réponse

    ****
    module linalg
    !
    ! version 0.2 -- 14 Novembre 2003
    !
    ! (C) Édouard CANOT -- Edouard.Canot@irisa.fr -- CNRS
    !

    implicit none

    private

    !-----------
    interface f90_gefa

    module procedure f90_gefa_interf_double
    end interface
    !-----------
    interface f90_geco
    module procedure f90_geco_interf_double

    end interface
    !-----------
    interface f90_gesl
    module procedure f90_gesl_interf_double

    end interface
    !-----------

    public :: f90_gefa, f90_geco, f90_gesl

    !_______________________________________________________________________
    !
    contains

    include "linalg_interf_single.f90"

    include "linalg_interf_double.f90"

    end module linalg


    le problème que j'arrive plus à comprendre comment se fait la résolution pour que je puisse appliquer à mon cas même si je lis le fichier
    la matrice n'est pas défini positive symétrique et creuse

  5. #5
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Il faut appeler un des 3 sous programmes : f90_gefa, f90_geco ou f90_gesl.
    On ne peut pas savoir lequel avec les documents fournis.
    Il s'agit d'un 'module procedure' servant à l'interfaçage. Les sous programmes étant définis dans les fichiers inclus (un par type).

    Vu que la matrice est réelle (de double ?), symétrique, non définie positive, la procédure DSYSV de LAPACK permet de résoudre ton problème (c.f. pour l'exemple).

  6. #6
    Membre actif
    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
    Par défaut
    svp cette procédure comment je la trouve est ce qu'il faut télécharger LAPACK?

  7. #7
    Membre émérite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    388
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2013
    Messages : 388
    Par défaut
    Et oui, c'est une des procédures de LAPACK.
    Il faut installer la bibliothèque.

Discussions similaires

  1. Réponses: 0
    Dernier message: 27/12/2011, 01h59
  2. Résolution d'un système linéaire binaire
    Par steph42 dans le forum Mathématiques
    Réponses: 16
    Dernier message: 22/02/2008, 16h20
  3. Résolution d'un système linéaire
    Par souheyeb dans le forum Mathématiques
    Réponses: 4
    Dernier message: 14/02/2008, 18h53
  4. Réponses: 4
    Dernier message: 10/03/2007, 17h45
  5. Réponses: 1
    Dernier message: 14/02/2007, 11h12

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