Ich habe eine Reihe von Funktionen f_t
mit mehreren Wurzeln (zwei tatsächlich). Ich möchte die "erste" Wurzel finden und dies mit fsolve
funktioniert die meiste Zeit gut. Das Problem ist, dass die beiden Wurzeln konvergieren, wenn t in die Unendlichkeit geht. (Ein einfaches Beispiel für meine Funktionen wäre f_t(x) = x^2 - 1/t
). Je größer t
wird, desto mehr Fehler macht fsolve
. Gibt es eine vordefinierte Funktion, ähnlich wie fsolve
, zu der ich sagen kann, sollte es nur in einem bestimmten Bereich (z. B. finden Sie immer die Wurzel in [0, inf
)).Finden Sie eine Wurzel einer Funktion in einem bestimmten Bereich
Die Frage ist im Wesentlichen das gleiche wie https://mathematica.stackexchange.com/questions/91784/how-to-find-numerically-all-roots-of-a-function-in-a-given-range?noredirect=1&lq=1, aber die Antworten gibt es für Mathematica, ich will sie in Python.
PS: Ich weiß jetzt, wie ich meinen eigenen Algorithmus schreiben kann, aber da diese langsamer als Builtins sind, habe ich gehofft, einen eingebauten zu finden, der dasselbe macht. Vor allem habe ich diesen Beitrag gelesen Find root of a function in a given interval
(https://docs.scipy.org/doc/scipy-0.18.1/reference/optimize.html# root-finding) – Michael