[scilab-Users] Academic question

Michaël Baudin michael.baudin at scilab.org
Wed Jan 26 08:13:04 CET 2011


Hi,

Indeed, the Nelder-Mead algorithm is rather slow, as can be expected 
from an algorithm which does not rely on neither the gradient nor the 
Hessian (or any approximation to it).

You can use the optim function to solve your problem. In the optim help 
page :

http://www.scilab.org/product/man/optim.html

search for "Example: Optimizing with numerical derivatives".

The function does not have to be analytic : the only thing that is 
required is that the function can be evaluated.

Of course, the function should be smooth for the function to work better.
  * If f and its gradient are continuous, optim with the quasi-Newton 
and the limited BFGS algorithms should work well (i.e. try the "qn" and 
"cg" options).
  * If f is discontinuous, only Nelder-Mead can work (but is likely to 
have some problems to converge).
  * If f is continous but its gradient is discontinous, you may try the 
"nd" option. It is a special algorithms for functions in this class 
(e.g. min max_i f_i). Lemaréchal is an expert on this topic.

Try it and you will see !

Best regards,

Michaël


Le 25/01/2011 12:38, Carrico, Paul a écrit :
>
> Dear All,
>
> For some times I'm testing Scilab macros for optimization purposes ; 
> "optimization" has to be intended here as an inverse method for 
> fitting parameters (i.e. so that finite element analysis fit test 
> measurements).
>
> I tested basic macros such as fminsearch for unbounded fitting as well 
> as Nelder-Mead one for bracketed parameters fitting. Basically the 
> "cost function" is the normalized Sum of the Square errors SSE from 
> the FEA to the measurements.
>
> In my FEA's the variables can be material parameters, spring 
> stiffness's, damping ratio and so on : the simplex method is well 
> adapted since the former variables are not analytically described in 
> the cost function and since it's not necessary to calculate the 
> gradient vector nor the Hessian matrix ...
>
> If this method is robust nevertheless it remains rather slow !
>
> Is there a way or another macro I can use to reduce the number of 
> loops and the time consuming consequently ?
>
> /_Nota_/: I was thinking in OPTIM macro but from my understanding the 
> cost function need to be twice differentiable at least (for the 
> Gradient and the Hessian ) i.e. analytically link to the parameters 
> ... isn't it ?
>
> Thanks in advance for any advice (for a better understanding)
>
> Paul
>
> --------------------------------------------------------------------------------
>
>
> Le présent mail et ses pièces jointes sont confidentiels et destinés à la personne ou aux personnes visée(s) ci-dessus. Si vous avez reçu cet e-mail par erreur, veuillez contacter immédiatement l'expéditeur et effacer le message de votre système. Toute divulgation, copie ou distribution de cet e-mail est strictement interdite.
>
> This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error, please contact the sender and delete the email from your system. If you are not the named addressee you should not disseminate, distribute or copy this email.
>
>


-- 
Michaël Baudin
Ingénieur de développement
michael.baudin at scilab.org
-------------------------
Consortium Scilab - Digiteo
Domaine de Voluceau - Rocquencourt
B.P. 105 - 78153 Le Chesnay Cedex
Tel. : 01 39 63 56 87 - Fax : 01 39 63 55 94


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.scilab.org/pipermail/users/attachments/20110126/91944f7b/attachment.htm>


More information about the users mailing list