[][src]Struct mathru::optimization::LevenbergMarquardt

pub struct LevenbergMarquardt<T> { /* fields omitted */ }

Levenberg-Marquardt method

input: $f \colon \mathbb{R}^{n} \to \mathbb{R}$ with initial approximation $x_{0} \in \mathbb{R}^{n}$

output: $x_{k}$

  1. Initialization: 0 \leq \rho^{-} < \rho^{+} \leq 1, set $k := 0$
  2. Solve the equation
  3. $\rho = \frac{\lvert \lvert f(x_{k}) \rvert \rvert_{2}^{2} - \lvert \lvert f(x_{k+1}) \rvert \rvert_{2}^{2}}{2d_{k}^{T}(f^{'}(x_{k}) )^T f(x_{k})}$
  4. if $\rho_{k} > \rho^{-} $ than $ x_{k + 1} := x_{k} + d_{k}$, else $\Delta_{k + 1} := \Delta_{k}/2$ and go to 2.
  5. if $\rho_{k} > \rho^{+} $ than $ \Delta_{k + 1} := 2\Delta_{k}$, else $\Delta_{k + 1} := \Delta_{k}$
  6. set $k:= k + 1$, go to 2.

Methods

impl<T> LevenbergMarquardt<T>[src]

pub fn new(iters: u64, rho_minus: T, rho_plus: T) -> LevenbergMarquardt<T>[src]

impl<T> LevenbergMarquardt<T> where
    T: Real
[src]

pub fn minimize<F: Jacobian<T>>(
    &self,
    func: &F,
    x_0: &Vector<T>
) -> OptimResult<Vector<T>>
[src]

Minimize function func

Arguments

  • 'func0': Function to be minimized
  • 'x_0': Initial guess for the minimum

Return

local minimum

Auto Trait Implementations

impl<T> Send for LevenbergMarquardt<T> where
    T: Send

impl<T> Sync for LevenbergMarquardt<T> where
    T: Sync

impl<T> Unpin for LevenbergMarquardt<T> where
    T: Unpin

impl<T> UnwindSafe for LevenbergMarquardt<T> where
    T: UnwindSafe

impl<T> RefUnwindSafe for LevenbergMarquardt<T> where
    T: RefUnwindSafe

Blanket Implementations

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> From<T> for T[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,