simple/
simple.rs

1extern crate ndarray;
2extern crate optimize;
3
4use ndarray::prelude::*;
5
6use optimize::{Minimizer, NelderMeadBuilder};
7
8pub fn main() {
9    let function =
10        |x: ArrayView1<f64>| (1.0 - x[0]).powi(2) + 100.0 * (x[1] - x[0].powi(2)).powi(2);
11    let minimizer = NelderMeadBuilder::default()
12        .xtol(1e-6f64)
13        .ftol(1e-6f64)
14        .maxiter(50000) 
15        .build()
16        .unwrap();
17    let args = Array::from_vec(vec![3.0, -8.3]);
18    let ans = minimizer.minimize(&function, args.view());
19    println!("Final optimized arguments: {}", ans);
20}