Numerical Calculation Module 数值计算与最优化模块
更多...
#include <bitset>
#include <cstdint>
#include <functional>
#include <vector>
#include "rmvl/core/rmvldef.hpp"
|
using | rm::Ode = std::function<double(double, const std::vector<double> &)> |
| 常微分方程
|
|
using | rm::Odes = std::vector<std::function<double(double, const std::vector<double> &)>> |
| 常微分方程组
|
|
using | rm::Func1d = std::function<double(double)> |
| 一元函数
|
|
using | rm::Func1ds = std::vector<std::function<double(double)>> |
| 一元函数组
|
|
using | rm::FuncNd = std::function<double(const std::vector<double> &)> |
| 多元函数
|
|
using | rm::FuncNds = std::vector<std::function<double(const std::vector<double> &)>> |
| 多元函数组
|
|
|
double | rm::derivative (Func1d func, double x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算一元函数的导数
|
|
std::vector< double > | rm::grad (FuncNd func, const std::vector< double > &x, DiffMode mode=DiffMode::Central, double dx=1e-3) |
| 计算多元函数的梯度
|
|
std::pair< double, double > | rm::region (Func1d func, double x0, double delta=1) |
| 采用进退法确定搜索区间
|
|
std::pair< double, double > | rm::fminbnd (Func1d func, double x1, double x2, const OptimalOptions &options={}) |
| 一维函数最小值搜索
|
|
std::pair< std::vector< double >, double > | rm::fminunc (FuncNd func, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束多维函数的最小值搜索 [4] [8] ,可参考 多维无约束最优化方法
|
|
std::pair< std::vector< double >, double > | rm::fmincon (FuncNd func, const std::vector< double > &x0, FuncNds c, FuncNds ceq, const OptimalOptions &options={}) |
| 有约束多维函数的最小值搜索
|
|
std::vector< double > | rm::lsqnonlin (const FuncNds &funcs, const std::vector< double > &x0, const OptimalOptions &options={}) |
| 无约束非线性最小二乘求解
|
|
Numerical Calculation Module 数值计算与最优化模块
- 作者
- zhaoxi (53539.nosp@m.4140.nosp@m.@qq.c.nosp@m.om)
- 版本
- 1.0
- 日期
- 2024-01-06
- 版权所有
- Copyright 2024 (c), zhaoxi