接口 CalculusFieldUnivariateFunction<T extends CalculusFieldElement<T>>

类型参数:
T - 字段元素的类型
所有已知实现类:
FieldPolynomialFunction, FieldPolynomialSplineFunction, SmoothStepFactory.FieldSmoothStepFunction

public interface CalculusFieldUnivariateFunction<T extends CalculusFieldElement<T>>
代表一元实函数的接口。

当一个用户定义的函数在评估过程中遇到错误时,value方法应该抛出一个用户定义的未经检查的异常。

以下代码摘录展示了使用根求解器作为示例执行此操作的推荐方式,但相同的结构也适用于ODE积分器或优化器。

 private static class LocalException extends RuntimeException {
     // 引起问题的x值。
     private final SomeFieldType x;

     public LocalException(SomeFieldType x) {
         this.x = x;
     }

     public double getX() {
         return x;
     }
 }

 private static class MyFunction implements FieldUnivariateFunction<SomeFieldType> {
     public SomeFieldType value(SomeFieldType x) {
         SomeFieldType 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不会捕获它。

另请参阅:
  • 方法概要

    修饰符和类型
    方法
    说明
    T
    value(T x)
    计算函数的值。
  • 方法详细资料

    • value

      T value(T x)
      计算函数的值。
      参数:
      x - 应计算函数值的点。
      返回:
      函数的值。
      抛出:
      IllegalArgumentException - 当激活方法本身可以确定在激活方法级别表达的API中指定的前提条件已被违反时。当Hipparchus抛出IllegalArgumentException时,通常是由于检查传递给方法的实际参数。