Calcul intégrale sur fortran
suzanne13
-
cchristian Messages postés 928 Statut Membre -
cchristian Messages postés 928 Statut Membre -
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:
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
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:
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
A voir également:
- Logiciel calcul placo gratuit
- Logiciel montage vidéo gratuit windows 10 - Guide
- Logiciel de sauvegarde gratuit - Guide
- Logiciel bureautique gratuit - Guide
- Logiciel calcul plancher bois gratuit - Télécharger - Architecture & Déco
- Logiciel money gratuit - Télécharger - Comptabilité & Facturation
1 réponse
Bonjour,
Pourquoi définis-tu B,A,DX,F,X en double precision ?
Apparemment ce sont des entiers: integer B,A,DX,F,X
En les déclarant integer j'obtiens y = 56995072 ce n'est peut-être pas le résultat escompté mais on passe dans la boucle DO, ce qui n'est pas le cas avec B, A, DX, F, X en double précision.
Cordialement.
Cchristian.
Pourquoi définis-tu B,A,DX,F,X en double precision ?
Apparemment ce sont des entiers: integer B,A,DX,F,X
En les déclarant integer j'obtiens y = 56995072 ce n'est peut-être pas le résultat escompté mais on passe dans la boucle DO, ce qui n'est pas le cas avec B, A, DX, F, X en double précision.
Cordialement.
Cchristian.