ich muss gerade einen Regelungsmechanismus für eine Heizungsanlage auf einem relativ leistungsschwachen Chip programmieren. Dafür muss ich u.a. den natürlichen Logarithmus als Funktion nachbauen. Dazu habe ich folgende Reihendarstellung gefunden:$$\ln(1+x)=x-\frac{x^2}{2}+\frac{x^3}{3}-\frac{x^4}{4}\pm\cdots$$Mein Problem ist jetzt, dass diese Reihendarstellung nur funktioniert, falls |x|<1 ist.
Was mache ich aber, wenn \(x>1\) ist?
Meine Idee:
Ich dividiere \(x\) so lange durch \(e\), bis ich einen Werte kleiner als \(e\) erhalte und zähle die Anzahl der Divisionen mit, auf den Rest wende ich dann die Formel von oben an. Ich mach am besten mal als Beispiel den natürlichen Logarithmus von 10:
10/e = 3,67879... ist noch größer als e, also wieder durch e dividieren
3,67879/e =1,35335... das ist jetzt kleiner als e
Nun wende ich die Formel von oben an: ln(1,35335)=ln(1+0,35535)=0,30258.
2-mal durch e dividiert und dann noch 0,30258 dazu gibt: ln(10)=2,30258
Daraus ergeben sich nun 2 Fragen:
a) Ist meine Vorgehensweise korrekt?
b) Habt ihr eine Idee, einen Trick, einen mathematischen Zusammenhang, wie ich den Logarithmus von großen Zahlen schneller berechnen kann?
..