类 LeastSquaresConverter

java.lang.Object
org.hipparchus.optim.nonlinear.scalar.LeastSquaresConverter
所有已实现的接口:
MultivariateFunction

public class LeastSquaresConverter extends Object implements MultivariateFunction
This class converts 向量目标函数标量目标函数,当目标是最小化它们时。
当向量目标函数代表从应用于模型的点集计算出的理论结果,且模型点必须调整以将理论结果拟合到某些参考观测时,通常使用此类。观测结果可以例如来自物理测量,无论模型是从理论考虑构建的。
此类计算可能加权的残差平方和,这是一个标量值。残差是理论模型(即向量目标函数的输出)与观测值之间的差异。该类实现了 MultivariateFunction 接口,因此可以被支持标量目标函数的任何优化器最小化。这是执行最小二乘估计的一种方式。还有其他方法可以在不使用此转换器的情况下执行此操作,因为一些优化算法直接支持向量目标函数。
此类支持带权重和相关性的残差组合。
另请参阅:
  • 构造器详细资料

    • LeastSquaresConverter

      public LeastSquaresConverter(MultivariateVectorFunction function, double[] observations)
      构建一个简单的转换器,用于具有相同权重的不相关残差。
      参数:
      function - 要包装的向量残差函数
      observations - 用于与目标函数比较以计算残差的观测值
    • LeastSquaresConverter

      public LeastSquaresConverter(MultivariateVectorFunction function, double[] observations, double[] weights)
      构建一个简单的转换器,用于具有指定权重的不相关残差。

      标量目标函数值计算为:objective = ∑weighti(observationi-objectivei)2

      权重可用于例如结合具有不同标准差的残差。例如,考虑一个残差数组,其中偶数元素是角度测量,标准差为0.01°,奇数元素是距离测量,标准差为15米。在这种情况下,权重数组应初始化为偶数元素中的值1.0/(0.012),奇数元素中的值为1.0/(15.02)(即方差的倒数)。

      由目标函数计算的数组、观测数组和权重数组必须具有一致的大小,否则在计算标量目标时将触发 MathIllegalArgumentException

      参数:
      function - 要包装的向量残差函数
      observations - 用于与目标函数比较以计算残差的观测值
      weights - 应用于残差的权重
      抛出:
      MathIllegalArgumentException - 如果观测向量和权重向量的维度不匹配(仅在调用 value(double[]) 方法时检查目标函数维度)
    • LeastSquaresConverter

      public LeastSquaresConverter(MultivariateVectorFunction function, double[] observations, RealMatrix scale)
      构建一个简单的转换器,用于具有指定权重的相关残差。

      标量目标函数值计算为:objective = yTy,其中 y = scale×(observation-objective)

      由目标函数计算的数组、观测数组和缩放矩阵必须具有一致的大小,否则在计算标量目标时将触发 MathIllegalArgumentException

      参数:
      function - 要包装的向量残差函数
      observations - 用于与目标函数比较以计算残差的观测值
      scale - 缩放矩阵
      抛出:
      MathIllegalArgumentException - 如果观测向量和缩放矩阵的维度不匹配(仅在调用 value(double[]) 方法时检查目标函数维度)
  • 方法详细资料

    • value

      public double value(double[] point)
      计算给定点的函数值。
      指定者:
      value 在接口中 MultivariateFunction
      参数:
      point - 必须评估函数的点
      返回:
      给定点的函数值。