bundles / scipy 1.17.1 / scipy / optimize / _lsq / common / solve_lsq_trust_region
function
scipy.optimize._lsq.common:solve_lsq_trust_region
Signature
def solve_lsq_trust_region ( n , m , uf , s , V , Delta , initial_alpha = None , rtol = 0.01 , max_iter = 10 ) Summary
Solve a trust-region problem arising in least-squares minimization.
Extended Summary
This function implements a method described by J. J. More [1] and used in MINPACK, but it relies on a single SVD of Jacobian instead of series of Cholesky decompositions. Before running this function, compute: U, s, VT = svd(J, full_matrices=False).
Parameters
n: intNumber of variables.
m: intNumber of residuals.
uf: ndarrayComputed as U.T.dot(f).
s: ndarraySingular values of J.
V: ndarrayTranspose of VT.
Delta: floatRadius of a trust region.
initial_alpha: float, optionalInitial guess for alpha, which might be available from a previous iteration. If None, determined automatically.
rtol: float, optionalStopping tolerance for the root-finding procedure. Namely, the solution
pwill satisfyabs(norm(p) - Delta) < rtol * Delta.max_iter: int, optionalMaximum allowed number of iterations for the root-finding procedure.
Returns
p: ndarray, shape (n,)Found solution of a trust-region problem.
alpha: floatPositive value such that (J.T*J + alpha*I)*p = -J.T*f. Sometimes called Levenberg-Marquardt parameter.
n_iter: intNumber of iterations made by root-finding procedure. Zero means that Gauss-Newton step was selected as the solution.
Aliases
-
scipy.optimize._lsq.common.solve_lsq_trust_region