Problème pour calculer un nombre complexe en Fortran
Bonjour tout le monde,
Je rencontre un problème pour calculer une nombre complexe en Fortran.
Le code source est:
Code:
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 |
et il retourne à l'écran les 2 lignes suivantes:
Code:
1 2 3
|
ProgComplex: real(NbrComp) = 5.00 aimag(NbrComp) = 8.00
ProgComplex: real(NbrComp) = NaN aimag(NbrComp) = 0.00 |
La 1ère instruction 'write' imprime à l'écran la partie réelle et imaginaire de x = 5 + 8i.
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.