MATLAB Answers

Test step sizes and parameter scaling for LSQNONLIN (and the Levenberg Marquardt algorithm)

조회 수: 24(최근 30일)
Kevin Moerman
Kevin Moerman 12 Jan 2015
답변: Alan Weiss 12 Jan 2015
I have a multi-parameter and multi-objective optimisation problem for which I am trying to use LSQNONLIN.
1) On its initial iterations it appears that LSQNONLIN attempts to vary the parameters by as little as 1e-8. Is this correct? E.g. for parameters [1 1 1] it will investigate [1+1e-8 1 1] and then [1 1+1e-8 1} etc. For my problem these step-sizes hardly make a difference, thus wasting a lot of time, or causing it to make a poor initial evaluation. Is there any way to increase/control this step size?
2) What is the best way to scale the parameters. In my case I have parameters having an effect like p1*x^p2 so p1 has a linear effect while p2 causes a lot of non-linearity. At the moment I was scaling the parameters to all equal 1 i.e. normalize them. However in reality they are actually say p1=1e-4 and p2=12.
3) If I normalize the initial parameter set P by dividing by P itself I obtain ones (provided the initial set does not contain zeros). If I instead divide by (P*10) or (P*100) or (P*1000) I am effectively increasing the effect of the small step-size 1e-8. Is this a good approach to simply scale the initial parameter set closer to the step-size?

  댓글 수: 0

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

채택된 답변

Alan Weiss
Alan Weiss 12 Jan 2015
The initial perturbations are lsqnonlin attempting to estimate the Jacobian of the objective. You can control the gradient estimation as explained here.
Good luck,
Alan Weiss
MATLAB mathematical toolbox documentation

  댓글 수: 0

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

추가 답변(0개)

Community Treasure Hunt

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

Start Hunting!

Translated by