Skip to content

Latest commit

 

History

22 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

通用NelderMead解算器

NelderMead方法是一种求解函数最值的数值方法,除了目标函数和启动参数外,不需要额外的参数。

使用方法

使用结算只需要在项目中添加头文件(只有头文件)

neldermead.h

命名空间

using namespace gnms;
gnms::Vector<...>

初始化一个1维float数据向量

gnms::Vector<1,float> v;
v[0]=1.0f;

初始化一个3维float数据向量

gnms::Vector<3,float> v;
v[0]=1.0f;
v[1]=1.0f;
v[2]=1.0f;

初始化一个N维float数据向量

gnms::Vector<N,float> v;
v[0]=1.0f;
v[1]=1.0f;
v[2]=1.0f;
...
v[N-1]=1.0f;

还可以使用内置类型版本

gnms::Vectorf<3> v;//float 类型
gnms::Vectord<3> v;//double 类型
gnms::Vectori<3> v;//int 类型

创建启动数据,以一维数据为例

gnms::Vector<1,float> v1;
gnms::Vector<1,float> v2;
std::vector<gnms::Vector<1,float>> inits;
inits.push_back(v1);inits.push_back(v2);inits.push_back(v3);

计算最小值

float r=gnms::NelderMeadSolver<1, float, float>::evaluate(ret,startVecs,[&](const Vector<1,float>& n)->float{return n[0]*n[0];},500,0.001f);

还可以使用内置类型版本

gnms::NelderMeadSolverf(...);//float类型
gnms::NelderMeadSolverd(...);//double类型
gnms::NelderMeadSolveri(...);//int类型

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages