pub enum QuasiNewtonMethod {
StationaryNewton,
JacobianUpdate(UpdateQuasiNewtonMethod),
InverseJacobianUpdate(UpdateQuasiNewtonMethod),
}
Expand description
Quasi-Newton methods are less computationnaly expensive than the Newton-Raphson method.
However, the most robust method is the Newton-Raphson one.
Quasi-newton methods do not evaluate the jacobian at each steps.
It is a trade off between recomputing the full jacobian matrix (which can take time, especially when using finite-differences) and the accuracy of the jacobian matrix used. Indeed, the more accurate the jacobian, fewer iterations will be needed.
Variants
StationaryNewton
The first computed jacobian will be used for all iterations.
JacobianUpdate(UpdateQuasiNewtonMethod)
The update of the methods will be performed on the jacobian matrix: it will be inverted afterwards before applying the step update.
InverseJacobianUpdate(UpdateQuasiNewtonMethod)
The update of the methods will be performed directly on the inverse jacobian matrix: Thus the jacobian won’t be computed at all after the first step.
Trait Implementations
sourceimpl Clone for QuasiNewtonMethod
impl Clone for QuasiNewtonMethod
sourcefn clone(&self) -> QuasiNewtonMethod
fn clone(&self) -> QuasiNewtonMethod
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresourceimpl Debug for QuasiNewtonMethod
impl Debug for QuasiNewtonMethod
sourceimpl Display for QuasiNewtonMethod
impl Display for QuasiNewtonMethod
sourceimpl PartialEq<QuasiNewtonMethod> for QuasiNewtonMethod
impl PartialEq<QuasiNewtonMethod> for QuasiNewtonMethod
sourcefn eq(&self, other: &QuasiNewtonMethod) -> bool
fn eq(&self, other: &QuasiNewtonMethod) -> bool
impl Copy for QuasiNewtonMethod
impl StructuralPartialEq for QuasiNewtonMethod
Auto Trait Implementations
impl RefUnwindSafe for QuasiNewtonMethod
impl Send for QuasiNewtonMethod
impl Sync for QuasiNewtonMethod
impl Unpin for QuasiNewtonMethod
impl UnwindSafe for QuasiNewtonMethod
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self
from the equivalent element of its
superset. Read morefn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self
is actually part of its subset T
(and can be converted to it).fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset
but without any property checks. Always succeeds.fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self
to the equivalent element of its superset.