scipy.optimize.

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) = 0 definiert 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.

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

nfev

Anzahl der Funktionsaufrufe

njev

Anzahl der Jacobi-Matrix-Aufrufe

fvec

Funktion, die am Ausgang ausgewertet wurde

fjac

die orthogonale Matrix, q, erzeugt durch die QR-Zerlegung der endgültigen approximierten Jacobi-Matrix, spaltenweise gespeichert

r

obere Dreiecksmatrix, erzeugt durch die QR-Zerlegung derselben Matrix

qtf

der 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

root

Schnittstelle zu Root-Finding-Algorithmen für multivariate Funktionen. Sehen Sie sich insbesondere die method='hybr' an.

Hinweise

fsolve ist 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])