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

Visual C++

  1. //NonLinearEquation.h 非线性方程(组)求解函数(方法)声明
  2. // Ver 1.0.0.0
  3. // 版权所有(C) 何渝, 2002
  4. // 最后修改: 2002.5.31.
  5. #ifndef _NONLINEAREQUATION_H
  6. #define _NONLINEAREQUATION_H
  7. #include <comm.h> //公共头文件
  8. #include <math.h> //数学头文件
  9. #include <random.h> //随机数头文件
  10. #include <matrix.h> //模板类matrix标准头文件
  11. #include <LinearEquation.h> //线性方程(组)求解头文件
  12. #include <EigenvalueVector.h> //计算特征值特征向量头文件
  13. //template <class _Ty = float>
  14. //二分法搜索方程f(x)=0在区间[a,b]内的全部实根
  15. template <class _Ty>
  16. inline size_t 
  17. RootHalves(_Ty a, _Ty b, _Ty step, _Ty eps, valarray<_Ty>& x, size_t m);
  18. //牛顿(Newton)法求解非线性方程一个实根
  19. template <class _Ty>
  20. inline int 
  21. RootNewton( _Ty& x, _Ty eps, size_t js);
  22. //埃特金(Aitken)法求解非线性方程一个实根
  23. template <class _Ty>
  24. inline int 
  25. RootAitken(_Ty& x, _Ty eps, size_t js);
  26. //连分式(Fraction)法求解非线性方程一个实根
  27. template <class _Ty>
  28. inline int 
  29. RootFraction(_Ty& x, _Ty eps);
  30. //QR法求代数方程全部根
  31. template <class _Ty, class _Tz>
  32. inline int 
  33. RootQR(valarray<_Ty>& a, valarray<_Tz>& x, _Ty eps, size_t jt);
  34. //牛顿下山(NewtonHillDown)法求解实系数代数方程全部根(实根和复根)
  35. template <class _Ty, class _Tz>
  36. inline int 
  37. RootNewtonHillDown(valarray<_Ty>& a, valarray<_Tz>& cx);
  38. //牛顿下山(NewtonHillDown)法求解复系数代数方程全部根(实根和复根)
  39. //重载RootNewtonHillDown()
  40. template <class _Ty>
  41. inline int 
  42. RootNewtonHillDown(complex<_Ty> a[], valarray< complex<_Ty> >& cx);
  43. //梯度(Gradient)法(最速下降)求解非线性方程组一组实根
  44. template <class _Ty>
  45. inline int 
  46. RootGradient(_Ty eps, valarray<_Ty>& x, size_t js);
  47. //拟牛顿(QuasiNewton)法求解非线性方程组一组实根
  48. template <class _Ty>
  49. inline int 
  50. RootQuasiNewton(_Ty eps, _Ty t, _Ty h, valarray<_Ty>& x, int k);
  51. //非线性方程组最小二乘解的广义逆法
  52. template <class _Ty>
  53. int RootLeastSquareGeneralizedInverse(int m, _Ty eps1, _Ty eps2, 
  54. valarray<_Ty>& x, int ka);
  55. //蒙特卡洛(MonteCarlo)法求解非线性方程f(x)=0的一个实根
  56. //f(x)的自变量为与系数都为实数
  57. template <class _Ty>
  58. inline void 
  59. RootMonteCarloComplex(_Ty& x, _Ty b, int m, _Ty eps);
  60. //蒙特卡洛(MonteCarlo)法求解实(复)函数方程f(x)=0的一个复根
  61. //f(x)的自变量为复数,或自变量与系数都为复数(不能都为实数)
  62. template <class _Tz, class _Ty>
  63. inline void 
  64. RootMonteCarloComplex(_Tz& cxy, _Ty b, int m, _Ty eps);
  65. //蒙特卡洛(MonteCarlo)法求解非线性方程组F(x)=0的一组实根
  66. //f(x)的自变量为与系数都为实数
  67. template <class _Ty>
  68. inline void 
  69. RootMonteCarloGroupReal(valarray<_Ty>& x, _Ty b, int m, _Ty eps);
  70. #include <NonLinearEquation.inl>
  71. #endif //_NONLINEAREQUATION_H