Pascal - Tangens Reihenentwicklung

BlackWidow83

Grünschnabel
Hallo Leute,

ich habe ein kleines Problem mit einer Aufgabenstellung bzgl. des Tangens. Die Aufgabe lautet folgendermaßen:

"Schreiben sie eine Funktion zur Berechnung des Tangens mit Hilfe einer geeigneten Reihenentwicklung"

Eine Formel für die Reihenentwicklung gibts z.B. bei Wikipedia, allerdings hab ich kein Plan, wie das umegsetzt werden soll. Vielleicht kann mir mal jemand eine step-by-step Herangehensweise erläutern?!

Gruß
Basti
 
Hi Basti

Das sieht mir weniger nach einem Pascal-Problem als mehr nach einem Motivationsproblem aus, oder?

Ehrlich, nicht böse gemeint, aber Du zeigst nicht gerade viel Eigeninitiative.

Wenn Du schon einer Formel im Wiki gefunden hast, wäre es doch z.B. nett gewesen, einen entsprechenden Link hier anzugeben.

Glaubst Du, jemand hat Lust, sich die Mühe zu machen Dein Problem zu verstehen, wenn Du selbst es kaum tust?

Zeige doch etwas mehr von dem, wo Dein Problem steckt, dann wir Dir bestimmt auch geholfen.

Also zeig mal ein paar erste (wenn auch lückenhafte) Lösungsansätze, dann geht es bestimmt auch weiter.

Gruß
vop
 
Hi vop... hast ja schon Recht.

Also um zuerst mal ein Link, um mein erstes Posting zu komplettieren: Wikipedia
Dort gibt es eine Formel zur Berechnung der Taylorreihe. Wie man sieht, soll die Summenformel gegen unendlich laufen, was ja programmiertechnisch nicht umsetzbar ist und weshalb man sich eine Abbruchbedingung schaffen muss.
Wie ich bei der ganzen Sache mit den Beroulli-Zahlen umgehen soll, weiß ich nicht. Ich hab nie zuvor von diesen Zahlen gehört und kann auch keine Beziehung zu den Bernoulli-Zahlen untereinander herstellen.
Nun ist es ja so, dass n erhöht werden soll und dann für jedes n der Bruch gelöst und stets in Form einer fortlaufenden Summe gelöst wird. Die Frage ist nun, wie weit wird n erhöht? Bis wohin soll ich mein Programm laufen lassen? Als Vorschlag kam von einem Dozenten, dass die Abbruchbedingung bei 1^(-10) liegen soll. Damit ist sicherlich gemeint, wenn irgendwann ein n gefunden ist, für das der Ausdruck 1^(-10) oder kleiner ist, dass dann das Programm beendet werden soll. Und bis zu diesem Zeitpunkt soll für n gegen unendlich diese Summe berechnet werden.
Frage ist dann, ob das Ergebnis dann schon wirklich der Tangens eines eingegebenen Winkels ist und wie ich mit diesen Bernoulli-Zahlen umzugehen habe. Wie werden denn diese Bernoulli-Zahlen für das sich erhöhende n ermittelt? Muss ich diese mittels der Reihenentwicklung für Bernoulli-Zahlen für jedes n immer erst ausrechnen, bevor ich sie einsetzen kann?

Hm... ich hoffe das reicht erstmal...

Gruß
Basti
 
Hi Basti

Na da weiß man nun ja wenigstens was Du genau meinst.

Ich würde etwa so vorgehen:

!. Ich würde dem Benutzer ein n vorgeben lassen, Dann kannst Du mit verschiedenen n herumspielen und bekommst ein Gefühl dafür, welchen Unterschied es macht, ob die n mit 10 oder 11, 40 oder 41 etc. angibst.
Beachte, dass Deine Formel (2n)! verwendet, wass eine nicht zu verachtend große Zahl werden kann!

2. Sowohl die Berechnung der Fakultät als auch die Berechnung der Bernoulli-Reihe sind rekursiv definierbar (siehe dein eigene Link).
Du kannst also jeweils eine Rekursive Funktion schreiben, die sowohl n! als auch Bn errechnet.

3. Ich könnte mir vorstellen, dass man evtl. aus Performance-Gründen die Bn und Fakultäts-Werte in Arrays festhält und für ein bestimmtes nmax schon einmal ausrechnet. Aber das ist vermutlich nicht wirklich wichtig, da n ja relative klein bleiben wird. 60! liefert bereits einen Wert von über 10 hoch 82

Also vielleicht hilft Dir das ein wenig weiter

Gruß vop
 
Zurück