RMVL  2.1.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
numcal.hpp 文件参考

Numerical Calculation Module 数值计算与最优化模块 更多...

#include <bitset>
#include <cstdint>
#include <functional>
#include <vector>
#include "rmvl/core/rmvldef.hpp"
numcal.hpp 的引用(Include)关系图:
此图展示该文件被哪些文件直接或间接地引用了:

class  rm::Polynomial
 N 次多项式 更多...
 
class  rm::Interpolator
 函数插值器 更多...
 
class  rm::CurveFitter
 曲线拟合器 更多...
 
class  rm::NonlinearSolver
 非线性方程求解器 更多...
 
class  rm::RungeKutta
 Butcher 表形式的常微分方程(组)数值求解器 更多...
 
class  rm::RungeKutta2
 2 阶 2 级 Runge-Kutta 求解器 更多...
 
class  rm::RungeKutta3
 3 阶 3 级 Runge-Kutta 求解器 更多...
 
class  rm::RungeKutta4
 4 阶 4 级 Runge-Kutta 求解器 更多...
 
struct  rm::OptimalOptions
 无约束多维函数优化选项 更多...
 

命名空间

namespace  rm
 

类型定义

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> &)>>
 多元函数组
 

枚举

enum class  rm::DiffMode : uint8_t { rm::DiffMode::Central , rm::DiffMode::Ridders }
 梯度/导数计算模式 更多...
 
enum class  rm::FminMode : uint8_t { rm::FminMode::ConjGrad , rm::FminMode::Simplex }
 多维函数最优化模式 更多...
 
enum class  rm::LsqMode : uint8_t { rm::LsqMode::GN , rm::LsqMode::LM }
 最小二乘求解模式 更多...
 

函数

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