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}