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 个评论

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.
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 个)

类别

帮助中心File Exchange 中查找有关 Optimization 的更多信息

提问:

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