pub struct DormandPrinceFixedStep { /* private fields */ }Expand description
Explicit, six-stage, fifth-order, fixed-step, Runge-Kutta method.1
\frac{dy}{dt} = f(t, y)t_{n+1} = t_n + hk_1 = f(t_n, y_n)k_2 = f(t_n + \tfrac{1}{5} h, y_n + \tfrac{1}{5} h k_1)k_3 = f(t_n + \tfrac{3}{10} h, y_n + \tfrac{3}{40} h k_1 + \tfrac{9}{40} h k_2)k_4 = f(t_n + \tfrac{4}{5} h, y_n + \tfrac{44}{45} h k_1 - \tfrac{56}{15} h k_2 + \tfrac{32}{9} h k_3)k_5 = f(t_n + \tfrac{8}{9} h, y_n + \tfrac{19372}{6561} h k_1 - \tfrac{25360}{2187} h k_2 + \tfrac{64448}{6561} h k_3 - \tfrac{212}{729} h k_4)k_6 = f(t_n + h, y_n + \tfrac{9017}{3168} h k_1 - \tfrac{355}{33} h k_2 - \tfrac{46732}{5247} h k_3 + \tfrac{49}{176} h k_4 - \tfrac{5103}{18656} h k_5)y_{n+1} = y_n + h\left(\frac{35}{384}\,k_1 + \frac{500}{1113}\,k_3 + \frac{125}{192}\,k_4 - \frac{2187}{6784}\,k_5 + \frac{11}{84}\,k_6\right)Fixed-step variant of the Dormand-Prince method. ↩
Trait Implementations§
Source§impl Debug for DormandPrince
impl Debug for DormandPrince
Source§impl Default for DormandPrince
impl Default for DormandPrince
Source§fn default() -> DormandPrince
fn default() -> DormandPrince
Returns the “default value” for a type. Read more
Source§impl<Y, U, V, T> Explicit<Y, U, V, T> for DormandPrincewhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
impl<Y, U, V, T> Explicit<Y, U, V, T> for DormandPrincewhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
const SLOPES: usize = 6
Source§fn integrate(
&self,
function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, String>,
time: &[Quantity<T>],
initial_condition: Y,
) -> Result<(Times<T>, U, V), IntegrationError>
fn integrate( &self, function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, String>, time: &[Quantity<T>], initial_condition: Y, ) -> Result<(Times<T>, U, V), IntegrationError>
Solves an initial value problem by explicitly integrating a system of ordinary differential equations. Read more
Source§impl<T> FixedStep<T> for DormandPrince
impl<T> FixedStep<T> for DormandPrince
Source§impl<Y, U, V, T> FixedStepExplicit<Y, U, V, T> for DormandPrincewhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
impl<Y, U, V, T> FixedStepExplicit<Y, U, V, T> for DormandPrincewhere
Y: Differentiable<T> + Tensor,
Derivative<Y, T>: Mul<Quantity<T>, Output = Y>,
for<'a> &'a Y: Mul<Scalar, Output = Y> + Sub<&'a Y, Output = Y>,
for<'a> &'a Derivative<Y, T>: Mul<Scalar, Output = Derivative<Y, T>> + Mul<Quantity<T>, Output = Y>,
U: TensorVec<Item = Y>,
V: TensorVec<Item = Derivative<Y, T>>,
fn integrate_fixed_step( &self, function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, String>, time: &[Quantity<T>], initial_condition: Y, ) -> Result<(Times<T>, U, V), IntegrationError>
fn step( &self, function: impl FnMut(Quantity<T>, &Y) -> Result<Derivative<Y, T>, String>, y: &Y, t: Quantity<T>, dt: Quantity<T>, k: &mut [Derivative<Y, T>], y_trial: &mut Y, ) -> Result<(), String>
impl<Y, U> OdeIntegrator<Y, U> for DormandPrince
Auto Trait Implementations§
impl Freeze for DormandPrince
impl RefUnwindSafe for DormandPrince
impl Send for DormandPrince
impl Sync for DormandPrince
impl Unpin for DormandPrince
impl UnsafeUnpin for DormandPrince
impl UnwindSafe for DormandPrince
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more