000
23.04.2005, 00:32 Uhr
McDude
|
Also neulich habe ich mir eine Mathematik-Datei geschrieben, die ich für ein anderes Projekt nutzen wollte. Als ich sie aber heute verwendet habe, bekam ich einen Laufzeitfehler. Sicherlich denke ich falsch, aber ich beschreibe mal, wie ich an das Problem herangegangen bin.
Da ich bis zu diesem Zeitpunkt keine Ahnung hatte, wo die ganzen mathematischen Funktionen in C++ versteckt sind, musste ich mir erst einmal die Potenzfunktion und Fakultätsfunktion programmieren - Das ging auch recht flott und hier dürfte noch kein Fehler sein. Das ist ja die Grundlage für die Programmierung der Sinus-, Cosinus-, Sinushyperbolicus- usw. funktion. Ich nehme jetzt einfach mal den Sinus.
Nun zur Mathematik: -> Hier benutze ich ja als Algorithmus die Potenzreihenentwicklung der Sinusfunktion, um genau zu sein, die Mac Laurinsche Reihe (Spezialfall der Taylorschen Reihe) von f(x) = sinx.
Schließlich kommt man ja auf:
sinx = Summe(n=0 -> oo) ((-1)^n * (x^(2*n+1) / (2*n+1)))
An dieser Stelle habe ich dann eine Sinus-Funktion programmiert, die mit Hilfe einer for-Schleife das n bis 10 (nur probehalber) durchlaufen lässt. Hier liegt auch das Problem - Ich muss einen großen Wert für n einsetzen, damit die Berechnung genau wird. Aber heute kam ich durch dieses andere Programm, wo ich meine header-Datei nutzen wollte, an die Grenze, da enorme x-Werte entstehen. Normalerweise würde ja das n gegen unendlich laufen, aber das kann ich ja nicht realisieren.
Gibt es noch eine andere Möglichkeit außer die Reihenentwicklung für die Sinusprogrammierung?
Gruß und Danke im Voraus McDude |