Dop853
このコンテンツはまだ日本語訳がありません。
Defined in: mod.rs:22
pub struct Dop853Dormand-Prince 8(5,3) adaptive step-size integrator (DOP853).
Uses a 12-stage embedded Runge-Kutta pair. The 8th-order solution is propagated (local extrapolation), and the step size is controlled on the 5th-order difference alone. Hairer, Norsett & Wanner (1993) combine that with a 3rd-order difference; this does not — see https://github.com/sksat/orts/issues/410 for what that costs.
Methods
Section titled “Methods”stepper()
Section titled “stepper()”fn stepper<‘a, S: DynamicalSystem>(&self, system: &‘a S, initial:
::State, t0: f64, dt: f64, tol: Tolerances) -> AdaptiveStepper853<‘a, S>
Create an AdaptiveStepper853 for the given system and initial conditions.
step_full()
Section titled “step_full()”fn step_full<S: DynamicalSystem>(&self, system: &S, t: f64, state: &
::State, dt: f64) -> (::State,::State,::State)
Perform a single DOP853 step with full output.
Returns (y8, error, k13) where:
y8: the raw 8th-order candidate, not projectederror: error estimate, belonging to that raw candidatek13: 13th-stage derivative,f(t + dt, y8)
This is the low-level building block for a caller running its own
step-size control, so it stops short of the projection: error pairs
with the raw candidate, and mixing it with a projected state is
inconsistent. A caller that accepts the step owes the state its
OdeState::project call, and may reuse k13 as the next first stage
only while that projection reports Projection::Unchanged
(Projection::Changed means k13 was evaluated at a state that no
longer exists). Integrator::step and AdaptiveStepper853 do this
for you — the stepper re-evaluates the first stage at the projected
state instead of carrying k13 over.
Projection::Unchanged: crate::Projection::Unchanged
integrate_adaptive_with_events()
Section titled “integrate_adaptive_with_events()”fn integrate_adaptive_with_events<S, F, E, B>(&self, system: &S, initial:
::State, t0: f64, t_end: f64, dt_initial: f64, tol: &Tolerances, callback: F, event_check: E) -> IntegrationOutcome<::State, B>where S: DynamicalSystem, F: FnMut(f64, &::State), E: [Fn(f64, &::State) -> ControlFlow<B>](https://doc.rust-lang.org/std/ops/function/trait.Fn.html)
Integrate adaptively with event detection and NaN/Inf checking.