From: James Allison on
Each component of the optimization vector should be the same order of
magnitude. One scaling approach is to map the original optimization
variable space to one where the lower bound is 0 and the upper bound is
1 for each variable. In many cases a linear transformation works well.
In some cases a nonlinear transformation is required so that the
sensitivity with respect to optimization variables is fairly uniform
over the optimization domain; the optimization algorithm gets stuck if
it's not.

In addition to scaling the variables, it's important that the objective
and constraint functions are scaled appropriately as well. Typical
values of all these functions should be about the same order of
magnitude. In many cases a simple linear scaling is sufficient (divide
or multiply by some number to adjust the magnitudes). An example of an
optimization problem that needs scaling is from structural design.
Suppose you want to minimize deflection of some structure, subject to
stress constraints. Deflection might be on the order of 10^-3 meters,
while stress may be on the order of 10^6 Pa. Deflection should be
multiplied by 10^3, and stress should be multiplied by 10^-6.

If the objective function is ill-conditioned you can also run into
problems. An objective is ill-conditioned if the ratio of the largest
eigenvalue to the smallest eigenvalue of the Hessian (the multivariate
second derivative) is large. What this means is that if you move in some
directions the objective changes quickly, but if you move in other
directions it doesn't move very quickly. This makes an optimization
problem numerically difficult. For a demonstration of this enter bandem
at the MATLAB command prompt and try out the demo (note what happens
with the 'Steepest' method). You can also get more information about
problem condition and scaling from:

http://www-personal.umich.edu/~jtalliso/Teaching/UnconstrainedGeometry.pdf

-James

Martin wrote:
> James Allison <james.allison(a)mathworks.com> wrote in message
> <hmjg1c$knn$1(a)fred.mathworks.com>...
>> Yes, it is hard to provide much guidance without more information
>> about your cost and constraint functions. In addition to Matt's
>> suggestions, you may want to ensure that the optimization variables
>> and objective and constraint functions are scaled appropriately. This
>> may be a numerically ill-conditioned problem. Some problems require
>> even nonlinear scaling to be solvable. You might also want to couple
>> fmincon with a global search algorithm to get a good starting point
>> (latin hypercube, genetic algorithm, etc.).
>>
>> -James
>>
> Thank you very much, both of you guys!
> Yes U0 is probably fairly close to optmimal already but I have tried som
> random vectors aswell and I still dont get any good results=(
>
> "Scaled correctly" - What does this mean, and how do I fix it?
> Ill look in to global search algoritms aswell!
> thank you!