[−][src]Struct diffeq::ode::problem::OdeProblem
F: the RHS of the ODE dy/dt = F(t,y)
, which is a function of t and y(t)
and returns dy/dt
.
y0: initial value for y. The type of y0, promoted as necessary according to the numeric type used
for the times, determines the element type of the yout vector (yout::Vector{typeof(y0*one(t))})
tspan: Any iterable of sorted t values at which the solution (y) is requested.
Most solvers will only consider tspan[0] and tspan[end], and intermediary points will be
interpolated. If tspan[0] > tspan[end] the integration is performed backwards. The times are
promoted as necessary to a common floating-point type.
Methods
impl<F, Y, T> OdeProblem<F, Y> where
F: Fn(f64, &Y) -> Y,
T: RealField + Add<f64, Output = T> + Mul<f64, Output = T> + Into<f64>,
Y: OdeType<Item = T>,
[src]
F: Fn(f64, &Y) -> Y,
T: RealField + Add<f64, Output = T> + Mul<f64, Output = T> + Into<f64>,
Y: OdeType<Item = T>,
pub fn builder() -> OdeBuilder<F, Y>
[src]
convenience method to create a new builder
same as OdeBuilder::default()
pub fn solve(
self,
ode: Ode,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
self,
ode: Ode,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
pub fn feuler(self) -> OdeSolution<f64, Y>
[src]
Solve the problem using the Feuler Butchertableau.
pub fn heun(self) -> OdeSolution<f64, Y>
[src]
Solve the problem using the Heun Butchertableau.
pub fn midpoint(self) -> OdeSolution<f64, Y>
[src]
Solve the problem using the Mindpoint method.
pub fn ode21(&self, opts: OdeOptionMap) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
pub fn ode23(&self, opts: OdeOptionMap) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
pub fn ode4(self) -> OdeSolution<f64, Y>
[src]
pub fn ode45(&self, opts: OdeOptionMap) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
pub fn ode45_dp(
&self,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
&self,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
pub fn ode45_fe(
&self,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
&self,
opts: OdeOptionMap
) -> Result<OdeSolution<f64, Y>, OdeError>
pub fn ode78(&self, opts: OdeOptionMap) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
pub fn ode23s<Ops: Into<AdaptiveOptions>>(
&self,
opts: Ops
) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
&self,
opts: Ops
) -> Result<OdeSolution<f64, Y>, OdeError>
Solve stiff systems based on a modified Rosenbrock triple
pub fn oderosenbrock<S: Dim>(
&self,
coeffs: RosenbrockCoeffs<S>
) -> Result<OdeSolution<f64, Y>, OdeError> where
DefaultAllocator: Allocator<f64, S, S> + Allocator<f64, S>,
[src]
&self,
coeffs: RosenbrockCoeffs<S>
) -> Result<OdeSolution<f64, Y>, OdeError> where
DefaultAllocator: Allocator<f64, S, S> + Allocator<f64, S>,
Solve stiff differential equations, Rosenbrock method with provided coefficients.
pub fn ode4s_kr(&self) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
Solve the problem using the Kaps-Rentrop coefficients.
pub fn ode4s_s(&self) -> Result<OdeSolution<f64, Y>, OdeError>
[src]
Solve the problem using the Shampine coefficients.
pub fn calc_coefficients<S: Dim>(
&self,
btab: &ButcherTableau<S>,
t: f64,
init: CoefficientPoint<Y>,
dt: f64
) -> CoefficientMap<Y> where
DefaultAllocator: Allocator<f64, U1, S> + Allocator<f64, S, U2> + Allocator<f64, S, S> + Allocator<f64, S>,
[src]
&self,
btab: &ButcherTableau<S>,
t: f64,
init: CoefficientPoint<Y>,
dt: f64
) -> CoefficientMap<Y> where
DefaultAllocator: Allocator<f64, U1, S> + Allocator<f64, S, U2> + Allocator<f64, S, S> + Allocator<f64, S>,
Calculates all coefficients values for a given value yn
at a specific time t
.
Creates an CoefficientMap
with the calculated coefficient k
and their
approximations y
of size S
, the number of stages of the butcher tableau
pub fn fdjacobian(&self, t: f64, x: &Y) -> DMatrix<T>
[src]
Crude forward finite differences estimator of Jacobian as fallback
returns a NxN Matrix where N is the degree of freedom of the OdeType
y
Trait Implementations
impl<F: Clone, Y: Clone> Clone for OdeProblem<F, Y> where
F: Fn(f64, &Y) -> Y,
Y: OdeType,
[src]
F: Fn(f64, &Y) -> Y,
Y: OdeType,
fn clone(&self) -> OdeProblem<F, Y>
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<F: Debug, Y: Debug> Debug for OdeProblem<F, Y> where
F: Fn(f64, &Y) -> Y,
Y: OdeType,
[src]
F: Fn(f64, &Y) -> Y,
Y: OdeType,
Auto Trait Implementations
impl<F, Y> RefUnwindSafe for OdeProblem<F, Y> where
F: RefUnwindSafe,
Y: RefUnwindSafe,
F: RefUnwindSafe,
Y: RefUnwindSafe,
impl<F, Y> Send for OdeProblem<F, Y> where
F: Send,
Y: Send,
F: Send,
Y: Send,
impl<F, Y> Sync for OdeProblem<F, Y> where
F: Sync,
Y: Sync,
F: Sync,
Y: Sync,
impl<F, Y> Unpin for OdeProblem<F, Y> where
F: Unpin,
Y: Unpin,
F: Unpin,
Y: Unpin,
impl<F, Y> UnwindSafe for OdeProblem<F, Y> where
F: UnwindSafe,
Y: UnwindSafe,
F: UnwindSafe,
Y: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<SS, SP> SupersetOf<SS> for SP where
SS: SubsetOf<SP>,
[src]
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
[src]
fn is_in_subset(&self) -> bool
[src]
unsafe fn to_subset_unchecked(&self) -> SS
[src]
fn from_subset(element: &SS) -> SP
[src]
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,