archimedes.optimize.LMStatus¶
- class archimedes.optimize.LMStatus(*values)¶
Status codes for Levenberg-Marquardt optimization results.
These codes follow the MINPACK convention and provide detailed information about the termination condition of the optimization algorithm. Understanding these codes is essential for interpreting optimization results and diagnosing potential issues.
- FTOL_REACHED¶
Both actual and predicted relative reductions in the objective function are at most
ftol
. This indicates convergence based on minimal improvement in the objective function.- Type:
int = 1
- XTOL_REACHED¶
Relative error between two consecutive parameter iterates is at most
xtol
. This indicates convergence based on minimal change in the parameters.- Type:
int = 2
- BOTH_TOL_REACHED¶
Both
ftol
andxtol
conditions are satisfied simultaneously. This represents the strongest convergence criterion.- Type:
int = 3
- GTOL_REACHED¶
The cosine of the angle between the gradient and any column of the Jacobian is at most
gtol
in absolute value. For constrained problems, this applies to the projected gradient. This indicates convergence to a critical point.- Type:
int = 4
- MAX_FEVAL¶
Maximum number of function evaluations (
max_nfev
) has been reached without achieving convergence. This typically indicates that either more iterations are needed, the tolerances are too tight, or the problem is ill-conditioned.- Type:
int = 5
Notes
- Success vs. Failure:
Status codes 1-4 indicate successful convergence, while code 5 indicates failure to converge within the iteration limit. Use the
success
property to check for overall success.- Interpretation Guide:
FTOL_REACHED: Good for most applications, indicates objective function has stopped improving significantly
XTOL_REACHED: May indicate convergence to a local minimum or numerical precision limits
BOTH_TOL_REACHED: Strongest convergence guarantee
GTOL_REACHED: Gradient-based convergence, good indicator of optimality conditions
MAX_FEVAL: Check if more iterations are needed or if the problem requires reformulation
- __init__(*args, **kwds)¶
Methods
conjugate
Returns self, the complex conjugate of any int.
bit_length
()Number of bits necessary to represent self in binary.
bit_count
()Number of ones in the binary representation of the absolute value of self.
to_bytes
([length, byteorder, signed])Return an array of bytes representing an integer.
from_bytes
(bytes[, byteorder, signed])Return the integer represented by the given array of bytes.
as_integer_ratio
()Return a pair of integers, whose ratio is equal to the original int.
is_integer
()Returns True.
__init__
(*args, **kwds)Attributes
real
the real part of a complex number
imag
the imaginary part of a complex number
numerator
the numerator of a rational number in lowest terms
denominator
the denominator of a rational number in lowest terms
message
Get descriptive message for this status code.
success
Check if this status indicates successful convergence.