类 SmoothStepFactory.SmoothStepFunction

java.lang.Object
org.hipparchus.analysis.polynomials.PolynomialFunction
org.hipparchus.analysis.polynomials.SmoothStepFactory.SmoothStepFunction
所有已实现的接口:
Serializable, UnivariateDifferentiableFunction, FieldUnivariateFunction, UnivariateFunction
直接已知子类:
SmoothStepFactory.QuadraticSmoothStepFunction
封闭类:
SmoothStepFactory

public static class SmoothStepFactory.SmoothStepFunction extends PolynomialFunction
Smoothstep函数的定义见这里

它用于在“左边缘”和“右边缘”之间进行平滑过渡,其中左边缘被假定小于右边缘。

根据定义,对于大于1的阶数n和输入x,平滑步进函数至少满足以下属性:

  • f(x <= leftEdge) = 0,f(x >= rightEdge) = 1
  • f'(leftEdge) = f'(rightEdge) = 0
如果x在边缘之间归一化,则至少有:
  • f(x <= 0) = 0,f(x >= 1) = 1
  • f'(0) = f'(1) = 0
阶数为n的平滑步进函数在边缘处的更高阶时间导数也等于零...
另请参阅:
  • 方法详细资料

    • value

      public double value(double xNormalized)
      计算给定参数在边缘之间归一化时的smoothstep值。
      指定者:
      value 在接口中 UnivariateFunction
      覆盖:
      value 在类中 PolynomialFunction
      参数:
      xNormalized - 应计算函数值的归一化参数。预期在[0:1]之间,否则将抛出异常。
      返回:
      给定点处的多项式值。
      另请参阅:
    • value

      public double value(double leftEdge, double rightEdge, double x) throws MathIllegalArgumentException
      计算给定边缘和参数的smoothstep函数值。

      请注意,右边缘应大于左边缘。否则将抛出异常。

      参数:
      leftEdge - 左边缘
      rightEdge - 右边缘
      x - 应计算函数值的参数
      返回:
      给定点处的多项式值
      抛出:
      MathIllegalArgumentException - 如果右边缘大于左边缘
      另请参阅:
    • checkInputEdges

      protected void checkInputEdges(double leftEdge, double rightEdge)
      检查左边缘是否低于右边缘。否则,抛出异常。
      参数:
      leftEdge - 左边缘
      rightEdge - 右边缘
    • clampInput

      protected double clampInput(double leftEdge, double rightEdge, double x)
      将输入夹在边缘之间。
      参数:
      leftEdge - 左边缘
      rightEdge - 右边缘
      x - 要夹住的输入
      返回:
      夹住的输入
    • normalizeInput

      protected double normalizeInput(double leftEdge, double rightEdge, double x)
      将输入归一化在左右边缘之间。
      参数:
      leftEdge - 左边缘
      rightEdge - 右边缘
      x - 要归一化的输入
      返回:
      归一化的输入