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