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 Comments

Torsten
Torsten on 18 Jul 2024
Edited: Torsten on 18 Jul 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.
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 on 18 Jul 2024
Edited: Torsten on 18 Jul 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.

Sign in to comment.

Answers (0)

Asked:

on 18 Jul 2024

Edited:

on 18 Jul 2024

Community Treasure Hunt

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

Start Hunting!