DOP853#
- class scipy.integrate.DOP853(fun, t0, y0, t_bound, max_step=inf, rtol=0.001, atol=1e-06, vectorized=False, first_step=None, **extraneous)[Quelle]#
Explizite Runge-Kutta-Methode der Ordnung 8.
Dies ist eine Python-Implementierung des „DOP853“-Algorithmus, der ursprünglich in Fortran [1], [2] geschrieben wurde. Beachten Sie, dass dies keine wörtliche Übersetzung ist, aber der algorithmische Kern und die Koeffizienten sind dieselben.
Kann im komplexen Bereich angewendet werden.
- Parameter:
- funcallable
Rechte Seite des Systems. Die Aufrufsignatur lautet
fun(t, y). Hier istteine Skalare und es gibt zwei Optionen für das ndarrayy: Es kann entweder die Form (n,) haben; dann mussfunein array_like mit der Form (n,) zurückgeben. Alternativ kann es die Form (n, k) haben; dann mussfunein array_like mit der Form (n, k) zurückgeben, d. h. jede Spalte entspricht einer einzelnen Spalte iny. Die Wahl zwischen den beiden Optionen wird durch das Argument vectorized bestimmt (siehe unten).- t0float
Anfangszeit.
- y0array_like, shape (n,)
Anfangszustand.
- t_boundfloat
Grenzzeit - die Integration wird nicht darüber hinaus fortgesetzt. Sie bestimmt auch die Richtung der Integration.
- first_stepfloat or None, optional
Anfängliche Schrittgröße. Standard ist
None, was bedeutet, dass der Algorithmus wählen soll.- max_stepfloat, optional
Maximale Schrittgröße. Standard ist np.inf, d. h. die Schrittgröße ist unbegrenzt und wird ausschließlich vom Solver bestimmt.
- rtol, atolfloat and array_like, optional
Relative und absolute Toleranzen. Der Solver hält die lokalen Fehlerabschätzungen kleiner als
atol + rtol * abs(y). Hier steuert rtol eine relative Genauigkeit (Anzahl korrekter Stellen), während atol die absolute Genauigkeit (Anzahl korrekter Dezimalstellen) steuert. Um die gewünschte rtol zu erreichen, setzen Sie atol kleiner als den kleinsten Wert, der vonrtol * abs(y)erwartet werden kann, damit rtol den zulässigen Fehler dominiert. Wenn atol größer alsrtol * abs(y)ist, ist die Anzahl der korrekten Stellen nicht garantiert. Umgekehrt, um die gewünschte atol zu erreichen, setzen Sie rtol so, dassrtol * abs(y)immer kleiner als atol ist. Wenn Komponenten von y unterschiedliche Skalen haben, kann es vorteilhaft sein, unterschiedliche atol-Werte für verschiedene Komponenten festzulegen, indem Sie ein array_like mit der Form (n,) für atol übergeben. Standardwerte sind 1e-3 für rtol und 1e-6 für atol.- vectorizedbool, optional
Ob fun auf eine vektorisierte Weise implementiert ist. Standard ist False.
- Attribute:
- nint
Anzahl der Gleichungen.
- statusstring
Aktueller Status des Solvers: 'running', 'finished' oder 'failed'.
- t_boundfloat
Grenzzeit.
- directionfloat
Integrationsrichtung: +1 oder -1.
- tfloat
Aktuelle Zeit.
- yndarray
Aktueller Zustand.
- t_oldfloat
Vorherige Zeit. None, wenn noch keine Schritte gemacht wurden.
- step_sizefloat
Größe des letzten erfolgreichen Schritts. None, wenn noch keine Schritte gemacht wurden.
- nfevint
Anzahl der Auswertungen der rechten Seite des Systems.
- njevint
Anzahl der Auswertungen der Jacobi-Matrix. Ist immer 0 für diesen Solver, da er die Jacobi-Matrix nicht verwendet.
- nluint
Anzahl der LU-Zerlegungen. Ist immer 0 für diesen Solver.
Methoden
Berechnet ein lokales Interpolationspolynom über den letzten erfolgreichen Schritt.
step()Führt einen Integrationsschritt durch.
Referenzen
[1]E. Hairer, S. P. Norsett G. Wanner, „Solving Ordinary Differential Equations I: Nonstiff Problems“, Kap. II.