24#include "AstMath/UnaryOptimizer.hpp"
35 using UnaryOptimizer::UnaryOptimizer;
38 using UnaryOptimizer::solve;
39 errc_t
solve(
UnaryScalarFunc& func,
double min,
double max,
double& result,
double* funcValue =
nullptr)
override;
54template<
typename Func>
56 double* funcValue =
nullptr,
57 double absTol = kDefaultAbsTol,
double relTol = kDefaultRelTol,
58 int maxIter = kDefaultMaxIter)
61 return solver.
solve(func, min, max, result, funcValue);
74AST_MATH_API errc_t aGoldenSectionMinimize(UnaryScalarFunc& func,
double min,
double max,
double& result,
75 double* funcValue =
nullptr,
76 double absTol = kDefaultAbsTol,
double relTol = kDefaultRelTol,
77 int maxIter = kDefaultMaxIter);
黄金分割法求解器
定义 GoldenSectionOptimizer.hpp:33
errc_t solve(UnaryScalarFunc &func, double min, double max, double &result, double *funcValue=nullptr) override
求解一元函数在区间内的极小值点
定义 GoldenSectionOptimizer.cpp:38
一元函数极小值求解器基类
定义 UnaryOptimizer.hpp:53
std::enable_if<!std::is_base_of< UnaryScalarFunc, typenamestd::remove_pointer< Func >::type >::value, errc_t >::type solve(Func func, double min, double max, double &result, double *funcValue=nullptr)
求解一元函数极小值点(支持lambda函数)
定义 UnaryOptimizer.hpp:96
一元标量值函数
定义 UnaryScalarFunc.hpp:31
errc_t aGoldenSectionMinimize(UnaryScalarFunc &func, double min, double max, double &result, double *funcValue, double absTol, double relTol, int maxIter)
黄金分割法自由函数:寻找一元函数在 [min, max] 内的极小值点
定义 GoldenSectionOptimizer.cpp:95