类 AbstractRuleFactory

java.lang.Object
org.hipparchus.analysis.integration.gauss.AbstractRuleFactory
所有已实现的接口:
RuleFactory
直接已知子类:
ConvertingRuleFactory, HermiteRuleFactory, LaguerreRuleFactory, LegendreRuleFactory

public abstract class AbstractRuleFactory extends Object implements RuleFactory
用于确定积分节点及其权重的规则的基类。子类必须实现computeRule方法。
从以下版本开始:
2.0
  • 构造器详细资料

    • AbstractRuleFactory

      public AbstractRuleFactory()
      空构造器。

      这个构造器并非必需,但它可以防止在JDK 18及更高版本中出现不必要的javadoc警告。

      从以下版本开始:
      3.0
  • 方法详细资料

    • getRule

      public Pair<double[],double[]> getRule(int numberOfPoints) throws MathIllegalArgumentException
      获取具有给定积分点数的积分规则的副本。积分点的数量在实际中通常远低于1000,这是为了防止资源耗尽。
      指定者:
      getRule 在接口中 RuleFactory
      参数:
      numberOfPoints - 积分点的数量。
      返回:
      积分规则的副本。
      抛出:
      MathIllegalArgumentException - 如果numberOfPoints < 1
      MathIllegalArgumentException - 如果numberOfPoints > 1000
      MathIllegalArgumentException - 如果规则对的元素长度不相同。
    • computeRule

      protected abstract Pair<double[],double[]> computeRule(int numberOfPoints) throws MathIllegalArgumentException
      计算给定阶数的规则。
      参数:
      numberOfPoints - 要计算规则的阶数。
      返回:
      计算得到的规则。
      抛出:
      MathIllegalArgumentException - 如果对的元素长度不相同。
    • findRoots

      protected double[] findRoots(int n, UnivariateFunction ratioEvaluator)
      计算相关正交多项式的根。

      使用Aberth方法找到根。用于初始化搜索阶数为n的猜测点对于阶数为1和2是固定的,并且从规则n-1的n-1个根中选择(使用两个极端根,加上所有根之间的n-1个中间点)。

      参数:
      n - 要搜索根的数量
      ratioEvaluator - 评估比值Pₙ(x)/Pₙ'(x)的函数
      返回:
      排序后的根数组
    • enforceSymmetry

      protected void enforceSymmetry(double[] roots)
      强制根的对称性。
      参数:
      roots - 要处理的根