Implementierung der Potenzfunktion?
... für nicht ganzzahlige Exponenten
Wie berechnet ein Computer / der Taschenrechner 2^(1.5) = 2.828427125...
2^2 heißt ja 2 * 2, hier hätte ich aber die 2 und eine halbe 2, also kann ich den ganzen Zauder auch als 2sqrt(2) schreiben, OK. Dieses Wurzelzeug lässt sich z. B. mit Newton Iteration annähern
Das ist noch trivial, dann frage ich doch mal: Was ist mit e^pi?
Natürlich könnte man jetzt anfangen, die ganzzahligen Komponenten abzusplitten, es bleibt stehen:
e^(3)*e^(pi-3)
e^(3) ist im Nun berechnet.
e^(pi-3), wie macht das der Computer dann hier, effizient? Hat der Algorithmus hierfür einen speziellen Namen / Prinzip? Wenn ich jetzt raten würde, würde ich als Entwickler eines Taschenrechners die Sache wieder rum auf ein Iterationsverfahren reduzieren, indem ich Näherungsweise sagen würde: e^(14/100) = e^(7/50)
e^(7/50) ... was natürlich, wieder rum eine Wurzel ist...
2 Antworten
Er logarithmiert die Basis (z.B. zur Basis 2, ist aber egal).
Dann wird mit dem Exponenten multipliziert und das Ergebnis wieder potenziert.
Ich rechne das mal zur Basis e vor:
ln(2) = 0,693
0,693 * 1,5 = 1,04
e^1,04 = 2,83
Okay, den ln kann ich nehmen, hier hat der Taschenrechner wahrscheinlich eine Taylor-Reihe implementiert, die diesen annähert.
Du machst nichts anderes als 2 in e^ zu schreiben, am Ende steht bei dir:
e^(ln(2)*1.5), was noch interessant gewesen wäre zu erwähnen: Nimmt der Taschenrechner jetzt einfach die MacLourin Reihe zur e-Funktion, bzw. Taylor-Reihe zu 2^x oder gibt es hier wider rum andere, bessere Lösungen? Dann braucht man meine Überlegung gar nicht mehr, eigentlich eine gute Lösung, danke!!!
Ich hab ehrlichgesagt keine Ahnung, aber ich würde es folgendermaßen rechnen:
e^pi = e^3*e^(pi-3)
e^(pi-3) = 1 / (pi - 3)√e = 7.06251330593√e = 7√e*0.06251330593√e
0.06251330593√e = e^15.996594407 = e^15*e^0.996594407
und so weiter...