类 AbstractRuleFactory
java.lang.Object
org.hipparchus.analysis.integration.gauss.AbstractRuleFactory
- 所有已实现的接口:
-
RuleFactory
用于确定积分节点及其权重的规则的基类。子类必须实现
computeRule
方法。
- 从以下版本开始:
- 2.0
-
构造器概要
-
方法概要
修饰符和类型方法说明protected abstract Pair
<double[], double[]> computeRule
(int numberOfPoints) 计算给定阶数的规则。protected void
enforceSymmetry
(double[] roots) 强制根的对称性。protected double[]
findRoots
(int n, UnivariateFunction ratioEvaluator) 计算相关正交多项式的根。Pair
<double[], double[]> getRule
(int numberOfPoints) 获取具有给定积分点数的积分规则的副本。
-
构造器详细资料
-
AbstractRuleFactory
public AbstractRuleFactory()空构造器。这个构造器并非必需,但它可以防止在JDK 18及更高版本中出现不必要的javadoc警告。
- 从以下版本开始:
- 3.0
-
-
方法详细资料
-
getRule
获取具有给定积分点数的积分规则的副本。积分点的数量在实际中通常远低于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
计算相关正交多项式的根。使用Aberth方法找到根。用于初始化搜索阶数为n的猜测点对于阶数为1和2是固定的,并且从规则n-1的n-1个根中选择(使用两个极端根,加上所有根之间的n-1个中间点)。
- 参数:
-
n
- 要搜索根的数量 -
ratioEvaluator
- 评估比值Pₙ(x)/Pₙ'(x)的函数 - 返回:
- 排序后的根数组
-
enforceSymmetry
protected void enforceSymmetry(double[] roots) 强制根的对称性。- 参数:
-
roots
- 要处理的根
-