Je convertis du code Python en code C.Pourquoi NumPy.exp affiche un résultat différent de exp en C
En dessous de Python NumPy exp sur les sorties numériques complexes (6.12323399574e-17-1j)
pour k=1
, l=4
.
numpy.exp(-2.0*1j*np.pi*k/l)
Je le convertis en code C comme ci-dessous. Mais la sortie est 1.000000
.
#include <complex.h>
#define PI 3.1415926535897932384626434
exp(-2.0*I*PI*k/l)
Que manque-t-il?
Y Vous devriez utiliser 'cexp()' dans la version C, non? – kindall
Qu'est-ce que 'exp'? Utilisez-vous C++ ou 'tgmath.h'? La fonction 'exp' de C ne prend normalement pas de nombres complexes. Et comment examinez-vous le résultat, de toute façon? Montrez-nous le code exécutable. – user2357112
Je pense que numpy et c produiront tous deux la même réponse une fois que vous passerez 'exp' à' cexp'. La bonne réponse est -1i. C'est ce que veut vraiment dire quand on suppose que 6e-17 est vraiment nul. – bruceg