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

Visual C++

  1. // Integral.h 数值积分头文件
  2. // Ver 1.0.0.0
  3. // 版权所有(C) 2002
  4. // 版权所有(C) 何渝, 2002
  5. // 最后修改: 2002.5.31.
  6. #ifndef _INTEGRAL_H //避免多次编译
  7. #define _INTEGRAL_H
  8. #include <comm.h> //公共头文件
  9. #include <random.h> //随机算法头文件
  10. #include <valarray> //模板类valarray的标准头文件
  11. using namespace std; //名字空间
  12. //变步长梯形法求积
  13. template <class _Ty>
  14. _Ty IntegralTrapezia(_Ty a, _Ty b, _Ty eps);
  15. //变步长辛卜生法求积
  16. template <class _Ty>
  17. _Ty IntegralSimpson1D(_Ty a, _Ty b, _Ty eps);
  18. //自适应梯形法求积
  19. template <class _Ty>
  20. _Ty IntegralTrapeziaSelfAdapt(_Ty a, _Ty b, _Ty eps, _Ty d);
  21. //龙贝格法求积
  22. template <class _Ty>
  23. _Ty IntegralRomberg(_Ty a, _Ty b, _Ty eps);
  24. //一维连分式法求积
  25. template <class _Ty>
  26. _Ty IntegralFraction1D(_Ty a, _Ty b, _Ty eps);
  27. //高振荡函数法求积
  28. template <class _Ty>
  29. void IntegralSurge(_Ty a, _Ty b, int m, valarray<_Ty>& fa, 
  30. valarray<_Ty>& fb, valarray<_Ty>& s);
  31. //勒让德-高斯法求积
  32. template <class _Ty>
  33. _Ty IntegralLegendreGauss(_Ty a, _Ty b, _Ty eps);
  34. //拉盖尔-高斯法求积
  35. template <class _Ty>
  36. void IntegralLaguerreGauss(_Ty& dValue);
  37. //埃尔米特-高斯法求积
  38. template <class _Ty>
  39. void IntegralHermiteGauss(_Ty& dValue);
  40. //切比雪夫法求积
  41. template <class _Ty>
  42. _Ty IntegralChebyshev(_Ty a, _Ty b, _Ty eps);
  43. //蒙特卡洛法求积
  44. template <class _Ty >
  45. _Ty IntegralMonteCarlo1D(_Ty a, _Ty b);
  46. //二重变步长辛卜生法求积
  47. template <class _Ty>
  48. _Ty IntegralSimpson2D(_Ty a, _Ty b, _Ty eps);
  49. //多重高斯法求积
  50. template <class _Ty >
  51. _Ty IntegralGaussMD(valarray<_Ty>& js);
  52. //二重连分式法求积
  53. template <class _Ty >
  54. _Ty IntegralFraction2D(_Ty a, _Ty b, _Ty eps);
  55. //多重蒙特卡洛法求积
  56. template <class _Ty >
  57. _Ty IntegralMonteCarlo2D(valarray<_Ty>& a, valarray<_Ty>& b);
  58. #include "Integral.inl" //类及相关函数的定义头文件
  59. #endif // _INTEGRAL_H