1个不稳定版本
使用旧的Rust 2015
0.1.0 | 2018年8月9日 |
---|
#14 in #最小化
8KB
129 行
bfgs
此包包含BFGS的实现,这是一个用于最小化凸二次可微函数的算法。
在这个示例中,我们最小化一个二维函数
extern crate bfgs;
extern crate ndarray;
use ndarray::prelude::*;
fn main() {
let x0 = Array::from_vec(vec![8.888, 1.234]); // Chosen arbitrarily
let f = |x: &Array1<f64>| x.dot(x);
let g = |x: &Array1<f64>| 2.0 * x;
let x_min = bfgs::bfgs(x0, f, g);
assert_eq!(x_min, Ok(Array::from_vec(vec![0.0, 0.0])));
}
许可证:MIT/Apache-2.0
lib.rs
:
此包包含BFGS的实现,这是一个用于最小化凸二次可微函数的算法。
在这个示例中,我们最小化一个二维函数
extern crate bfgs;
extern crate ndarray;
use ndarray::prelude::*;
fn main() {
let x0 = Array::from_vec(vec![8.888, 1.234]); // Chosen arbitrarily
let f = |x: &Array1<f64>| x.dot(x);
let g = |x: &Array1<f64>| 2.0 * x;
let x_min = bfgs::bfgs(x0, f, g);
assert_eq!(x_min, Ok(Array::from_vec(vec![0.0, 0.0])));
}
依赖项
~2MB
~33K SLoC