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 :

intégrale sur fortran


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Par défaut intégrale sur fortran
    Bonsoir,
    j'ai programmé un programme sur fortran qui calcule une intégrale simple
    il ne génère aucune erreur mais il donne toujours comme résultat 0.
    svp aidez moi à détecter l'erreur je bloque
    voici le programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    external GAUS,TRAP
    	double precision y
    	y=TRAP(1,10,GAUS,1)
    	print *, y
    	end
     
    	double precision FUNCTION GAUS (T)
    	GAUS=EXP(T)
    	return
    	end
     
    	double precision FUNCTION TRAP (A,B,F,DX)
    	! A et B sont les bornes de l'intégrale
    	!F est la fonction à intégrer
    	!DX est le pas d'intégration
    	!N est le nombre de pas nécessaires
    	implicit none
    	integer N,I
    	double precision B,A,DX,F,X
    	N=(B-A)/DX-.5
    	TRAP=F(A)+F(B)/2.0
    	X=A
    	DO 10 I=1,N
    	X=X+DX
    	TRAP=TRAP+F(X)
    10    CONTINUE 
          TRAP=TRAP*DX
    	RETURN
    	end
    merci d'avance

  2. #2
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    as-tu essayer de remplacer F par GAUS dans la seconde fonction (en mettant GAUS en external)

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Août 2006
    Messages
    974
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Août 2006
    Messages : 974
    Par défaut
    On ne le répète jamais assez souvent :

    implicit none, implicit none, implicit non...

    La déclaration implicite des variables est une erreur de design de Fortran. On doit toujours débuter un programme ou sous-programme par un implicit none. Le temps de débogage sauvé en moyenne est nettement supérieur au temps requis pour taper cette instruction, même dans un petit programme.

    Ton programme ne fonctionne pas car rien n'indique dans le programme principal que TRAP et GAUS sont double precision. Par défaut, ils sont donc considérés real simple précision.

  4. #4
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Par défaut
    Bonsoir,
    j'ai remplacé F dans la fonction TRAP, j'ai mis implicit none au début duprogramme et j'ai déclaré TRAP et GAUS comme double precision comme vous me l'aviez dit mais sans résultat, aucun changement
    svp aidez moi

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 52
    Par défaut Appel incorrect à la fonction TRAP
    Chez moi cela marche si tu appelles la fonctionde la façon suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
           REAL*8 A,B,DX
     
             A= 1.0
             B= 10.0
             DX = 1.0
             y=TRAP(A,B,GAUS,DX)
    l'appel simple y=TRAP(1,10,GAUS,1) ne respecte pas les déclarations de la fonction TRAP.

    M.P.

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 35
    Par défaut
    Je vous remercie beaucoup pour votre aide

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

Discussions similaires

  1. [Débutant] Problème intégrale sur une Densite spectrale Pxx
    Par windsea dans le forum Signal
    Réponses: 3
    Dernier message: 03/04/2011, 18h15
  2. intégration sur fortran
    Par suzanne1307 dans le forum Fortran
    Réponses: 4
    Dernier message: 06/07/2009, 15h24
  3. minimisation d'une fonction sur fortran
    Par lemale dans le forum Fortran
    Réponses: 1
    Dernier message: 21/05/2009, 15h40
  4. Double intégrale sur matlab
    Par houcemc dans le forum MATLAB
    Réponses: 10
    Dernier message: 12/05/2009, 15h26
  5. [Débutant] Valeur d'intégrale sur un objet
    Par cpt.blake dans le forum MATLAB
    Réponses: 0
    Dernier message: 06/06/2008, 15h18

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