类 LevenbergMarquardtOptimizer
java.lang.Object
org.hipparchus.optim.nonlinear.vector.leastsquares.LevenbergMarquardtOptimizer
- 所有已实现的接口:
-
LeastSquaresOptimizer
该类使用Levenberg-Marquardt算法解决最小二乘问题。
该实现即使对于超定系统(即点数多于方程数的系统)也应该有效。超定系统通过忽略对雅可比列的影响最小的点来解决。仅更改矩阵的秩和一些循环边界以实现此目的。
解决引擎是MINPACK lmder例程的简单转换,其中包括超定解决方案、继承的收敛检查器的使用以及QR分解,后者根据P. Lascaux和R. Theodor的书Analyse numérique matricielle appliquée à l'art de l'ingénieur中描述的算法进行了重写,该书于1986年由Masson出版。
原始Fortran版本的作者是:
- Argonne National Laboratory. MINPACK项目。1980年3月
- Burton S. Garbow
- Kenneth E. Hillstrom
- Jorge J. More
MINPACK的再分发政策可在此处找到,为方便起见,下面是再现的版权声明。
Minpack版权声明(1999年)芝加哥大学。保留所有权利
允许在源代码和二进制形式中重新分发和使用,无论是否经过修改,只要满足以下条件:
- 源代码的再分发必须保留上述版权声明、此条件列表和以下免责声明。
- 以二进制形式再分发时,必须在文档和/或其他提供的材料中复制上述版权声明、此条件列表和以下免责声明。
- 随再分发的最终用户文档(如果有)必须包括以下声明:
本产品包括由芝加哥大学作为Argonne国家实验室的运营商开发的软件。
或者,如果适用,此声明可以出现在软件本身中,无论在何处通常出现第三方声明。- 担保免责声明。本软件按原样提供,不附带任何形式的担保。版权持有人、美国、美国能源部及其雇员:(1)不声明任何担保,明示或暗示,包括但不限于对适销性、特定用途适用性、所有权或非侵权的任何暗示担保,(2)不承担任何法律责任或责任,对于软件的准确性、完整性或有用性,(3)不保证使用软件不会侵犯私人所有权权利,(4)不保证软件将无中断地运行,不含错误或任何错误将被纠正。
- 责任限制。在任何情况下,版权持有人、美国、美国能源部或其雇员:不对任何间接、附带、后果性、特殊或惩罚性的任何种类或性质的损害承担责任,包括但不限于利润损失或数据损失,无论出于任何原因,无论此类责任是基于合同、侵权(包括疏忽或严格责任)还是其他方面主张的,即使已经警告过可能发生此类损失或损害。
-
嵌套类概要
从接口继承的嵌套类/接口 org.hipparchus.optim.nonlinear.vector.leastsquares.LeastSquaresOptimizer
LeastSquaresOptimizer.Optimum
-
构造器概要
构造器说明默认构造函数。LevenbergMarquardtOptimizer
(double initialStepBoundFactor, double costRelativeTolerance, double parRelativeTolerance, double orthoTolerance, double qrRankingThreshold) 使用指定的所有参数构造一个实例。 -
方法概要
修饰符和类型方法说明double
获取调整参数的值。double
获取调整参数的值。double
获取调整参数的值。double
获取调整参数的值。double
获取调整参数的值。optimize
(LeastSquaresProblem problem) 解决非线性最小二乘问题。withCostRelativeTolerance
(double newCostRelativeTolerance) 使用成本相对容差构建新实例。withInitialStepBoundFactor
(double newInitialStepBoundFactor) 使用初始步长边界因子构建新实例。withOrthoTolerance
(double newOrthoTolerance) 使用正交容差构建新实例。withParameterRelativeTolerance
(double newParRelativeTolerance) 使用参数相对容差构建新实例。withRankingThreshold
(double newQRRankingThreshold) 使用排名阈值构建新实例。
-
构造器详细资料
-
LevenbergMarquardtOptimizer
public LevenbergMarquardtOptimizer()默认构造函数。算法设置的默认值为:
- 初始步长边界因子:100
- 成本相对容差:1e-10
- 参数相对容差:1e-10
- 正交容差:1e-10
- QR排名阈值:
Precision.SAFE_MIN
-
LevenbergMarquardtOptimizer
public LevenbergMarquardtOptimizer(double initialStepBoundFactor, double costRelativeTolerance, double parRelativeTolerance, double orthoTolerance, double qrRankingThreshold) 使用指定的所有参数构造一个实例。- 参数:
-
initialStepBoundFactor
- 初始步长边界因子 -
costRelativeTolerance
- 成本相对容差 -
parRelativeTolerance
- 参数相对容差 -
orthoTolerance
- 正交容差 -
qrRankingThreshold
- QR分解中的阈值。列的2范数小于此阈值被视为全为0。
-
-
方法详细资料
-
withInitialStepBoundFactor
使用初始步长边界因子构建新实例。- 参数:
-
newInitialStepBoundFactor
- 用于确定初始步长边界的正输入变量。如果非零,则此边界设置为initialStepBoundFactor和diag * x
的欧几里德范数的乘积,否则设置为newInitialStepBoundFactor
本身。在大多数情况下,因子应该位于区间(0.1, 100.0)
内。一般推荐值为100
。 - 返回:
- 一个新实例。
-
withCostRelativeTolerance
使用成本相对容差构建新实例。- 参数:
-
newCostRelativeTolerance
- 求和平方的期望相对误差。 - 返回:
- 一个新实例。
-
withParameterRelativeTolerance
使用参数相对容差构建新实例。- 参数:
-
newParRelativeTolerance
- 近似解参数的期望相对误差。 - 返回:
- 一个新实例。
-
withOrthoTolerance
使用正交容差构建新实例。- 参数:
-
newOrthoTolerance
- 函数向量与雅可比矩阵列之间正交性的最大余弦值。 - 返回:
- 一个新实例。
-
withRankingThreshold
使用排名阈值构建新实例。- 参数:
-
newQRRankingThreshold
- QR排名的期望阈值。如果在QR分解期间列向量的平方范数小于或等于此阈值,则认为它是零向量,因此矩阵的秩会降低。 - 返回:
- 一个新实例。
-
getInitialStepBoundFactor
public double getInitialStepBoundFactor()获取调整参数的值。- 返回:
- 参数的值。
- 另请参阅:
-
getCostRelativeTolerance
public double getCostRelativeTolerance()获取调整参数的值。- 返回:
- 参数的值。
- 另请参阅:
-
getParameterRelativeTolerance
public double getParameterRelativeTolerance()获取调整参数的值。- 返回:
- 参数的值。
- 另请参阅:
-
getOrthoTolerance
public double getOrthoTolerance()获取调整参数的值。- 返回:
- 参数的值。
- 另请参阅:
-
getRankingThreshold
public double getRankingThreshold()获取调整参数的值。- 返回:
- 参数的值。
- 另请参阅:
-
optimize
解决非线性最小二乘问题。- 指定者:
-
optimize
在接口中LeastSquaresOptimizer
- 参数:
-
problem
- 问题定义,包括模型函数和收敛准则。 - 返回:
- 最优解。
-