minimize_scalar

Function minimize_scalar 

Source
pub fn minimize_scalar<F>(
    fun: F,
    bounds: Option<(f64, f64)>,
    method: Method,
    options: Option<Options>,
) -> Result<ScalarOptimizeResult, OptimizeError>
where F: Fn(f64) -> f64,
Expand description

Main minimize scalar function

Minimization of scalar function of one variable.

§Arguments

  • fun - The objective function to be minimized
  • bounds - Optional bounds as (lower, upper) tuple
  • method - Optimization method to use
  • options - Optional algorithm options

§Returns

Returns a ScalarOptimizeResult containing the optimization result.

§Examples

use scirs2_optimize::scalar::{minimize_scalar, Method};

fn f(x: f64) -> f64 {
    (x - 2.0) * x * (x + 2.0).powi(2)
}

// Using the Brent method
let result = minimize_scalar(f, None, Method::Brent, None)?;
println!("Minimum at x = {}", result.x);
println!("Function value = {}", result.fun);

// Using the bounded method
let bounds = Some((-3.0, -1.0));
let result = minimize_scalar(f, bounds, Method::Bounded, None)?;
println!("Bounded minimum at x = {}", result.x);