3个版本
0.1.2 | 2023年2月1日 |
---|---|
0.1.1 | 2022年4月26日 |
0.1.0 | 2022年4月26日 |
#1185 in 算法
用于2个crate(通过consprob-trained)
9KB
137 行
bfgs
本包包含BFGS算法的实现,BFGS是一种用于最小化凸二次可微函数的算法。
BFGS算法在介绍此包的博客文章中进行了高级别的解释。
在本例中,我们将最小化一个二维函数
extern crate bfgs;
extern crate ndarray;
use ndarray::{Array, Array1};
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])));
}
此项目使用cargo-make进行构建;要构建,请运行cargo make all
。
许可证:MIT/Apache-2.0
lib.rs
:
本包包含BFGS算法的实现,BFGS是一种用于最小化凸二次可微函数的算法。
BFGS算法在介绍此包的博客文章中进行了高级别的解释。
在本例中,我们将最小化一个二维函数
extern crate my_bfgs as bfgs;
extern crate ndarray;
use ndarray::{Array, Array1};
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])));
}
此项目使用cargo-make进行构建;要构建,请运行cargo make all
。
依赖项
~1.5MB
~25K SLoC