Wie man eine symbolische taylor expansion von einer unbekannten Funktion $f(x)$ mit sympy
In Salbei es ist ziemlich einfach zu tun, eine Taylor-expansion von einer unbekannten Funktion f(x),
x = var('x')
h = var('h')
f = function('f',x)
g1 = taylor(f,x,h,2)
Wie kann das getan werden, in sympy?
Update
asmeurer weist darauf hin, dass dies ein feature, das demnächst verfügbar in sympy aus dem pull-request http://github.com/sympy/sympy/pull/1888. Ich installierte den Zweig mit pip,
pip install -e git+git@github.com:renatocoutinho/sympy.git@897b#egg=sympy --upgrade
Jedoch, wenn ich versuche zu berechnen, die Serie von f(x),
x, h = symbols("x,h")
f = Function("f")
series(f,x,x+h)
Bekomme ich die folgende Fehlermeldung,
TypeError: unbound method Serie() muss aufgerufen werden, mit f als Beispiel
erste argument (got Symbol-Instanz statt)
- Sie können es nicht. Einfach eine Schleife verwenden und
diff
. Und die Funktion wird aufgerufenseries
nichttaylor
. - Es ist ein pull-request zu machen, diese Arbeit auf github.com/sympy/sympy/pull/1888.
- fantastisch! Dies war nicht eingebunden in den master branch, ist es noch möglich, diese zu installieren, mit pip. Oder muss ich clone das repo, den patch anzuwenden und dann von der Quelle erstellen?
- Ich habe versucht anzuwenden, github.com/sympy/sympy/pull/1888.patch, um die aktuelle Masterkopie von sympy mit git apply aber das ist fehlgeschlagen. Was empfehlen Sie?
- Der einfachste Weg ist Arbeit, von seinem ast, bis dass pull-request zusammengeführt werden.
- Ich habe gerade aktualisiert, mit dem, was ich versucht, aber der code gibt einen Fehler zurück. Ich bin nicht allzu vertraut mit sympy aber wahrscheinlich bin ich mit der Bibliothek falsch oder es ist etwas falsch mit der installierten Zweig.
- Ich
m currently working on a code that does something similar. I plan on providing it to the sympy community when I
m mehr sicher, dass es Ergebnisse genau sind. es müssen einige Anpassung, wenn.. - das klingt gut, poste bitte die pull commit hier, ich wäre daran interessiert, einen Blick.
- sicher, wenn ich herauszufinden, wie man 🙂 ich werde priorisieren, zunächst Fort, um sicherzustellen, dass die Ergebnisse genau sind. Ich freue mich zu sehen, was es aussieht, wenn (falls) es ist schließlich integriert.
- arbeiten noch daran.. (unter anderem) ..also andere Menschen gehen nicht über develloping die gleiche Sache unnötig, meine braucht mehrere taylor-Reihe von nicht-pendeln-Betreiber, erweitert Sie, cross-multipliziert, nimmt Unterschiede, und gibt ein Ergebnis zurück, zu einer vorgegebenen Reihenfolge, symbolisch, als pdf-Datei.. es ist ziemlich schnell.
- obigen Kommentar..
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als @asmeurer beschrieben, dies ist nun möglich mit
oder
beide gibt
Wenn Sie möchten, eine finite-Differenzen-approximation, können Sie zum Beispiel schreiben
um die vorwärts-approximation, die gibt
Es gibt keine Funktion dafür in sympy, aber es ist ziemlich einfach zu tun es "von hand":
Beachten Sie, dass sympy arbeitet in der Regel mit Ausdrücken (wie
f(x)
) und nicht mit bloßen Funktionen (wief
).