Does it make sense to scale bounds for 'lsqnonlin'?

5 views (last 30 days)
Igor
Igor on 30 Mar 2016
Commented: Wu Wen on 12 Apr 2017
Hello,
I am wondering if I need to scale the initial guess vector as well as lower and upper bounds when dealing with MATLAB optimizers ("lsqnonlin" is of special interest). In other words, do the bounds have to be normalized, say, in the range [0 1]? Some of the unknown parameters in my optimization problem are several orders higher than the others so I do pre- and postmultiply them by certain numbers so that the ranges for all of the parameters are approximately equal. However, I would like to figure out if that is necessary at all. Does the "lsqnonlin" have a built-in scaling?
Thank you, Igor.

Answers (1)

Wu Wen
Wu Wen on 7 Apr 2017
Hi,
I'm doing something similar. I don't know exactly how the function 'lsqnonlin' works, but I'm gonna do some parametric study to investigate the sensitivity of the optimization to the scaling of the variables . I'm trying to make them close to the output value of the objective function. Please can you tell me if you solved this problem? Thank you.
  2 Comments
Igor
Igor on 8 Apr 2017
Hi,
Thank you for the comment. As you can see, no-one has answered this question so I have no idea what 'lsqnonlin' does under the hood. To be honest, I have not fully investigated whether the results can be greatly improved when scaling the inputs. However, I suspect that when the inputs differ by an order or more, one does have to scale them. In my case, I have already pre-scaled the input vector so that the elements have more or less equal values, so I am not sure if any further improvement can be achieved if restricting the range exactly to [0 .. 1]. I guess the best way to find it out is just running a case.
Please do not hesitate to provide another comment if you get any interesting results when playing with this stuff.
Wu Wen
Wu Wen on 12 Apr 2017
Hello,
I've done a series of optimizations with different scaling coefficients and I've got very different results. Basically you can control the size of the iteration step of the optimization process by using different scaling factors. If the steps are too small then the optimization does not progress much.

Sign in to comment.

Categories

Find more on Get Started with Optimization Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!