[Python-de] Re: Wurzel ziehen

Stefan Schwarzer sschwarzer at sschwarzer.net
Don Jun 30 23:09:39 CEST 2005


Hallo Benjamin,

On 2005-06-30 17:59, Benjamin Kaminski wrote:
>>Mit etwas Mathematik: n-te Wurzel aus x == x hoch 1/n

Diese Formel gilt nur
>
> so schlau war ich auch schon.
> Aber wenn man sich unter http://de.wikipedia.org/wiki/Potenz_%28Mathematik%29
> das Beispiel im Abschnitt nicht ganzzahlige Exponenten ansieht, dann funktioniert
> es nicht mehr, oder steh ich aufm schlauch?

Pythons Operator ** erlaubt auch nicht-ganzzahlige Wurzelexponenten:

Python 2.4.1 (#1, Jun 23 2005, 16:53:32)
[GCC 3.3.5-20050130 (Gentoo Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie- on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import math
>>> math.pi  # Beispiel fuer einen "sehr krummen" Wert
3.1415926535897931
>>> 8 ** math.pi
687.29133511454552

So gesehen "funktioniert" es durchaus.

Der Operator (funktionell gleichbedeutend mit der Funktion math.pow) liefert stets
den sog. Hauptwert der Wurzel (s.
http://de.wikipedia.org/wiki/Wurzel_%28Mathematik%29#Wurzeln_aus_komplexen_Zahlen ,
wobei in der gegebenen Formel k = 0 ist). Die Formel gilt nicht nur für komplexe
Zahlen, sondern erlaubt je nach den Werten von a und n evtl. auch mehrere reelle
Wurzeln, z. B. kann man sowohl x = 2 als auch x = -2 als "zweite Wurzel aus 4"
verstehen, da x**2 = 4 für beide Werte von x erfüllt ist.

Es hängt von deiner Anwendung ab, ob für dich nur der Hauptwert, alle reellen
Ergebnisse oder sogar alle komplexen Ergebnisse relevant sind. Daher die Frage:
Wozu brauchst du die Wurzel(n)? Was ist das ursprüngliche Problem?

Viele Grüße
Stefan