7
votes

POW NÉDIQUE EN PYTHON

J'ai ce problème

>>> import math
>>> math.pow(-1.07,1.3)  
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>  
ValueError: math domain error


1 commentaires

Citant le manuel: "Si X et Y sont finis, X est négatif, et y n'est pas un entier, alors pow (x, y) est indéfini et soulève la ValueError."


6 Réponses :


2
votes

J'utilise Python 2.5.4 et je reçois ceci: xxx

Quelle version Python utilisez-vous?


0 commentaires

25
votes

(- 1.07) 1.3 sup> ne sera pas un nombre réel, donc l'erreur de domaine mathématique.

Si vous avez besoin d'un numéro complexe, un B sup> doit être réécrit dans e b ln a sup>, par exemple p> xxx pré>

si vous voulez juste retourner Nan, attrapez cette exception. P>

>>> 1.3 ** -1.07
0.755232399659047
>>> (-1.07) ** 1.3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: negative number cannot be raised to a fractional power
>>> (-1.07+0j) ** 1.3
(-0.6418264288034731-0.8833982926856789j)


0 commentaires

9
votes

N'utilisez pas de POW et faites le complexe d'exposition (ajouter 0j à celui-ci). Voici un exemple: xxx

pas besoin de fonctions mathématiques :)


0 commentaires

0
votes

du titre de ce message indiquant que la puissance est négative, est-il possible que vous souhaitiez réellement 1,3 -1.07 plutôt que - 1.07 1.3 ?


0 commentaires

2
votes

Les pouvoirs de non-titres de nombres complexes (et négatifs) impliquent une subtilité importante. La fonction exponentielle est injective sur la ligne réelle; I.E. exp (a) = exp (b) implique A = b. Ce n'est pas le cas de l'avion complexe. Depuis Exp (2 * Pi * I) = 1, la fonction exponentielle est 2 * pi * i-périodique.

Cela conduit au problème: quelle branche de la fonction journal utilisons-nous? Cette question est l'une des questions centrales d'analyse complexe.

Python répond intelligemment à cette situation. Sauf si vous utilisez explicitement son constructeur de nombres complexes, vous allez faire du trafic de réels. Comme les pouvoirs fractionnaires de négatifs ne sont jamais réels, Python lance de manière appropriée une exception.


0 commentaires

0
votes

Les pouvoirs de bases négatives sont des nombres complexes. Voici un exemple qui explique comment le réparer: xxx


0 commentaires