pub struct BogackiShampineFixedStep { /* private fields */ }Expand description
Explicit, three-stage, third-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}{2} h, y_n + \tfrac{1}{2} h k_1)k_3 = f(t_n + \tfrac{3}{4} h, y_n + \tfrac{3}{4} h k_2)y_{n+1} = y_n + \frac{h}{9}\left(2k_1 + 3k_2 + 4k_3\right)Fixed-step variant of the Bogacki-Shampine method. ↩
Trait Implementations§
Source§impl Debug for BogackiShampine
impl Debug for BogackiShampine
Source§impl Default for BogackiShampine
impl Default for BogackiShampine
Source§fn default() -> BogackiShampine
fn default() -> BogackiShampine
Returns the “default value” for a type. Read more
Source§impl<Y, U, V, T> Explicit<Y, U, V, T> for BogackiShampinewhere
Y: Differentiable<T> + Div<Quantity<T>, Output = Derivative<Y, 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 BogackiShampinewhere
Y: Differentiable<T> + Div<Quantity<T>, Output = Derivative<Y, 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 = 3
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 BogackiShampine
impl<T> FixedStep<T> for BogackiShampine
Source§impl<Y, U, V, T> FixedStepExplicit<Y, U, V, T> for BogackiShampinewhere
Y: Differentiable<T> + Div<Quantity<T>, Output = Derivative<Y, 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 BogackiShampinewhere
Y: Differentiable<T> + Div<Quantity<T>, Output = Derivative<Y, 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 BogackiShampine
Auto Trait Implementations§
impl Freeze for BogackiShampine
impl RefUnwindSafe for BogackiShampine
impl Send for BogackiShampine
impl Sync for BogackiShampine
impl Unpin for BogackiShampine
impl UnsafeUnpin for BogackiShampine
impl UnwindSafe for BogackiShampine
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