Bonjour tout le monde,
Je rencontre un problème pour calculer une nombre complexe en Fortran.
Le code source est:
et il retourne à l'écran les 2 lignes suivantes:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 program ProgComplex implicit none complex(8) :: NbrComp NbrComp = (5.0,8.0) write(6,"('ProgComplex: real(NbrComp) = ',f5.2,3x,'aimag(NbrComp) = ',f5.2)") real(NbrComp), aimag(NbrComp) NbrComp = CMPLX((-1.0)**(2.25)) write(6,"('ProgComplex: real(NbrComp) = ',f5.2,3x,'aimag(NbrComp) = ',f5.2)") real(NbrComp), aimag(NbrComp) end program ProgComplex
La 1ère instruction 'write' imprime à l'écran la partie réelle et imaginaire de x = 5 + 8i.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ProgComplex: real(NbrComp) = 5.00 aimag(NbrComp) = 8.00 ProgComplex: real(NbrComp) = NaN aimag(NbrComp) = 0.00
On voit que les valeurs retournées correspondent bien au nombre défini.
Le 2ème nombre défini correspond à x = (-1)^(2.25).
En utilisant, Matlab, je trouve :
x = (-1)^(2.25) = 0.7071 + 0.7071i
Je n'arrive pas à retrouver ce résultat en Fortran.
En effet, le code ci-dessus me retourne un "NaN" pour le partie réelle et 0.0 pour la partie imaginaire.
Où se trouve mon erreur ?
Comment puis-je calculer un nombre complexe en Fortran ?
Merci d'avance.
Partager