#优化 #科学 #非线性方程

gomez

数学优化和求解非线性方程组的框架和实现

9个不稳定版本 (4个破坏性更新)

0.5.0 2023年11月22日
0.4.1 2023年5月15日
0.3.2 2023年4月28日
0.3.1 2022年5月8日
0.1.0 2021年12月20日

#526 in 数学

每月30次下载

MIT许可证

175KB
3.5K SLoC

gomez

Build License Cargo Documentation

gomez是一个用于数学优化和求解非线性方程组的框架和实现。

该库完全用Rust编写。它的重点是解决实际问题,并具有简单易用的API以及灵活应对复杂情况的API。其名称代表全局优化与非线性和方程求解(GOMEZ),其中包含一些错别字。

实际问题

主要目标是解决实际问题。以下功能体现了这一点:

  • 无导数。没有算法需要解析导数(梯度、海森矩阵、雅可比矩阵)。使用导数的算法使用有限差分法进行近似1
  • 约束支持。可以指定问题域的约束2,这对于许多工程应用是必要的。
  • 非原始实现。代码不是直接将教科书伪代码翻译成代码。它是编写时考虑性能,并应用数值数学的重要技术。它还试图处理实际中出现但损害方法的情况。

1 计划提供覆盖这种近似方法以使用真实导数的方法。

2 目前,仅支持无约束和箱型边界域。

算法

  • 信任域 – 建议用作默认方法,它将在大多数情况下正常工作。
  • LIPO – 全局优化算法,用于与数值算法结合搜索良好的初始猜测。
  • Steffensen – 解决一维方程组的快速轻量级方法。
  • Nelder-Mead – 不使用任何导数的不动点搜索优化方法。

将来还将扩展此列表。但与此同时,尽可能多地拥有算法不是目标。相反,重点是提供经过实战检验的方法的优质实现。

路线图

以下列表不是按优先顺序排列。

  • 同伦延拓方法 以比较与信任域方法的性能
  • 共轭梯度方法
  • 实验各种全局优化技术以搜索初始猜测
    • 进化/自然启发式算法
    • 贝叶斯优化
  • 重点关注初始猜测的搜索和分析工具

许可证

本软件基于MIT许可证

存在gsl-wrappergsl-sys这两个crate,其许可证与GPLv3一致,与GSL本身一致。这段代码是仓库的一部分,但不是gomez库的一部分。其目的是仅在基准测试中进行比较。

依赖项

~3.5MB
~77K SLoC