What norm StepTolerance uses for multivariable?

I want to define a StepTolerance for the lsqnonlin with 'trust-region-reflective'algorithm to solve a system of 4 variables, so X has dimension 4x1.
The documention Tolerance Details says that this algorithm uses a Absolute Step Tolerance.
"StepTolerance is a lower bound on the size of a step, meaning the norm of (xi – xi+1). If the solver attempts to take a step that is smaller than StepTolerance, the iterations end."
Is this norm the same of function norm, the Euclidean norm?

3 commentaires

Torsten
Torsten le 18 Juil 2024
Modifié(e) : Torsten le 18 Juil 2024
I'm not sure which special norm is taken to compare xi to xi+1 in the estimate
|(xixi+1)| < StepTolerance*(1 + |xi|)
but it doesn't really matter. The available norms in MATLAB are all equivalent.
But my guess is that it's the Euclidean norm.
Marcus
Marcus le 18 Juil 2024
Hi Torsten,
I'm trying to compare the lsqnonlin solver with a home made algorithm.
So, using the same stop criteria is important.
Torsten
Torsten le 18 Juil 2024
Modifié(e) : Torsten le 18 Juil 2024
In this case, to get full control, you'd stop the iteration on your own by using the OutputFnc function. Here, you can save the convergence history of the solver and thus compare the most recent iterate x_i+1 with the previous ones x_j for j <= i during the computational process.

Connectez-vous pour commenter.

Réponses (0)

Question posée :

le 18 Juil 2024

Modifié(e) :

le 18 Juil 2024

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by