接口 UnivariateFunction
- 所有已知子接口:
-
UnivariateDifferentiableFunction
- 所有已知实现类:
-
Abs,Acos,Acosh,Asin,Asinh,Atan,Atanh,BesselJ,Cbrt,Ceil,Constant,Cos,Cosh,Exp,Expm1,Floor,Gaussian,HarmonicOscillator,Identity,Inverse,Log,Log10,Log1p,Logistic,Logit,Minus,MonitoredFunction,PolynomialFunction,PolynomialFunctionLagrangeForm,PolynomialFunctionNewtonForm,PolynomialSplineFunction,Power,QuinticFunction,Rint,Sigmoid,Sin,Sinc,Sinh,SmoothStepFactory.QuadraticSmoothStepFunction,SmoothStepFactory.SmoothStepFunction,Sqrt,StepFunction,Tan,Tanh,Ulp,XMinus5Function
public interface UnivariateFunction
表示一元实函数的接口。
当一个用户定义的函数在评估过程中遇到错误时,value方法应该抛出一个用户定义的未检查异常。
以下代码摘录展示了使用根求解器作为示例时建议的做法,但同样的结构适用于ODE积分器或优化器。
private static class LocalException extends RuntimeException {
// 引起问题的x值。
private final double x;
public LocalException(double x) {
this.x = x;
}
public double getX() {
return x;
}
}
private static class MyFunction implements UnivariateFunction {
public double value(double x) {
double y = hugeFormula(x);
if (somethingBadHappens) {
throw new LocalException(x);
}
return y;
}
}
public void compute() {
try {
solver.solve(maxEval, new MyFunction(a, b, c), min, max);
} catch (LocalException le) {
// 检索x值。
}
}
如所示,异常局限于用户的代码,并且保证Hipparchus不会捕获它。
-
方法概要
-
方法详细资料
-
value
double value(double x) 计算函数的值。- 参数:
-
x- 应计算函数值的点。 - 返回:
- 函数的值。
- 抛出:
-
IllegalArgumentException- 当激活方法本身可以确定在激活方法级别表达的API中指定的前提条件已被违反时。当Hipparchus抛出IllegalArgumentException时,通常是由于检查传递给方法的实际参数而导致的。
-