root(method=’krylov’)#

scipy.optimize.root(fun, x0, args=(), method='hybr', jac=None, tol=None, callback=None, options=None)

Siehe auch

Für die Dokumentation der restlichen Parameter siehe scipy.optimize.root

Optionen:
——-
nitint, optional

Anzahl der durchzuführenden Iterationen. Wenn weggelassen (Standard), werden so viele Iterationen durchgeführt, wie zur Erfüllung der Toleranzen erforderlich sind.

dispbool, optional

Gibt bei jeder Iteration den Status auf stdout aus.

maxiterint, optional

Maximale Anzahl der durchzuführenden Iterationen.

ftolfloat, optional

Relative Toleranz für das Residuum. Wenn weggelassen, wird sie nicht verwendet.

fatolfloat, optional

Absolute Toleranz (in der Maximalnorm) für das Residuum. Wenn weggelassen, beträgt der Standardwert 6e-6.

xtolfloat, optional

Relative minimale Schrittweite. Wenn weggelassen, wird sie nicht verwendet.

xatolfloat, optional

Absolute minimale Schrittweite, wie sie aus der Jacobi-Approximation bestimmt wird. Wenn die Schrittweite kleiner ist als dieser Wert, wird die Optimierung als erfolgreich beendet. Wenn weggelassen, wird sie nicht verwendet.

tol_normfunction(vector) -> scalar, optional

Norm, die zur Überprüfung der Konvergenz verwendet wird. Standardmäßig wird die Maximalnorm verwendet.

line_search{None, ‘armijo’ (Standard), ‘wolfe’}, optional

Welche Art von Liniensuche zur Bestimmung der Schrittweite in der durch die Jacobi-Approximation gegebenen Richtung verwendet werden soll. Standardmäßig wird ‘armijo’ verwendet.

jac_optionsdict, optional

Optionen für die jeweilige Jacobi-Approximation.

rdifffloat, optional

Relativer Schrittgrößenwert für die numerische Differenzierung.

methodstr oder aufrufbar, optional

Krylov-Methode zur Approximation der Jacobi-Matrix. Kann ein String oder eine Funktion sein, die dieselbe Schnittstelle wie die iterativen Löser in scipy.sparse.linalg implementiert. Wenn es ein String ist, muss es einer der folgenden sein: 'lgmres', 'gmres', 'bicgstab', 'cgs', 'minres', 'tfqmr'.

Der Standardwert ist scipy.sparse.linalg.lgmres.

inner_MLinearOperator oder InverseJacobian

Vorkonditionierer für die innere Krylov-Iteration. Beachten Sie, dass Sie auch inverse Jacobi-Matrizen als (adaptive) Vorkonditionierer verwenden können. Zum Beispiel,

>>> jac = BroydenFirst()
>>> kjac = KrylovJacobian(inner_M=jac.inverse).

Wenn der Vorkonditionierer eine Methode namens „update“ hat, wird diese nach jedem nichtlinearen Schritt mit update(x, f) aufgerufen, wobei x den aktuellen Punkt und f den aktuellen Funktionswert angibt.

inner_rtol, inner_atol, inner_callback, …

Parameter, die an den „inneren“ Krylov-Löser übergeben werden.

Eine vollständige Liste der Optionen finden Sie in der Dokumentation des von Ihnen verwendeten Lösers. Standardmäßig ist dies scipy.sparse.linalg.lgmres. Wenn der Löser über method überschrieben wurde, beachten Sie stattdessen die Dokumentation für diesen Löser. Um eine Option für diesen Löser zu verwenden, stellen Sie ihr inner_ voran. Um beispielsweise das Argument rtol für den Löser zu steuern, setzen Sie die Option inner_rtol hier.

outer_kint, optional

Größe des Unterraums, der über LGMRES-Nichtlinear-Iterationen beibehalten wird.

Details finden Sie unter scipy.sparse.linalg.lgmres.