[scilab-Users] optimization : general question

Paul CARRICO paul.carrico at free.fr
Tue Nov 30 21:39:06 CET 2010


Michaël,

 

The calculations run with the code herebelllow 
 nevertheless the parameters
do not remain in the range defined by the brackets nay it leads to FEA
failure !

 

I suppose consequently they are too far from the optimized value isn’t it
(or there’s a problem in my code) è could you confirm ?

 

Regards

 

Paul

 

##################################################################

initial_parameters = [C10 C01]'; // BE CAREFUL : [C10 C01]' = transposed
matrix

 

nm = nmplot_new ();

nm = nmplot_configure(nm,"-numberofvariables",2);      // Number of
variables => C10 & C01

nm = nmplot_configure(nm,"-function",optimization2);

nm = nmplot_configure(nm,"-x0",initial_parameters);    // BE CAREFUL : [C10
C01]' = transposed matrix

nm = nmplot_configure(nm,"-method","box");             // box => brackets
are taken into account

nm = nmplot_configure(nm,"-boundsmin",[0 0]);

nm = nmplot_configure(nm,"-boundsmax",[1 1]);

 

[nm,SSE] = nmplot_function(nm,initial_parameters);

nm = nmplot_configure(nm,"-simplexfn","history.simplex.dat");

 

#################################################################

 

The inital value of the C10 parameters are :

   - C10 = 0.0623844

   - C01 = 0.01

#########################################################

            * C10 = 0.0623844

            * C01 = 0.01

            * SSE = 0.640828

 

Optimization in progress (please wait) ...

#########################################################

            * C10 = 0.0623844

            * C01 = 0.01

-->mode(0);

-->mode(0);

            * SSE = 0.640828

 

#########################################################

            * C10 = 0.0623844

            * C01 = 0.01

-->mode(0);

-->mode(0);

            * SSE = 0.640828

 

#########################################################

            * C10 = 0.0623844

            * C01 = 0.01

            * SSE = 0.640828

 

#########################################################

            * C10 = 1.06238

            * C01 = 0.01

            * SSE = 3097.29

 

#########################################################

            * C10 = 0.0623844

            * C01 = 1.01

            * SSE = 1390.08

 

#########################################################

            * C10 = -1.23762

            * C01 = 1.16

            * SSE = 0.218768

 

#########################################################

            * C10 = 1e-006

            * C01 = 1.16

            * SSE = 1525.15

 

#########################################################

            * C10 = 0.143483

            * C01 = -0.335

            * SSE = 42.4482

 

#########################################################

            * C10 = 0.143483

            * C01 = 1e-006

            * SSE = 23.5783

 

#########################################################

            * C10 = 0.155648

            * C01 = -1.3015

            * SSE = 1807.92

 

#########################################################

            * C10 = 0.129291

            * C01 = -0.648249

            * SSE = 356.971

 

#########################################################

            * C10 = 0.129291

            * C01 = 1e-006

            * SSE = 16.6268

 

#########################################################

            * C10 = 0.0338986

            * C01 = 0.0114998

            * SSE = 0.56774

 

#########################################################

            * C10 = -0.0573523

            * C01 = 0.0247235

            * SSE = 18.4969

 

#########################################################

            * C10 = -0.00460543

            * C01 = 0.0177367

            * SSE = 4.48301

 

#########################################################

            * C10 = 1e-006

            * C01 = 0.0177367

            * SSE = 5.72026

 

#########################################################

            * C10 = 0.110724

            * C01 = 0.00166708

            * SSE = 9.75208

 

#########################################################

            * C10 = 0.0794328

            * C01 = 0.0062085

            * SSE = 2.50334

 

#########################################################

            * C10 = 0.00746278

            * C01 = 0.0166538

            * SSE = 4.02474

 

#########################################################

            * C10 = 0.0278021

            * C01 = 0.0137018

            * SSE = 1.00242

 

#########################################################

            * C10 = 0.0745827

            * C01 = 0.00691242

            * SSE = 1.80759

 

#########################################################

            * C10 = 0.0613621

            * C01 = 0.00883117

            * SSE = 0.494514

 

#########################################################

            * C10 = 0.02845

            * C01 = 0.0103807

            * SSE = 1.18104

 

