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

Visual C++

  1. // Interpolation.h 插值头文件
  2. // Ver 1.0.0.0
  3. // 版权所有(C)  何渝(HE Yu) 2002
  4. // 最后修改: 2002.5.31.
  5. #ifndef _INTERPOLATION_H //避免多次编译
  6. #define _INTERPOLATION_H
  7. #include <valarray> //数组模板类标准头文件
  8. #include <Matrix.h> //矩阵类头文件
  9. #include <comm.h> //公共头文件
  10. using namespace std; //名字空间
  11. //一元全区间不等距插值
  12. template <class _Ty>
  13. _Ty Interpolation1VariableNotIsometry(valarray<_Ty>& x, 
  14. valarray<_Ty>& y, _Ty t);
  15. //一元全区间等距插值
  16. template <class _Ty>
  17. _Ty Interpolation1VariableIsometry(_Ty x0, _Ty h, valarray<_Ty>& y, _Ty t);
  18. //一元三点不等距插值
  19. template <class _Ty>
  20. _Ty Interpolation1Variable3PointsNotIsometry(valarray<_Ty>& x, 
  21. valarray<_Ty>& y, _Ty t);
  22. //一元三点等距插值
  23. template <class _Ty>
  24. _Ty Interpolation1Variable3PointsIsometry(_Ty x0, _Ty h, 
  25. valarray<_Ty>& y, _Ty t);
  26. //连分式不等距插值
  27. template <class _Ty>
  28. _Ty InterpolationFractionNotIsometry(valarray<_Ty>& x, 
  29. valarray<_Ty>& y, _Ty t);
  30. //连分式等距插值
  31. template <class _Ty>
  32. _Ty InterpolationFractionIsometry(_Ty x0, _Ty h, valarray<_Ty>& y, _Ty t);
  33. //埃尔米特不等距插值
  34. template <class _Ty>
  35. _Ty InterpolationHermiteNotIsometry(valarray<_Ty>& x, 
  36. valarray<_Ty>& y, valarray<_Ty>& dy, _Ty t);
  37. //埃尔米特等距插值
  38. template <class _Ty>
  39. _Ty InterpolationHermiteIsometry(_Ty x0, _Ty h, 
  40. valarray<_Ty>& y, valarray<_Ty>& dy, _Ty t);
  41. //埃特金不等距逐步插值
  42. template <class _Ty>
  43. _Ty InterpolationAitkenNotIsometry(valarray<_Ty>& x, 
  44. valarray<_Ty>& y, _Ty t, _Ty eps);
  45. //埃特金等距逐步插值
  46. template <class _Ty>
  47. _Ty InterpolationAitkenIsometry(_Ty x, _Ty h,  
  48. valarray<_Ty>& y, _Ty t, _Ty eps);
  49. //光滑不等距插值
  50. template <class _Ty>
  51. void InterpolationSmoothNotIsometry(valarray<_Ty>& x, 
  52. valarray<_Ty>& y, int k, _Ty t, valarray<_Ty>& s);
  53. //光滑等距插值
  54. template <class _Ty>
  55. void InterpolationSmoothIsometry(_Ty x, _Ty h, 
  56. valarray<_Ty>& y, int k, _Ty t, valarray<_Ty>& s);
  57. //第一种边界条件的三次样条函数插值、微商与积分
  58. template <class _Ty>
  59. _Ty Interpolation3Spooling1stBoundary(valarray<_Ty>& x, 
  60. valarray<_Ty>& y, valarray<_Ty>& dy, valarray<_Ty>& ddy, 
  61. valarray<_Ty>& t, valarray<_Ty>& z, valarray<_Ty>& dz, 
  62. valarray<_Ty>& ddz);
  63. //第二种边界条件的三次样条函数插值、微商与积分
  64. template <class _Ty>
  65. _Ty Interpolation3Spooling2ndBoundary(valarray<_Ty>& x, 
  66. valarray<_Ty>& y, valarray<_Ty>& dy, valarray<_Ty>& ddy, 
  67. valarray<_Ty>& t, valarray<_Ty>& z, valarray<_Ty>& dz, 
  68. valarray<_Ty>& ddz);
  69. //第三种边界条件的三次样条函数插值、微商与积分
  70. template <class _Ty>
  71. _Ty Interpolation3Spooling3thBoundary(valarray<_Ty>& x, 
  72. valarray<_Ty>& y, valarray<_Ty>& dy, valarray<_Ty>& ddy, 
  73. valarray<_Ty>& t, valarray<_Ty>& z, valarray<_Ty>& dz, 
  74. valarray<_Ty>& ddz);
  75. //二元三点插值
  76. template <class _Ty>
  77. _Ty Interpolation2Variable3Points(valarray<_Ty>& x, valarray<_Ty>& y, 
  78. matrix<_Ty> z, _Ty u, _Ty v);
  79. //二元全区间插值
  80. template <class _Ty>
  81. _Ty Interpolation2VariableWholeInterval(valarray<_Ty>& x, 
  82. valarray<_Ty>& y, matrix<_Ty> z, _Ty u, _Ty v);
  83. #include "Interpolation.inl" //类及相关函数的定义头文件
  84. #endif //_INTERPOLATION_H