pub struct BogackiShampine {
pub abs_tol: TensorRank0,
pub rel_tol: TensorRank0,
pub dt_beta: TensorRank0,
pub dt_expn: TensorRank0,
}
Expand description
Explicit, three-stage, third-order, variable-step, Runge-Kutta method.1
\frac{dy}{dt} = f(t, y)
t_{n+1} = t_n + h
k_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)
k_4 = f(t_{n+1}, y_{n+1})
e_{n+1} = \frac{h}{72}\left(-5k_1 + 6k_2 + 8k_3 - 9k_4\right)
h_{n+1} = \beta h \left(\frac{e_\mathrm{tol}}{e_{n+1}}\right)^{1/p}
P. Bogacki and L.F. Shampine, Appl. Math. Lett. 2, 321 (1989). ↩
Fields§
§abs_tol: TensorRank0
Absolute error tolerance.
rel_tol: TensorRank0
Relative error tolerance.
dt_beta: TensorRank0
Multiplier for adaptive time steps.
dt_expn: TensorRank0
Exponent for adaptive time steps.
Trait Implementations§
Source§impl Debug for BogackiShampine
impl Debug for BogackiShampine
Source§impl Default for BogackiShampine
impl Default for BogackiShampine
Source§impl<Y, U> Explicit<Y, U> for BogackiShampinewhere
Self: InterpolateSolution<Y, U>,
Y: Tensor,
for<'a> &'a Y: Mul<TensorRank0, Output = Y> + Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,
impl<Y, U> Explicit<Y, U> for BogackiShampinewhere
Self: InterpolateSolution<Y, U>,
Y: Tensor,
for<'a> &'a Y: Mul<TensorRank0, Output = Y> + Sub<&'a Y, Output = Y>,
U: TensorVec<Item = Y>,
Source§fn integrate(
&self,
function: impl FnMut(TensorRank0, &Y) -> Result<Y, IntegrationError>,
time: &[TensorRank0],
initial_condition: Y,
) -> Result<(Vector, U, U), IntegrationError>
fn integrate( &self, function: impl FnMut(TensorRank0, &Y) -> Result<Y, IntegrationError>, time: &[TensorRank0], initial_condition: Y, ) -> Result<(Vector, U, U), IntegrationError>
Solves an initial value problem by explicitly integrating a system of ordinary differential equations. Read more
Source§impl<Y, U> InterpolateSolution<Y, U> for BogackiShampine
impl<Y, U> InterpolateSolution<Y, U> for BogackiShampine
Source§fn interpolate(
&self,
time: &Vector,
tp: &Vector,
yp: &U,
function: impl FnMut(TensorRank0, &Y) -> Result<Y, IntegrationError>,
) -> Result<(U, U), IntegrationError>
fn interpolate( &self, time: &Vector, tp: &Vector, yp: &U, function: impl FnMut(TensorRank0, &Y) -> Result<Y, IntegrationError>, ) -> Result<(U, U), IntegrationError>
Solution interpolation.
Auto Trait Implementations§
impl Freeze for BogackiShampine
impl RefUnwindSafe for BogackiShampine
impl Send for BogackiShampine
impl Sync for BogackiShampine
impl Unpin 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