This is the mail archive of the gsl-discuss@sources.redhat.com mailing list for the GSL project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: variable range


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



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]