e-funktion taylorreihe um nullpunkt begrenzen

Neue Frage »

woehlb Auf diesen Beitrag antworten »
e-funktion taylorreihe um nullpunkt begrenzen
Meine Frage:
Ich möchte die E-Funktion mit Hilfe ihrer Taylorreihe berechnen. Allerdings sind die Fehler nur in einem engen Bereich um Null aktzeptabel klein. Wie kann ich nur in einem engen Bereich um Null herum die Taylorreihe benutzten, und das ohne den Wertebereich der E-Funktion einzuschränken?

Bei einem Sinus ist das einfach. Da nutze ich die entsprechende Talorreihe nur im Intervall von -pi/4...+pi/4, und kann mit Hilfe der Quadrantenbeziehung den Sinus trotzdem komplett berechnen.

Wie muß ich entsprechend bei der E-Funktion den Parameter auf einen Bereich um Null herum begrenzen? Und wie muß der Funktionswert korrigiert werden?


Meine Ideen:
Ich dachte an folgendes, nur funktioniert es nicht zufriedenstellend.

y = exp(x):
-----------
if (x>=0) m = floor(x / ln(2)); //Nachkommastellen von m abtrennen
else m = ceil(x / ln(2));
x = x - (m*ln(2)); //Parameter einschränken
...
y = y * 2^m //Ergebnis korrigieren
zyko Auf diesen Beitrag antworten »
RE: e-funktion taylorreihe um nullpunkt begrenzen
Schau mal hier

http://de.wikipedia.org/wiki/Exponential...3.B6glichkeiten

Bei solchen Berechnungen, muss die Potenzreihe möglichst genau berechnet werden ( Abbruchfehler, Rundungsfehler), da dieser Fehler anschließlich noch möglicherweise mit einer Großen Zahl multipliziert wird.

Um ein numerisch besseres Ergebnis zu erzielen, kann die Formel

evtl. verbessert werden durch
,
da hierbei zunächst die kleinen Terme addiert werden, bevor die großen hinzukommen.
Weiterer Verbesserungsvorschlag wäre, die unendliche Summe so in endliche Abschnitte getrennt zu behandeln, dass die Addition kleiner Werte zusammen mit großen weitestgehend vermieden wird.

Ich bin aber kein Experte, der mit dem bestmöglichen Approximationsvorschlag vertraut ist.
woehlb Auf diesen Beitrag antworten »

Hallo Zyko,

vielen Dank für Deine Tips. Was Du mit e_2(x) vorschlägst müßte sich automatisch ergeben, wenn man das Hornerschema auf die Taylorreihe anwendet. Was Du damit versuchst ist mir schon klar. Denn im allgemeinen ist es numerisch besser, mit Werten in einer ähnlichen Größenordnung zu rechnen. Das werde ich mal am Wochenende ausprobieren.

Neben der Taylorreihe habe ich noch an den CORDIC-Algorithmus gedacht. Denn mit seiner Hilfe habe ich mal einen sehr genauen ArkusTangens entwickelt. Allerdings wäre dieser Algortihmus auf dem aktuellen Prozessor nicht notwendig, da dieser Multiplikationsbefehle kennt. Der CODRIC arbeitet im Kern iterativ nur mit Additionen und Schiebebefehlen. Allerdings blicke ich im Moment auch noch nicht durch wie ich den CORDIC auf die Exponentialfunktion anwenden kann. Beispiele unter der Verwendung des Datentyps double habe ich zwar gefunden, aber wenn ich eine eigene Exponentialfunktion entwickle sollten nur Integerdatentypen zum Einsatz kommen, da der Prozessor keine Gleitkommaeinheit besitzt.

Vielen Dank nochmal, ciao!
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »