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

Torsten
Torsten 2024년 7월 18일
편집: Torsten 2024년 7월 18일
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 2024년 7월 18일
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 2024년 7월 18일
편집: Torsten 2024년 7월 18일
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.

댓글을 달려면 로그인하십시오.

답변 (0개)

질문:

2024년 7월 18일

편집:

2024년 7월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by