Extremum.h
上传用户:fxromeo
上传日期:2010-04-08
资源大小:89k
文件大小:2k
开发平台:

Visual C++

  1. // Extremum.h 计算极值函数头文件
  2. // Ver 1.0.0.0
  3. // 版权所有(C) 何渝, 2002
  4. // 最后修改: 2002.9.6.
  5. #ifndef _EXTREMUM_H //避免多次编译
  6. #define _EXTREMUM_H
  7. #include <comm.h> //公共头文件
  8. #include <random.h> //随机数头文件
  9. #include <Matrix.h> //矩阵类及相关函数头文件
  10. #include <valarray> //模板类valarray的标准头文件
  11. using namespace std; //名字空间
  12. //一维极值连分式法
  13. template <class _Ty>
  14. void ExtremumFraction1D(valarray<_Ty>& x, _Ty eps, 
  15. int k, valarray<int>& js);
  16. //n维极值连分式法
  17. template <class _Ty>
  18. void ExtremumFractionND(valarray<_Ty>& x, _Ty eps, 
  19. int k, valarray<int>& js);
  20. //线性规划
  21. template <class _Ty>
  22. int ExtremumLinePrograming(matrix<_Ty>& a, valarray<_Ty>& b, 
  23. valarray<_Ty>& c, valarray<_Ty>& x);
  24. //n维极值单形调优法
  25. template <class _Ty>
  26. int ExtremumSimplexND(_Ty d, _Ty u, _Ty v, valarray<_Ty>& x,  
  27. _Ty eps, int k, matrix<_Ty>& xx, valarray<_Ty>& f);
  28. //n维极值复形调优法
  29. template <class _Ty>
  30. int ExtremumComplexND(int m, valarray<_Ty>& a, valarray<_Ty>& b,
  31. _Ty alpha, _Ty eps, valarray<_Ty>& x, matrix<_Ty>& xx, int k);
  32. //确定1维函数极小值点所在区间
  33. template <class _Ty>
  34. void MinimizerInterval(_Ty& ax, _Ty& bx, _Ty& cx, _Ty& fa, _Ty& fb, _Ty& fc);
  35. //确定1维函数极小值点所在区间(重载)
  36. template <class _Ty>
  37. int MinimizerInterval(_Ty& ax, _Ty& bx, _Ty& cx, int& sign, 
  38. _Ty b, _Ty& fa, _Ty& fb, _Ty& fc);
  39. //1维函数极小值的黄金分割法
  40. template <class _Ty>
  41. _Ty ExtremumGold1D(_Ty ax, _Ty bx, _Ty cx, int sign, _Ty tol, _Ty& xmin);
  42. //1维函数极小值的不用导数布伦特(Brent)法
  43. template <class _Ty>
  44. _Ty ExtremumBrentNonDerivative1D(_Ty ax, _Ty bx, _Ty cx, int sign, 
  45. _Ty tol, _Ty& xmin);
  46. #include "Extremum.inl" //类及相关函数的定义头文件
  47. #endif // _EXTREMUM_H