类 BaseAbstractFieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
java.lang.Object
org.hipparchus.analysis.integration.BaseAbstractFieldUnivariateIntegrator<T>
- 类型参数:
-
T
- 字段元素的类型。
- 所有已实现的接口:
-
FieldUnivariateIntegrator<T>
- 直接已知子类:
-
FieldMidPointIntegrator
,FieldRombergIntegrator
,FieldSimpsonIntegrator
,FieldTrapezoidIntegrator
,IterativeLegendreFieldGaussIntegrator
public abstract class BaseAbstractFieldUnivariateIntegrator<T extends CalculusFieldElement<T>> extends Object implements FieldUnivariateIntegrator<T>
为几个通用函数提供默认实现。
- 从以下版本开始:
- 2.0
-
字段概要
修饰符和类型字段说明static final double
默认绝对精度。static final int
默认最大迭代次数。static final int
默认最小迭代次数。static final double
默认相对精度。protected final Incrementor
迭代次数。 -
构造器概要
限定符构造器说明protected
BaseAbstractFieldUnivariateIntegrator
(Field<T> field, double relativeAccuracy, double absoluteAccuracy) 使用给定精度构造积分器。protected
BaseAbstractFieldUnivariateIntegrator
(Field<T> field, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) 使用给定精度和迭代次数构造积分器。protected
BaseAbstractFieldUnivariateIntegrator
(Field<T> field, int minimalIterationCount, int maximalIterationCount) 使用给定迭代次数构造积分器。 -
方法概要
修饰符和类型方法说明protected T
computeObjectiveValue
(T point) 计算目标函数值。protected abstract T
在派生类中实现实际积分算法的方法。double
获取绝对精度。int
获取积分器上次运行的函数评估次数。getField()
获取函数参数和值所属的字段。int
获取积分器上次运行的迭代次数。protected T
getMax()
获取上限。int
获取迭代次数的上限。protected T
getMin()
获取下限。int
获取迭代次数的最小限制。double
获取相对精度。integrate
(int maxEval, CalculusFieldUnivariateFunction<T> f, T lower, T upper) 在给定区间内积分函数。protected void
setup
(int maxEval, CalculusFieldUnivariateFunction<T> f, T lower, T upper) 准备计算。
-
字段详细资料
-
DEFAULT_ABSOLUTE_ACCURACY
public static final double DEFAULT_ABSOLUTE_ACCURACY默认绝对精度。- 另请参阅:
-
DEFAULT_RELATIVE_ACCURACY
public static final double DEFAULT_RELATIVE_ACCURACY默认相对精度。- 另请参阅:
-
DEFAULT_MIN_ITERATIONS_COUNT
public static final int DEFAULT_MIN_ITERATIONS_COUNT默认最小迭代次数。- 另请参阅:
-
DEFAULT_MAX_ITERATIONS_COUNT
public static final int DEFAULT_MAX_ITERATIONS_COUNT默认最大迭代次数。- 另请参阅:
-
iterations
迭代次数。
-
-
构造器详细资料
-
BaseAbstractFieldUnivariateIntegrator
protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, double relativeAccuracy, double absoluteAccuracy, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException 使用给定精度和迭代次数构造积分器。各个参数的含义如下:
- 相对精度: 当由于较大的值或短尾数长度而无法达到绝对精度时,将停止迭代。如果这应该是收敛的主要标准而不是安全措施,请将绝对精度设置为一个极小的值,如
Precision.SAFE_MIN
。 - 绝对精度: 通常选择默认值,以便在区间-10..-0.1和+0.1..+10中可以找到合理精度的结果。如果您的结果的预期绝对值数量级要小得多,请将其设置为较小的值。
- 最小迭代次数: 需要最小迭代次数以避免错误的早期收敛,例如,样本点恰好是函数的零点。用户可以使用默认值或选择他们认为合适的值。
- 最大迭代次数: 通常,高迭代次数表示收敛问题。然而,对于不同的算法,“合理值”差异很大。建议用户使用算法提供的默认值。
- 参数:
-
field
- 函数参数和值所属的字段 -
relativeAccuracy
- 结果的相对精度 -
absoluteAccuracy
- 结果的绝对精度 -
minimalIterationCount
- 最小迭代次数 -
maximalIterationCount
- 最大迭代次数 - 抛出:
-
MathIllegalArgumentException
- 如果最小迭代次数不严格为正 -
MathIllegalArgumentException
- 如果最大迭代次数小于或等于最小迭代次数
- 相对精度: 当由于较大的值或短尾数长度而无法达到绝对精度时,将停止迭代。如果这应该是收敛的主要标准而不是安全措施,请将绝对精度设置为一个极小的值,如
-
BaseAbstractFieldUnivariateIntegrator
protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, double relativeAccuracy, double absoluteAccuracy) 使用给定精度构造积分器。- 参数:
-
field
- 函数参数和值所属的字段 -
relativeAccuracy
- 结果的相对精度 -
absoluteAccuracy
- 结果的绝对精度
-
BaseAbstractFieldUnivariateIntegrator
protected BaseAbstractFieldUnivariateIntegrator(Field<T> field, int minimalIterationCount, int maximalIterationCount) throws MathIllegalArgumentException 使用给定迭代次数构造积分器。- 参数:
-
field
- 函数参数和值所属的字段 -
minimalIterationCount
- 最小迭代次数 -
maximalIterationCount
- 最大迭代次数 - 抛出:
-
MathIllegalArgumentException
- 如果最小迭代次数不严格为正 -
MathIllegalArgumentException
- 如果最大迭代次数小于或等于最小迭代次数
-
-
方法详细资料
-
getField
获取函数参数和值所属的字段。- 返回:
- 函数参数和值所属的字段
-
getRelativeAccuracy
public double getRelativeAccuracy()获取相对精度。- 指定者:
-
getRelativeAccuracy
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 精度
-
getAbsoluteAccuracy
public double getAbsoluteAccuracy()获取绝对精度。- 指定者:
-
getAbsoluteAccuracy
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 精度
-
getMinimalIterationCount
public int getMinimalIterationCount()获取迭代次数的最小限制。- 指定者:
-
getMinimalIterationCount
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 实际最小限制
-
getMaximalIterationCount
public int getMaximalIterationCount()获取迭代次数的上限。- 指定者:
-
getMaximalIterationCount
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 实际上限
-
getEvaluations
public int getEvaluations()获取积分器上次运行的函数评估次数。- 指定者:
-
getEvaluations
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 函数评估次数
-
getIterations
public int getIterations()获取积分器上次运行的迭代次数。- 指定者:
-
getIterations
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 返回:
- 迭代次数
-
getMin
获取下限。- 返回:
- 下限。
-
getMax
获取上限。- 返回:
- 上限。
-
computeObjectiveValue
计算目标函数值。- 参数:
-
point
- 必须评估目标函数的点。 - 返回:
- 指定点处的目标函数值。
- 抛出:
-
MathIllegalStateException
- 如果超过最大函数评估次数。
-
setup
protected void setup(int maxEval, CalculusFieldUnivariateFunction<T> f, T lower, T upper) throws MathIllegalArgumentException, NullArgumentException 准备计算。如果子类重写任何solve
方法,必须调用此方法。- 参数:
-
maxEval
- 最大评估次数。 -
f
- 被积函数 -
lower
- 区间的最小边界 -
upper
- 区间的最大边界 - 抛出:
-
NullArgumentException
- 如果f
为null
。 -
MathIllegalArgumentException
- 如果min >= max
。
-
integrate
public T integrate(int maxEval, CalculusFieldUnivariateFunction<T> f, T lower, T upper) throws MathIllegalArgumentException, MathIllegalStateException, NullArgumentException 在给定区间内对函数进行积分。- 指定者:
-
integrate
在接口中FieldUnivariateIntegrator<T extends CalculusFieldElement<T>>
- 参数:
-
maxEval
- 最大评估次数。 -
f
- 被积函数 -
lower
- 区间的下限 -
upper
- 区间的上限 - 返回:
- 积分值
- 抛出:
-
MathIllegalArgumentException
- 如果min > max
或端点不满足积分器指定的要求 -
MathIllegalStateException
- 如果超过最大函数评估次数 -
MathIllegalStateException
- 如果超过最大迭代次数或积分器检测到收敛问题 -
NullArgumentException
- 如果f
为null
。
-
doIntegrate
在派生类中实现实际积分算法的方法。- 返回:
- 根。
- 抛出:
-
MathIllegalStateException
- 如果超过最大评估次数。 -
MathIllegalStateException
- 如果超过最大迭代次数或积分器检测到收敛问题
-