fsolve#
- scipy.optimize.fsolve(func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-08, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)[Quelle]#
Finden Sie die Wurzeln einer Funktion.
Gibt die Wurzeln der (nichtlinearen) Gleichungen zurück, die durch
func(x) = 0definiert sind, gegeben eine Startschätzung.- Parameter:
- funccallable
f(x, *args) Eine Funktion, die mindestens ein (möglicherweise Vektor-)Argument nimmt und einen Wert gleicher Länge zurückgibt.
- x0ndarray
Die Startschätzung für die Wurzeln von
func(x) = 0.- argstuple, optional
Alle zusätzlichen Argumente für func.
- fprimecallable
f(x, *args), optional Eine Funktion zur Berechnung des Jacobi-Matrix von func mit Ableitungen über die Zeilen hinweg. Standardmäßig wird die Jacobi-Matrix geschätzt.
- full_outputbool, optional
Wenn True, gib optionale Ausgaben zurück.
- col_derivbool, optional
Gibt an, ob die Jacobi-Matrix-Funktion Ableitungen spaltenweise berechnet (schneller, da keine Transpositionsoperation stattfindet).
- xtolfloat, optional
Die Berechnung wird beendet, wenn der relative Fehler zwischen zwei aufeinanderfolgenden Iterationen höchstens xtol beträgt.
- maxfevint, optional
Die maximale Anzahl der Aufrufe der Funktion. Wenn null, dann ist
100*(N+1)das Maximum, wobei N die Anzahl der Elemente in x0 ist.- bandtuple, optional
Wenn auf eine Zweiersequenz gesetzt, die die Anzahl der Sub- und Superdiagonalen innerhalb des Bandes der Jacobi-Matrix enthält, wird die Jacobi-Matrix als bandförmig betrachtet (nur für
fprime=None).- epsfcnfloat, optional
Eine geeignete Schrittlänge für die Vorwärts-Differenzen-Approximation der Jacobi-Matrix (für
fprime=None). Wenn epsfcn kleiner als die Maschinengenauigkeit ist, wird angenommen, dass die relativen Fehler in den Funktionen von der Größenordnung der Maschinengenauigkeit sind.- factorfloat, optional
Ein Parameter, der die anfängliche Schrittbegrenzung bestimmt (
factor * || diag * x||). Sollte im Intervall(0.1, 100)liegen.- diagsequence, optional
N positive Einträge, die als Skalierungsfaktoren für die Variablen dienen.
- funccallable
- Rückgabe:
- xndarray
Die Lösung (oder das Ergebnis der letzten Iteration bei einem erfolglosen Aufruf).
- infodictdict
Ein Wörterbuch mit optionalen Ausgaben mit den Schlüsseln
nfevAnzahl der Funktionsaufrufe
njevAnzahl der Jacobi-Matrix-Aufrufe
fvecFunktion, die am Ausgang ausgewertet wurde
fjacdie orthogonale Matrix, q, erzeugt durch die QR-Zerlegung der endgültigen approximierten Jacobi-Matrix, spaltenweise gespeichert
robere Dreiecksmatrix, erzeugt durch die QR-Zerlegung derselben Matrix
qtfder Vektor
(transpose(q) * fvec)
- ierint
Ein Integer-Flag. Auf 1 gesetzt, wenn eine Lösung gefunden wurde, andernfalls siehe mesg für weitere Informationen.
- mesgstr
Wenn keine Lösung gefunden wird, beschreibt mesg die Ursache des Fehlers.
Siehe auch
rootSchnittstelle zu Root-Finding-Algorithmen für multivariate Funktionen. Sehen Sie sich insbesondere die
method='hybr'an.
Hinweise
fsolveist ein Wrapper um die Algorithmen hybrd und hybrj von MINPACK.Beispiele
Finden Sie eine Lösung für das Gleichungssystem:
x0*cos(x1) = 4, x1*x0 - x1 = 5.>>> import numpy as np >>> from scipy.optimize import fsolve >>> def func(x): ... return [x[0] * np.cos(x[1]) - 4, ... x[1] * x[0] - x[1] - 5] >>> root = fsolve(func, [1, 1]) >>> root array([6.50409711, 0.90841421]) >>> np.isclose(func(root), [0.0, 0.0]) # func(root) should be almost 0.0. array([ True, True])