Brauche Hilfe Angleichung der Sinus-Funktion in python mit Taylor-Reihe
Ich bin sehr neu in Python und versuche die Angleichung der Sinus-Funktion mit diese Serie.
Mein code sieht wie folgt aus:
import math
def sin(x,n):
sine = 0
for i in range(n):
sign = (-1)**i
sine = sine + ((x**(2.0*i-1))/factorial(2**i-1))*sign
return sine
Diese nicht zurück, die Antwort die ich mir erhofft hatte, aber ich bin sehr verwirrt und kann nicht finden, mein Fehler... oder vielleicht bin ich einfach nur über dies der falsche Weg völlig (wie gesagt, ich bin sehr neu in python und in die Programmierung im Allgemeinen).
Scheint es ähnlich zu dem Programm, das ich zu schreiben hatte vor einer Weile Ungefähre pi gegeben diese Serie:
def piApprox(n):
pi = 0
for i in range(n):
sign = (-1)**i
pi = pi + 1.0/(2*i+1)*sign
return 4*pi
Ich weiß nicht, ob das nützlich ist, in irgendeiner Weise, aber es ist, was ich versucht habe zu verwenden, um herauszufinden, meine Sinus-Methode. Jede Hilfe dies zu beheben, oder zeigen Sie mich in die richtige Richtung wäre sehr dankbar!
- Wie wirkt sich Ihr Verhalten von dem abweichen, was Sie erwartet, speziell?
- Ich hatte erwartet,, bis Sie wieder eine Antwort in der Nähe wie die Mathematik.sin(x) zurückkehren würde. Ich fühle mich wie mein problem liegt irgendwo in der for i in range(n): Teil des Codes.
- Ok, dann sollten Sie wählen ein einfaches Beispiel-Eingang, ändern Sie Ihren code so drucken Sie alle Zwischenergebnisse an, und vergleichen Sie Sie, um eine manuelle Berechnung.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Taylor-Reihe für sin(x) ist:
Vergleichen Sie Ihren code so, dass die definition, diese beiden Teile haben einige Fehler:
Den minus sein sollte, Plus, und der exponent in der Fakultät Multiplikation.
Können Sie die symbolischen Bibliothek SymPy zu bauen, Ihre Funktion approximiert mittels Taylor-Reihe: