NonlinearEvenFunc.cs 980 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. namespace Island.StandardLib.Math
  6. {
  7. /// <summary>
  8. /// 提供一个参数化的非线性偶函数拟合
  9. /// </summary>
  10. public class NonlinearEvenFunc
  11. {
  12. /// <summary>
  13. /// 峰高度 (x->0)
  14. /// </summary>
  15. public float Peak { get; set; }
  16. /// <summary>
  17. /// 标准高度 (x->inf)
  18. /// </summary>
  19. public float Standard { get; set; }
  20. /// <summary>
  21. /// 峰的平均变化速度
  22. /// </summary>
  23. public float AvgSpeed { get; set; }
  24. public NonlinearEvenFunc(float peak, float standard, float avgspeed)
  25. {
  26. Peak = peak;
  27. Standard = standard;
  28. AvgSpeed = avgspeed;
  29. }
  30. public float f(float inputx)
  31. {
  32. return (Peak - Standard) / ((inputx * AvgSpeed) * (inputx * AvgSpeed) + 1) + Standard;
  33. }
  34. }
  35. }