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 :

[Fortran 77] Problème de matrice


Sujet :

Fortran

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut [Fortran 77] Problème de matrice
    bonsoir,
    j'utilise en ce moment le fortran 77 de cygwin sous windows pour calculer des matrices de triangles numériques d'entiers positifs (exple : triangle de pascal) avec des lois de récurrence du genre :
    A(i+1,j+1)=A(i,j) + (j+1)A(i,j+1)
    Tout semble marcher mais je suis étonné lorsque j'affiche ces triangles de voir que seules les 10 ou 12 premières lignes sont correctes et qu'ensuite apparaissent des entiers négatifs, ce qui est mathématiquement impossible, et les lignes suivantes sont complètement fausses.
    Il y a t-il déjà une instabilité numérique dans fortran même après un calcul de triangles aussi simple ??
    merci beaucoup !

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonsoir,
    dernièrement, je crois avoir compris qu'il s'agissait d'un problème de précision en termes de nombre d'octets utilisés :
    en effet quand je déclare mes variables entieres comme integer*8, j'obtiens plus de lignes exactes (et positives!) qu'avec integer*1.
    Donc il semble que la taille des entiers dans mes matrices jouent beaucoup, or j'ai vraiment besoin de calculer de très grand entiers, comment faire alors pour augmenter la précision avec g77 ??
    merci beaucoup

  3. #3
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Ce n'est pas un problème de fortran, c'est un problème général de mémoire. Un nombre (qu'il soit entier ou réel) est stocké sur un nombre fini de d'octet (8bits).
    Il en découle obligatoirement un limite du nombre maximum que tu peux enregistrer.

    Avec integer*1 tu enregistre tes entiers sur 1 octet soit 8bit. Le premier étant un bit de signe il te reste 7 bit pour enregistrer ton entier, le nombre max que tu peux enregistrer est donc 256 ! D'où le fait que tu ne peux pas aller très loin dans le tableau de pascal !

    regarde ce post pour plus de détails :

    http://www.developpez.net/forums/d62...ble-precision/

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    merci Lagdalen,
    j'ai aussi vu ton lien, ma question désespérée est alors : peut-on augmenter de beaucoup la capacité de mémoire des entiers de fortran 77 ( genre integer*32) ou alors... changer carrément de langage ??
    merci !

  5. #5
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Je ne suis pas le plus qualifié pour répondre à cette question. Cependant il me semble qu'en fortran 90 (ou peut être 95) tu peux donner le nombre d'octet sur lequel tu enregistres tes nombres sans contraintes.

    Sinon je crois que c'est un des atouts de C ... mais là j'y connais encore moins.

    Sinon au passage si tu te mets en réel double précision, tu as un éventail de valeurs entre 10^-300 et 10^+300 ce qui te laisse de la marge !!!!

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    merci encore Lagdalen,
    je ne suis pas sûr que des fonctions comme mod(a,b) affichent parfaitement zéro en double précision : je vais réessayer.
    Par contre, puis-je trouver le fortran 90 ou 95 dans les mêmes packages cygwin où j'ai extrait le f77 ??
    merci, si d'autres ont plus de précisions...

  7. #7
    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,

    Pour travailler à des précisons autres que celles qui sont standard au langage, il faut utiliser des librairies spécifiques dans lesquelles sont recodées toutes les opérations.
    En cherchant "multiple precision" sur Netlib, on voit qu'il existe de telles librairies en Fortran, comme par exemple bmp ou mpfun.
    Reste à voir comment les utiliser et ce qu'elles ont dans le ventre...

    Bon courage.

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonjour et merci bien Ehouarn,
    par contre je ne vois pas non plus comment utiliser ces librairies...
    quelqu'un a une idée ?

  9. #9
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    pardon j'oubliais une question importante : d'après vous, où vaut-il mieux télécharger fortran 90 et 95 ? surtout peut-on les compiler directement sous windows avec cygwin (c'est avec ça que je travaille) ou faut-il télécharger les compilateurs ?
    merci !

  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,

    je ne vois pas non plus comment utiliser ces librairies
    As-tu lu la doc et les exemples qu'ils fournissent?
    A première vue toutes les infos sont là.

    Pour ce qui est de faire du Fortran 90 sous Cygwin, tu peux par exemple récupérer g95 il (rubrique 'Download/Binaries', il y en a pour Cygwin).

    Bonne continuation.

  11. #11
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    merci encore Ehouarn,
    j'ai effectivement réussi à télécharger le g95.
    Je n'ai pas lu les librairies, je m'y perd toujours un peu, mais je vais essayer...

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonsoir,
    je galère complètement depuis des heures en essayant d'installer les librairies mpfun77 et mpfun90 que m'a conseillé Ehouarn dans les packages de cygwin : quand je compile un programme, mon fortran 77 ou 90 ne semblent pas reconnaître les types d'entiers qui leurs sont associé (comme mp_integer etc...)
    D'où ma question : comment installer enfin ces librairies ?
    Merci d'avance pour vos réponses !

  13. #13
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonsoir,
    lorsque je tape ./configure dans le shell cygwin pour configurer les librairies, on me renvoie que cette commande n'est pas définie, pour la commande install il y a aussi des problèmes !
    Encore une fois, quelqu'un saurait-il m'indiquer la démarche correcte à suivre pour installer ces librairies mpfun ?
    merci c'est désespérant...

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonsoir,
    on vient de m'apprendre que ./configure ne marche probablement que sous linux.
    Mais je ne sais toujours pas comment compiler mes librairies...mais, enfin, n'y a t-il donc pas des experts ici que pouvez appeler ?
    merci

  15. #15
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Si des experts existent il faut attendre qu'ils passent ...

    Cygwin est un système particulier qui n'est pas linux et il est donc préférable d'utiliser des programmes ou des librairies spécifiques à cygwin. Fouilles dans les paquets disponnibles à l'installation si tes librairies n'y sont pas.

    Si ta machine est suffisante une alternative à cygwin que je trouve bien plus pratique est de virtualiser linux sous windows. L'intéret est que tu as un vrai linux qui marche comme tous les autres linux et donc beaucoup plus de choses disponnibles.

    J'ai fonctionné un temps avec Virtual Box sous windows XP, j'avais installé ubuntu 8.04 et ça marchait très bien. J'ai un intel core 2 duo 1.8GHz et 1Go de RAM et ça tournais bien !

    Bon courage ...

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    merci Ladgalen
    comment puis-je trouver les "paquets disponibles à l'installation" ?
    je garde au frais ta solution alternative s'il y en a pas d'autres...mais comment faire pour virtualiser Linux ??

  17. #17
    Membre éprouvé
    Avatar de Ladgalen
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Novembre 2007
    Messages
    466
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Novembre 2007
    Messages : 466
    Points : 982
    Points
    982
    Par défaut
    Citation Envoyé par info! Voir le message
    comment puis-je trouver les "paquets disponibles à l'installation" ?
    Tu reprend l'installation de cygwin depuis le départ, après avoir choisis le miroir il affiche la liste de tous les paquets disponnibles. Je crois que si tu fais juste suivant il met à jour sinon tu en coche d'autres et il les installes en plus.
    C'est la solution la plus sure d'installer quelques choses sous cygwin car de cette manière il gère les dépendances.

    Citation Envoyé par info! Voir le message
    je garde au frais ta solution alternative s'il y en a pas d'autres...mais comment faire pour virtualiser Linux ??
    Pour virtualiser linux tu installe virtual box (c'est gratuit et ça marche bien). Là tu vas devoir créer un disque dur virtuel, c'est un gros fichier en fait. Et dans ce disque dur virtuel tu installe un autre OS (n'importe lequel du moment qu'il est compatible avec virtual box). Tu télécharge une distribution linux et tu l'installe comme tu le ferais sur un autre PC en chargeant le CD dans virtual box.

    Imagine tu as deux PC cote à cote avec leurs écran cote à cote. Sur l'un tu as linux et l'autres windows. Quand tu virtualises linux ça revient à faire entrer le PC linux dans le PC windows. Le système linux est vraiment indépendant et tu l'allumes ou l'éteint comme un PC différent, les ressources systèmes sont partégés (mémoire vive, processeurs ect ...).

  18. #18
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    bonjour,
    merci Lagdalen, jolie solution !
    en attendant, as-tu, toi ou un autre, jamais essayé d'installer une librairie quelconque sous cygwin/windows ? je ne pense pas être le premier tout de même a avoir rencontré ce problème (si c'est le cas je dépose un brevet !)
    merci!

  19. #19
    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,

    Pour ce que j'en sais, 'configure' n'est pas un programme; c'est simplement et généralement un script d'installation que certains fournissent afin de faciliter l'installation de leurs 'paquets' pour telle où telle OS...

    J'ai téléchargé mpfun90, pour être précis celui disponible sur http://crd.lbl.gov/~dhbailey/mpdist/.
    A la lecture du 'README', il n'y a pas de script 'configure'; il faut donc utiliser le 'Makefile' fourni, après l'avoir préalablement adapté puisqu'il est précisé que tout est confiuré par défaut pour le compilateur xlf90 (c.f. section IV du README).

    A tester ...

  20. #20
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 34
    Points : 4
    Points
    4
    Par défaut
    merci bien Ehouarn !
    j'ai téléchargé le même mpfun90 que toi et j'ai essayé d'installer les fichiers de f90 et toolkit à l'aide de leurs makefile fournis : effectivement, à l'exécution de ces derniers aucune commande n'est reconnue par le système. J'ai alors essayé de l'adapter en remplaçant dans le texte 'xfl90' par 'g95' (mon compilateur), mais ça ne change rien du tout !
    comment faire ?

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/03/2007, 11h13
  2. problème de matrice
    Par micfont999 dans le forum C++
    Réponses: 9
    Dernier message: 07/01/2007, 16h19
  3. [Fortran 90] Problème de fmt
    Par Nours87 dans le forum Fortran
    Réponses: 16
    Dernier message: 12/01/2006, 20h29
  4. Réponses: 8
    Dernier message: 01/06/2005, 10h45
  5. [Fortran 77] Problème de compilation
    Par Kenji dans le forum Fortran
    Réponses: 26
    Dernier message: 23/05/2005, 17h07

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