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