variable range
Fabian Bastin
fabian.bastin@math.fundp.ac.be
Tue Jul 29 11:03:00 GMT 2003
I think that GSL only supports unconstrained optimization for
multidimensional minimization, but in fact I don't use it for this, so I
don't know exactly.
There exists a lot of available routines for constrained problems, see
in particular the NEOS server: http://www-neos.mcs.anl.gov/neos/
If you have only simple constraints such as nonnegativity constraints,
you can use methods relying on projected gradients, or projected
conjugated gradients.
Another way to deal with such constraints is to minimize a sequence of
barrier problems (see for instance the excellent book of Nocedal and
Wright, "Numerical Optimization"). For nonnegativity constraints, you
replace f(x) by
f(x)-\mu <e, log(x)>,
where <.,.> is the dot product, \mu is a strictly positive scalar and e
is a vector having all components set to one. This is the logarithmic
barrier function.
If you start from a positive x, you cannot go to negative values since
the function grows then to infinity.
By letting \mu converging towards zero, you solve problems that become
near to your original problem. For each barrier problem, you can take as
the starting point the solution of the previously solved barrier problem.
Ragards,
Fabian Bastin
Sang-Joon Lee wrote:
> Hi,
>
> In using the GSL "Multidimensional Minimization" algorithms, I would like
> to limit the range of variables. For instance, in a function,
> f(x)=3*(x-4)*(x-4)+2, I would like to make x be a positive real number.
> I would appreciate if you let me know how to do this.
>
> Sincerely yours,
>
> Sang-Joon Lee
>
More information about the Gsl-discuss
mailing list