[][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.

Implementations

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>(&self, func: &F, x_0: &Vector<T>) -> OptimResult<Vector<T>> where
    F: Optim<T>, 
[src]

Minimize function func

Arguments

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

Return

local minimum

Trait Implementations

impl<T: Clone> Clone for LevenbergMarquardt<T>[src]

impl<T: Copy> Copy for LevenbergMarquardt<T>[src]

impl<T: Debug> Debug for LevenbergMarquardt<T>[src]

impl<'de, T> Deserialize<'de> for LevenbergMarquardt<T> where
    T: Deserialize<'de>, 
[src]

impl<T> Serialize for LevenbergMarquardt<T> where
    T: Serialize
[src]

Auto Trait Implementations

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

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

Blanket Implementations

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

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

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

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

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

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

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

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<V, T> VZip<V> for T where
    V: MultiLane<T>,