#########################################################

            * C10 = 0.0380402

            * C01 = 0.0102731

The .dat file is empty - The calculation stops

!--error 4 

Variable non définie: displacement_

 

at line      90 of function ccx_dat_file called by :  

at line      51 of function  called by :  

at line      57 of function optimbase_function called by :  

at line      23 of function _boxlinesearch called by :  

at line     106 of function neldermead_box called by :  

at line       8 of function neldermead_algo called by :  

at line      15 of function neldermead_search called by :  

at line       5 of function nmplot_search called by :  

  nm = nmplot_search(nm);                 // start

at line      33 of exec file called by :    

exec('C:\ETUDE_CALCULIX\ccx_scilab\fitting_procedure2.sce', -1)

 

-->exec('SCI/etc/scilab.quit','errcatch',-1);quit;

 

De : Michaël Baudin [mailto:michael.baudin at scilab.org] 
Envoyé : mardi 30 novembre 2010 14:00
À : users at lists.scilab.org
Cc : Carrico, Paul
Objet : Re: [scilab-Users] optimization : general question

 

Hi,

There is no way to apply bounds to the parameters from the fminsearch
function. This is because the algorithm was mainly designed for
unconstrained optimization. Nevertheless, it is possible to apply them with
the lower level component that the fminsearch function uses, the neldermead
component. This is possible by projecting the parameters on the bounds. This
makes the simple degenerate on the bounds and, if not far away from the
optimum, let the simplex converge on the optimum.

In order to find an example, please look, in Scilab v5.2.2, in the
demonstrations:

? > Scilab Demonstrations > Optimization and simulation > neldermead Box B

This example is based on the problem B from the Box' paper. It is a problem
with 2 bounded parameters (see in attachment). 

In Scilab v5.3, I added some other examples. This includes a simple problem
with bounds and  Rosenbrock's post office problem, an optimization with 3
parameters and linear constraints (see in attachement). The simplest problem
is the following:

  function [ f , index ] = myquad ( x , index )
    f = x(1)^2 + x(2)^2
  endfunction
  rand("seed" , 0)
  x0 = [1.2 1.9].';
  nm = nmplot_new ();
  nm = nmplot_configure(nm,"-numberofvariables",2);
  nm = nmplot_configure(nm,"-function",myquad);
  nm = nmplot_configure(nm,"-x0",x0);
  nm = nmplot_configure(nm,"-method","box");
  nm = nmplot_configure(nm,"-boundsmin",[1 1]);
  nm = nmplot_configure(nm,"-boundsmax",[2 2]);
  nm = nmplot_search(nm);
  xcomp = nmplot_get(nm,"-xopt") // Should be [1 1]
  fcomp = nmplot_get(nm,"-fopt") // Should be 2
  nm = nmplot_destroy(nm);

This example is not provided in the help of neldermead (see bug #7164): I
will fix this in the next release.

Best regards,

Michaël

PS
 <http://bugzilla.scilab.org/show_bug.cgi?id=7164>
http://bugzilla.scilab.org/show_bug.cgi?id=7164

Le 30/11/2010 11:58, Carrico, Paul a écrit : 

Dear all,

 

The purpose of this mail is to benefit from user feedback of Scilab
community ... even if my experience on optimization item is currently rather
limited, this study will significantly increase my own expertise.

 

I'm currently working in linking a FEA code with Scilab to fit parameters
from tests (see attached fig - in red the steps realized in Scilab ) :

- On a single parameter I used with success the fminsearch function (based
on the simplex theory),

- with 2 parameters, the calculated ran ... nevertheless the final result is
physically non applicable (need to bracket one of the values for examples)

 

Does somebody be experienced on such item ? what is the best Scilab function
? Some advices in reading ?

 

Thanks in advance

 

Regards

 

Paul

 

 

cid:image001.jpg at 01CB90CA.2ADE33F0

 

----------------------------------------------------------------------------
----
 
 
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/20101130/bb2fb99a/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 68092 bytes
Desc: not available
URL: <https://lists.scilab.org/pipermail/users/attachments/20101130/bb2fb99a/attachment.jpg>


More information about the users mailing list