[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Help-gsl] Numerical Minimization in multidimensions without derivat
From: |
Gilberto Noronha |
Subject: |
Re: [Help-gsl] Numerical Minimization in multidimensions without derivatives and constraints |
Date: |
Wed, 11 Nov 2015 09:11:14 -0500 |
Hi Philipp,
I did not have this problem before, but keep in mind that:
1) You generally need a decent initial guess, and good "step sizes" (those
are highly dependent on your problem, so I cannot help you with them).
Otherwise, you are more likely to get the simplex stuck (which can happen
even if you do not have constraints).
2) You can try to restart the simplex around the best point (I do not
remember if GSL allows this, but it can help with the type of situation
that you described).
Best,
Gilberto
On Nov 11, 2015 9:02 AM, "Philipp Basler" <address@hidden>
wrote:
> Hi Gilberto, hi Benjamin
>
> @Gilberto : I tried this before, but this lead to the problem of
> artificially created local minima in which the routine ended because you
> compare one legal point (one you don't want to discard) with 3 illegal
> points. Did you have any problems like that in your cases?
>
> @Benjamin : Thanks for the paper, I will read through it and see if it can
> help.
>
> Cheers,
> Philipp
>
>
>
> 2015-11-11 14:57 GMT+01:00 Gilberto Noronha <address@hidden>:
>
>> Hi Philipp,
>>
>> One way to deal with your problem is to make your function return a very
>> large value when the combination of v1, v2 and v3 is not acceptable (where
>> "large" depends on your particular problem).
>> In my experience, this usually works well with the Nelder-Mead method.
>>
>> Regards,
>>
>> Gilberto
>> On Nov 11, 2015 8:43 AM, "Philipp Basler" <address@hidden>
>> wrote:
>>
>>> Hello to all,
>>>
>>> I am using gsl_multimin_fminimizer_nmsimplex2 to minimize a function V (
>>> v1,v2,v3) in those 3 variables v1,v2,v3. The function itself has a few
>>> more
>>> parameters but those are constant during an Minimizationsprocess.
>>> Also I can not calculate any derivatives of this function.
>>> Normally you could just use the nmsimplex2 method to minimize this but I
>>> have a further constraint :
>>> In the process of calculating V(v1,v2,v3) there are two 4x4 real and
>>> symmetric Matrices from whom I need the Eigenvalues, those are calculated
>>> numerically with the Eigen package. All entries of those both Matrices
>>> are
>>> functions of v1,v2 and v3 and therefore the Eigenvalues are too.
>>> Now my constraint: If any of those 8 Eigenvalues is negativ I need to
>>> discard this combination of v1,v2,v3 and it is not allowed to enter my
>>> search for a minimum.
>>>
>>> Is there a way to do this?
>>>
>>> Cheers,
>>> Philipp
>>>
>>
>