summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Bignier <paul.bignier@scilab-enterprises.com>2014-03-21 12:54:00 +0100
committerClément DAVID <clement.david@scilab-enterprises.com>2016-12-08 08:52:27 +0100
commitb799e2066ee21fccf7c51e479982cd8968bda53f (patch)
treeb86a63ad4719bd230da3512bae1fad75e5fa54cd
parent443c8508ef80033ce4abace432647f9aca22de6b (diff)
downloadscilab-b799e2066ee21fccf7c51e479982cd8968bda53f.zip
scilab-b799e2066ee21fccf7c51e479982cd8968bda53f.tar.gz
* Bug #8190 fixed - Optimization: Fixed ICSE demos
Change-Id: Id05ba33f1cc41b66e02d25221d9d17a1204e87ba
-rw-r--r--scilab/CHANGES.md1
-rw-r--r--scilab/modules/optimization/demos/icse/icse.sci2
-rw-r--r--scilab/modules/optimization/demos/icse/icsecontexte.sce (renamed from scilab/modules/optimization/demos/icse/icse.contexte)0
-rw-r--r--scilab/modules/optimization/demos/icse/icsegen.sci23
-rw-r--r--scilab/modules/optimization/demos/icse/icseinit.sce10
-rw-r--r--scilab/modules/optimization/demos/icse/icsenb.f10
-rw-r--r--scilab/modules/optimization/demos/icse/icsez0.f58
-rw-r--r--scilab/modules/optimization/demos/icse/icsua.sci2
-rw-r--r--scilab/modules/optimization/demos/icse/icsuq.sci2
-rw-r--r--scilab/modules/optimization/demos/icse/lqv.sce168
-rw-r--r--scilab/modules/optimization/demos/icse/navet.sce298
-rw-r--r--scilab/modules/optimization/demos/icse/seros.sce181
-rw-r--r--scilab/modules/optimization/demos/optimization.dem.gateway.sce3
13 files changed, 440 insertions, 318 deletions
diff --git a/scilab/CHANGES.md b/scilab/CHANGES.md
index 2791fe8..1ca0cd8 100644
--- a/scilab/CHANGES.md
+++ b/scilab/CHANGES.md
@@ -324,6 +324,7 @@ Bug Fixes
324* [#7794](http://bugzilla.scilab.org/show_bug.cgi?id=7794): Example of findABCD help page failed. 324* [#7794](http://bugzilla.scilab.org/show_bug.cgi?id=7794): Example of findABCD help page failed.
325* [#7958](http://bugzilla.scilab.org/show_bug.cgi?id=7958): `mrfit`did not allow a fourth parameter as shown in the help page. 325* [#7958](http://bugzilla.scilab.org/show_bug.cgi?id=7958): `mrfit`did not allow a fourth parameter as shown in the help page.
326* [#8010](http://bugzilla.scilab.org/show_bug.cgi?id=8010): Permanent variables could be redefined through a syntax like `%i(1,1)=1` 326* [#8010](http://bugzilla.scilab.org/show_bug.cgi?id=8010): Permanent variables could be redefined through a syntax like `%i(1,1)=1`
327* [#8190](http://bugzilla.scilab.org/show_bug.cgi?id=8190): Fixed ICSE demos of Optimization module.
327* [#8356](http://bugzilla.scilab.org/show_bug.cgi?id=8356): `sci2exp` applied to lists, tlists or mlists having undefined fields yielded an error or a wrong result. 328* [#8356](http://bugzilla.scilab.org/show_bug.cgi?id=8356): `sci2exp` applied to lists, tlists or mlists having undefined fields yielded an error or a wrong result.
328* [#8493](http://bugzilla.scilab.org/show_bug.cgi?id=8493): Some trivial simplifications of `p1./p2` with matrices of complex-encoded polynomials were not done. 329* [#8493](http://bugzilla.scilab.org/show_bug.cgi?id=8493): Some trivial simplifications of `p1./p2` with matrices of complex-encoded polynomials were not done.
329* [#8841](http://bugzilla.scilab.org/show_bug.cgi?id=8841): Error in struct extraction, s.a is not equal to s(1).a 330* [#8841](http://bugzilla.scilab.org/show_bug.cgi?id=8841): Error in struct extraction, s.a is not equal to s(1).a
diff --git a/scilab/modules/optimization/demos/icse/icse.sci b/scilab/modules/optimization/demos/icse/icse.sci
index 1198e04..826a960 100644
--- a/scilab/modules/optimization/demos/icse/icse.sci
+++ b/scilab/modules/optimization/demos/icse/icse.sci
@@ -13,7 +13,7 @@ function [co,u,g,itv,dtv]=icse(u,simu,nap,imp)
13 // u(nu) : initial parameters 13 // u(nu) : initial parameters
14 // simu : string containing the name of the sub program which 14 // simu : string containing the name of the sub program which
15 // describes the problem 15 // describes the problem
16 // nap : maximum number of call to the simulator 16 // nap : maximum number of calls to the simulator
17 // imp : debug value during optimization 17 // imp : debug value during optimization
18 // output variables : 18 // output variables :
19 // co : final cost 19 // co : final cost
diff --git a/scilab/modules/optimization/demos/icse/icse.contexte b/scilab/modules/optimization/demos/icse/icsecontexte.sce
index d237f94..d237f94 100644
--- a/scilab/modules/optimization/demos/icse/icse.contexte
+++ b/scilab/modules/optimization/demos/icse/icsecontexte.sce
diff --git a/scilab/modules/optimization/demos/icse/icsegen.sci b/scilab/modules/optimization/demos/icse/icsegen.sci
index 9bc58fe..3667ee3 100644
--- a/scilab/modules/optimization/demos/icse/icsegen.sci
+++ b/scilab/modules/optimization/demos/icse/icsegen.sci
@@ -16,7 +16,7 @@ function [co,u,g,itv,dtv]=icsegen(u,simu,nap,imp,ech,cof)
16 // u(nu) : initial parameters 16 // u(nu) : initial parameters
17 // simu : string which contains the name of the sub program which 17 // simu : string which contains the name of the sub program which
18 // describes the problem (second member, criterion and initial state) 18 // describes the problem (second member, criterion and initial state)
19 // nap : maximum number of call to the simulator 19 // nap : maximum number of calls to the simulator
20 // imp : debug value during optimization 20 // imp : debug value during optimization
21 // ech(1,nu) : scaling coeff of the control 21 // ech(1,nu) : scaling coeff of the control
22 // cof(1,ntob*nob) : weighting coeff of the observations 22 // cof(1,ntob*nob) : weighting coeff of the observations
@@ -34,12 +34,19 @@ function [co,u,g,itv,dtv]=icsegen(u,simu,nap,imp,ech,cof)
34 alg="gc"; 34 alg="gc";
35 end 35 end
36 36
37 itv = itu; 37 nitv = nitu+ny+ntob;
38 itv(nitv) = 0; 38
39 dtv = [dtu,y0,tob,matrix(obs,1,ny*nob),don,ech,cof,b,fy1,fu1]; 39 ldtvt = ny*(nob+nuc+nuv+nti+ntf+ny+3)+ntob*(nob*nex+nob+1)+2*nu+ndtu;
40 dtv(ndtv) = 0; 40 ndtv1 = ldtvt+ny*(ny+7);
41 debug(imp); 41 nui = iu(1)*nuc+iu(2)*nuv*(nti+ntf+1);
42 [co,u,g,itv,dtv] = optim(simu,"b",binf,bsup,u, alg, df0, ... 42 ndtv2 = ldtvt+ny*(2*ntob+nu+2*ny+nuc+nuv+4)+max(nuc+nuv,nui)+nob*ntob+nob;
43 ndtv = max(ndtv1,ndtv2);
44
45 itv = itu;
46 itv($:nitv) = 0;
47 dtv = [dtu,y0,tob,matrix(obs,1,ny*nob),don,ech,cof,b,fy(1,:),fu(1,:)];
48 dtv($:ndtv) = 0;
49
50 [co,u,g,itv,dtv] = optim(simu,"b",binf,bsup, u, alg, df0, ...
43 "ar",nap, "ti",itv,"td",dtv,"si","sd"); 51 "ar",nap, "ti",itv,"td",dtv,"si","sd");
44 debug(0);
45endfunction 52endfunction
diff --git a/scilab/modules/optimization/demos/icse/icseinit.sce b/scilab/modules/optimization/demos/icse/icseinit.sce
index 63c1210..4c0275b 100644
--- a/scilab/modules/optimization/demos/icse/icseinit.sce
+++ b/scilab/modules/optimization/demos/icse/icseinit.sce
@@ -19,14 +19,14 @@ if exists("b")==0 then
19 b = ones(1,ny); 19 b = ones(1,ny);
20end 20end
21if exists("fy")==0 then 21if exists("fy")==0 then
22 fy1 = ones(1,ny*ny); 22 fy = ones(1,ny*ny);
23else 23else
24 fy1 = matrix(fy,1,ny*ny); 24 fy = fy(:)';
25end 25end
26if exists("fu")==0 then 26if exists("fu")==0 then
27 fu1 = ones(1,ny*(nuc+nuv)); 27 fu = ones(1,ny*(nuc+nuv));
28else 28else
29 fu1 = matrix(fu,1,ny*(nuc+nuv)); 29 fu = fu(:)';
30end 30end
31 31
32format("e"); 32format("e");
@@ -48,7 +48,7 @@ end
48clear xx yy; 48clear xx yy;
49 49
50// initialisation du common icsez 50// initialisation du common icsez
51[nitv,nrtv,ndtv]=fort("icse0",nu,1,"i",t0,2,"d",tf,3,"d",dti,4,"d",.. 51[nitv,nrtv,ndtv]=call("icsez0",nu,1,"i",t0,2,"d",tf,3,"d",dti,4,"d",..
52dtf,5,"d",ermx,6,"d",iu,7,"i",nuc,8,"i",nuv,9,"i",ilin,10,"i",nti,.. 52dtf,5,"d",ermx,6,"d",iu,7,"i",nuc,8,"i",nuv,9,"i",ilin,10,"i",nti,..
5311,"i",ntf,12,"i",ny,13,"i",nea,14,"i",itmx,15,"i",nex,16,"i",nob,.. 5311,"i",ntf,12,"i",ny,13,"i",nea,14,"i",itmx,15,"i",nex,16,"i",nob,..
5417,"i",ntob,18,"i",ntobi,19,"i",nitu,20,"i",ndtu,21,"i","sort",.. 5417,"i",ntob,18,"i",ntobi,19,"i",nitu,20,"i",ndtu,21,"i","sort",..
diff --git a/scilab/modules/optimization/demos/icse/icsenb.f b/scilab/modules/optimization/demos/icse/icsenb.f
index 87506e3..7aaeaf3 100644
--- a/scilab/modules/optimization/demos/icse/icsenb.f
+++ b/scilab/modules/optimization/demos/icse/icsenb.f
@@ -102,7 +102,7 @@ c!
102 &d(nob),itu(nitu),dtu(ndtu),iu(5) 102 &d(nob),itu(nitu),dtu(ndtu),iu(5)
103c 103c
104 call navetc(indc,nu,tob,obs,cof,ytob,ob,u, 104 call navetc(indc,nu,tob,obs,cof,ytob,ob,u,
105 & c,cy,g,yob,d,itu,dtu) 105 & c,cy,g,yob,d,itu,dtu,ntob,nob,ny,nex,nitu)
106c 106c
107 end 107 end
108 subroutine navetb(indf,t,y,uc,uv,f,fy,fu,itu,dtu, 108 subroutine navetb(indf,t,y,uc,uv,f,fy,fu,itu,dtu,
@@ -256,7 +256,7 @@ C
256 end 256 end
257 257
258 subroutine navetc(indc,nu,tob,obs,cof,ytob,ob,u, 258 subroutine navetc(indc,nu,tob,obs,cof,ytob,ob,u,
259 & c,cy,g,yob,d,itu,dtu) 259 & c,cy,g,yob,d,itu,dtu,ntob,nob,ny,nex,nitu)
260c 260c
261c test probleme navette 261c test probleme navette
262c 262c
@@ -278,7 +278,11 @@ c
278c variables internes: yob,d 278c variables internes: yob,d
279c 279c
280 implicit double precision (a-h,o-z) 280 implicit double precision (a-h,o-z)
281 dimension ytob(4),ob(3),u(nu),cy(4),g(nu),dtu(*) 281 dimension ytob(4),ob(3),u(nu),cy(4),g(nu),dtu(*),tob(ntob),
282 &obs(nob,ny),cof(nob,ntob),yob(nob,ntob),d(nob),itu(nitu)
283 !dimension tob(ntob),obs(nob,ny),cof(nob,ntob),ytob(ny,ntob),
284 !&ob(nex,ntob,nob),u(nu),cy(ny,ntob),g(nu),yob(nob,ntob),
285 !&d(nob),itu(nitu),dtu(ndtu),iu(5)
282c 286c
283 cpen=dtu(25) 287 cpen=dtu(25)
284 cy(1)=ytob(1)-ob(1) 288 cy(1)=ytob(1)-ob(1)
diff --git a/scilab/modules/optimization/demos/icse/icsez0.f b/scilab/modules/optimization/demos/icse/icsez0.f
new file mode 100644
index 0000000..b1f7231
--- /dev/null
+++ b/scilab/modules/optimization/demos/icse/icsez0.f
@@ -0,0 +1,58 @@
1c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2c Copyright (C) INRIA
3c
4c This file must be used under the terms of the CeCILL.
5c This source file is licensed as described in the file COPYING, which
6c you should have received as part of this distribution. The terms
7c are also available at
8c http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
9c
10 subroutine icsez0(nu,t0,tf,dti,dtf,ermx,iu,nuc,nuv,ilin,nti,ntf,
11 & ny,nea,itmx,nex,nob,ntob,ntobi,nitu,ndtu,nitv,nrtv,ndtv)
12c
13c programme d'initialisation appele par icse.bas
14c initialisation des commons icsez icsez0 et nird
15c
16 implicit double precision (a-h,o-z)
17 dimension iu(5),iu0(5)
18 common/icsez/t00,tf0,dti0,dtf0,ermx0,iu0,nuc0,nuv0,ilin0,nti0,
19 & ntf0,ny0,nea0,itmx0,nex0,nob0,ntob0,ntobi0,nitu0,ndtu0
20 common/nird/nitv0,nrtv0,ndtv0
21c
22 t00=t0
23 tf0=tf
24 dti0=dti
25 dtf0=dtf
26 ermx0=ermx
27 do 10 i=1,5
2810 iu0(i)=iu(i)
29 nuc0=nuc
30 nuv0=nuv
31 ilin0=ilin
32 nti0=nti
33 ntf0=ntf
34 ny0=ny
35 nea0=nea
36 itmx0=itmx
37 nex0=nex
38 nob0=nob
39 ntob0=ntob
40 ntobi0=ntobi
41 nitu0=nitu
42 ndtu0=ndtu
43 nitv0=nitu+ny+ntob
44 nrtv0=0
45 ldtvt=ny*(nob+nuc+nuv+nti+ntf+ny+3)+ntob*(nob*nex+nob+1)+2*nu+
46 &ndtu
47 mdtv1=ldtvt+ny*(ny+7)
48 nui=iu(1)*nuc+iu(2)*nuv*(nti+ntf+1)
49 mdtv2=ldtvt+ny*(2*ntob+nu+2*ny+nuc+nuv+4)+max(nuc+nuv,nui)+
50 &nob*ntob+nob
51 ndtv0=max(mdtv1,mdtv2)
52 !ind=0
53 !call icse(ind,nu,zz,zz,zz,zz,zz,zz,zz,zz,zz)
54 nitv=max(1,nitv0)
55 nrtv=max(1,nrtv0)
56 ndtv=max(1,ndtv0)
57 return
58 end
diff --git a/scilab/modules/optimization/demos/icse/icsua.sci b/scilab/modules/optimization/demos/icse/icsua.sci
index a5db9db..1f22db3 100644
--- a/scilab/modules/optimization/demos/icse/icsua.sci
+++ b/scilab/modules/optimization/demos/icse/icsua.sci
@@ -44,7 +44,7 @@ function [co,u,g,itv,dtv,cof]=icsua(u,simu,nap,imp)
44 ico = 1; 44 ico = 1;
45 yob = 0.d0*ones(nob,ntob); 45 yob = 0.d0*ones(nob,ntob);
46 ob = don; 46 ob = don;
47 [cof] = fort("icscof",ico,1,"i",ntob,2,"i",nex,3,"i",... 47 [cof] = call("icscof",ico,1,"i",ntob,2,"i",nex,3,"i",...
48 nob,4,"i",yob,5,"d",ob,6,"d","sort",[1,nob*ntob],7,"d"); 48 nob,4,"i",yob,5,"d",ob,6,"d","sort",[1,nob*ntob],7,"d");
49 [co,u,g,itv,dtv] = icsegen(u,simu,nap,imp); 49 [co,u,g,itv,dtv] = icsegen(u,simu,nap,imp);
50 u = ech.*u; 50 u = ech.*u;
diff --git a/scilab/modules/optimization/demos/icse/icsuq.sci b/scilab/modules/optimization/demos/icse/icsuq.sci
index 590420a..31035c7 100644
--- a/scilab/modules/optimization/demos/icse/icsuq.sci
+++ b/scilab/modules/optimization/demos/icse/icsuq.sci
@@ -51,7 +51,7 @@ function [co,u,g,itv,dtv,cof]=icsuq(u,simu,nap,imp,obs,ytob)
51 yob = obs*ytob; 51 yob = obs*ytob;
52 ob = don; 52 ob = don;
53 53
54 [cof] = fort("icscof",ico,1,"i",ntob,2,"i",nex,3,"i",... 54 [cof] = call("icscof",ico,1,"i",ntob,2,"i",nex,3,"i",...
55 nob,4,"i",yob,5,"d",ob,6,"d","sort",[1,nob*ntob],7,"d"); 55 nob,4,"i",yob,5,"d",ob,6,"d","sort",[1,nob*ntob],7,"d");
56 56
57 [co,u,g,itv,dtv] = icsegen(u,simu,nap,imp); 57 [co,u,g,itv,dtv] = icsegen(u,simu,nap,imp);
diff --git a/scilab/modules/optimization/demos/icse/lqv.sce b/scilab/modules/optimization/demos/icse/lqv.sce
index 3e03c5c..098ee19 100644
--- a/scilab/modules/optimization/demos/icse/lqv.sce
+++ b/scilab/modules/optimization/demos/icse/lqv.sce
@@ -11,82 +11,98 @@
11// ************************************************************* 11// *************************************************************
12// 12//
13 13
14exec("SCI/modules/optimization/demos/icse/icse.contexte"); // context 14function demo_lqv()
15 15
16t0 = 0; // instant initial 16 cd "SCI/modules/optimization/demos/icse/"
17tf = 20; // instant final 17
18dti = 1; // premier pas de temps 18 libn = ilib_for_link("icsez0","icsez0.f",[],"f")
19dtf = 1; // second pas de temps 19 nlink = link("./"+libn,"icsez0","f")
20ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans 20
21// la resolution de l'etat 21 exec("icsecontexte.sce"); // context
22iu = [0,0,1]; // iu :indications sur la structure du controle 22
23// iu(1)=1 si l'etat initial depend du controle constant,0 sinon 23 t0 = 0; // instant initial
24// iu(2)=1 si l'etat initial depend du controle variable,0 sinon 24 tf = 20; // instant final
25// iu(3)=1 si le second membre depend du controle constant,0 sinon 25 dti = 1; // premier pas de temps
26nuc = 5; // nombre de parametres independants du temps 26 dtf = 1; // second pas de temps
27nuv = 1; // nombre de parametres dependants du temps 27 ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans la resolution de l'etat
28ilin = 2; // indicateur de linearite : 28 iu = [0,0,1]; // iu :indications sur la structure du controle
29// 0 pour un systeme non affine 29 // iu(1)=1 si l'etat initial depend du controle constant,0 sinon
30// 1 pour un systeme affine dont la partie lineaire n'est pas autonome 30 // iu(2)=1 si l'etat initial depend du controle variable,0 sinon
31// ilin=2 pour un systeme affine dont la partie lineaire est autonome 31 // iu(3)=1 si le second membre depend du controle constant,0 sinon
32nti = 10; // nombre de pas de temps correspondant a dti (premier pas de temps) 32 nuc = 5; // nombre de parametres independants du temps
33ntf = 10; // nombre de pas de temps correspondant a dtf (second pas de temps) 33 nuv = 1; // nombre de parametres dependants du temps
34// si l'on utilise un seul pas de temps,on doit prendre ntf=0 34 ilin = 2; // indicateur de linearite :
35ny = 4; // dimension de l'etat a un instant donne 35 // 0 pour un systeme non affine
36nea = 0; // nombre d'equations algebriques (eventuellement nul) 36 // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
37itmx = 10; // nombre maximal d'iterations dans la resolution de 37 // 2 pour un systeme affine dont la partie lineaire est autonome
38// l'equation d'etat discrete a un pas de temps donne 38 nti = 10; // nombre de pas de temps correspondant a dti (premier pas de temps)
39nex = 1; // nombre d'experiences effectuees 39 ntf = 10; // nombre de pas de temps correspondant a dtf (second pas de temps)
40nob = 2; // dimension du vecteur des mesures pour une experience donnee 40 // si l'on utilise un seul pas de temps, on doit prendre ntf=0
41// en un instant donne 41 ny = 4; // dimension de l'etat a un instant donne
42ntob = 10; // nombre d'instants de mesure pour une experience donnee 42 nea = 0; // nombre d'equations algebriques (eventuellement nul)
43ntobi = 5; // nombre d'instants de mesure correspondant a dti (premier 43 itmx = 10; // nombre maximal d'iterations dans la resolution de l'equation d'etat discrete a un pas de temps donne
44// pas de temps) 44 nex = 1; // nombre d'experiences effectuees
45 45 nob = 2; // dimension du vecteur des mesures pour une experience donnee en un instant donne
46nu = nuc + nuv * (nti + ntf + 1); // dimension du vecteur des parametres de controle 46 ntob = 10; // nombre d'instants de mesure pour une experience donnee
47 47 ntobi = 5; // nombre d'instants de mesure correspondant a dti (premier pas de temps)
48// uc(1,nuc) :controle constant 48
49uc = 0*ones(1,nuc); 49 nu = nuc + nuv * (nti + ntf + 1); // dimension du vecteur des parametres de controle
50 50
51// uv(1,nuv*(nti+ntf+1)):controle variable 51 // uc(1,nuc) :controle constant
52if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end; 52 uc = 100*ones(1,nuc);
53 53
54// itu(1,nitu) :tableau de travail entier reserve a 54 // uv(1,nuv*(nti+ntf+1)):controle variable
55// l'utilisateur 55 if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end;
56itu = [0]; 56
57 57 // itu(1,nitu) :tableau de travail entier reserve a l'utilisateur
58// dtu(1,ndtu) :tableau de travail double precision reserve 58 itu = [0];
59// a l'utilisateur 59
60dtu = [0]; 60 // dtu(1,ndtu) :tableau de travail double precision reserve a l'utilisateur
61 61 dtu = [0];
62// y0(ny) :etat initial 62
63// (valeur arbitraire si iu(1) ou iu(2) est non nul) 63 // y0(ny) :etat initial (valeur arbitraire si iu(1) ou iu(2) est non nul)
64y0 = ones(1,ny); 64 y0 = ones(1,ny);
65 65
66// tob(1,ntob) :instants de mesure (compatibilite avec ntob 66 // tob(1,ntob) :instants de mesure (compatibilite avec ntob et ntobi)
67// et ntobi) 67 tob = 2*(1:10);
68tob = 2*(1:10); 68 binf = -10*ones(1,nu); // borne inf des parametres
69binf = -10*ones(1,nu); // borne inf des parametres 69 bsup = ones(1,nu); // borne sup des parametres
70bsup = ones(1,nu); // borne sup des parametres 70
71 71 // termes utiles pour une dynamique lineaire ou une observation quadratique
72// termes utiles pour une dynamique lineaire ou une observation quadratique 72 b(1,ny) = 0; // terme constant d'une dynamique lineaire
73b(1,ny) = 0; // terme constant d'une dynamique lineaire 73 fy = 0.1*ones(ny,ny); // derivee de la dynamique par rapport a l'etat
74fy = 0.1*ones(ny,ny); // derivee de la dynamique par rapport a l'etat 74 fu = ones(ny,nuc+nuv); // derivee de la dynamique par rapport au controle
75fu = ones(ny,nuc+nuv); // derivee de la dynamique par rapport au controle 75
76 76 obs(nob,ny) = 0; // matrice d'observation
77obs(nob,ny) = 0; // matrice d'observation 77 obs = ones(nob,ny);
78obs = ones(nob,ny); 78
79 79 don=0*ones(1,nex*ntob*nob);
80don=0*ones(1,nex*ntob*nob); 80
81 81 nap = 20; // nombre d'appels du simulateur
82nap = 20; // nombre d'appels du simulateur 82 imp = 2; // niveau de debug pour optim
83imp = 2; // niveau de debug pour optim 83 large = 100; // taille de nu au dela de laquelle on choisit un optimiseur
84large = 100; // taille de nu au dela de laquelle on choisit un optimiseur 84 // pour les problemes de grande taille (alg='gc' dans l'appel de optim)
85// pour les problemes de grande taille (alg='gc' dans l'appel de optim) 85
86 86 saveFormat = format();
87exec("SCI/modules/optimization/demos/icse/icse.contexte"); // context 87
88 88 exec("icseinit.sce");
89[co,u,g,itv,dtv] = icse(u,"icsemc",nap,imp); 89
90 exec("icse.sci");
91 exec("icsegen.sci");
92
93 [co, u, g, itv, dtv] = icse(u, "icsemc", nap, imp);
94
95 disp(u', "Best value:")
96 disp(co, "Final cost:")
97
98 deletefile("libicsez0.so");
99 deletefile("loader.sce");
100 deletefile("cleaner.sce");
101
102 format(saveFormat(1, $:-1:1));
90 103
91endfunction 104endfunction
92 105
106demo_lqv();
107clear demo_lqv;
108
diff --git a/scilab/modules/optimization/demos/icse/navet.sce b/scilab/modules/optimization/demos/icse/navet.sce
index 4de0f38..b22e60a 100644
--- a/scilab/modules/optimization/demos/icse/navet.sce
+++ b/scilab/modules/optimization/demos/icse/navet.sce
@@ -10,143 +10,161 @@
10// calcul trajectoire optimale de rentree d'une navette spatiale 10// calcul trajectoire optimale de rentree d'une navette spatiale
11// ************************************************************* 11// *************************************************************
12 12
13libn = ilib_for_link("icsenb","icsenb.o",[],"f") 13function demo_navet()
14nlink = link("./"+libn,["icsenb","icsenf"],"f") 14
15 15 cd "SCI/modules/optimization/demos/icse/"
16exec("icse.contexte"); 16
17 17 libn = ilib_for_link("icsenb", "icsenb.f",[], "f", "", "", "", "-L"+SCI+"/modules/optimization/.libs/ -lscioptimization")
18t0 = 0.d0; // instant initial 18 nlink = link("./"+libn, ["icsenb", "icsenf"], "f")
19tf = 1.d0; // instant final 19 libn = ilib_for_link("icsez0", "icsez0.f",[], "f")
20dtf = 0; 20 nlink = link("./"+libn, "icsez0", "f")
21ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans 21
22// la resolution de l'etat 22 exec("icsecontexte.sce");
23iu = [0,0,1]; // iu :indications sur la structure du controle 23
24// iu(1)=1 si l'etat initial depend du controle constant,0 sinon 24 t0 = 0.d0; // instant initial
25// iu(2)=1 si l'etat initial depend du controle variable,0 sinon 25 tf = 1.d0; // instant final
26// iu(3)=1 si le second membre depend du controle constant,0 sinon 26 dtf = 0;
27nuc = 1; // nombre de parametres independants du temps 27 ermx = 1.d-6; // test d'arret absolu sur la valeur du second membre dans la resolution de l'etat
28nuv = 1; // nombre de parametres dependants du temps 28 iu = [0,0,1]; // iu :indications sur la structure du controle
29ilin = 0; // indicateur de linearite : 29 // iu(1)=1 si l'etat initial depend du controle constant,0 sinon
30// 0 pour un systeme non affine 30 // iu(2)=1 si l'etat initial depend du controle variable,0 sinon
31// 1 pour un systeme affine dont la partie lineaire n'est pas autonome 31 // iu(3)=1 si le second membre depend du controle constant,0 sinon
32// ilin=2 pour un systeme affine dont la partie lineaire est autonome 32 nuc = 1; // nombre de parametres independants du temps
33nti = 150; //nombre de pas de temps correspondant a dti (premier pas de temps) 33 nuv = 1; // nombre de parametres dependants du temps
34dti = tf/nti; 34 ilin = 0; // indicateur de linearite :
35ntf = 00; // nombre de pas de temps correspondant a dtf (second pas de temps) 35 // 0 pour un systeme non affine
36// si l'on utilise un seul pas de temps,on doit prendre ntf=0 36 // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
37ny = 4; // dimension de l'etat a un instant donne 37 // 2 pour un systeme affine dont la partie lineaire est autonome
38nea = 0; // nombre d'equations algebriques (eventuellement nul) 38 nti = 150; //nombre de pas de temps correspondant a dti (premier pas de temps)
39itmx = 10; // nombre maximal d'iterations dans la resolution de 39 dti = tf/nti;
40// l'equation d'etat discrete a un pas de temps donne 40 ntf = 00; // nombre de pas de temps correspondant a dtf (second pas de temps)
41nex = 1; // nombre d'experiences effectuees 41 // si l'on utilise un seul pas de temps,on doit prendre ntf=0
42nob = 3; // dimension du vecteur des mesures pour une experience donnee 42 ny = 4; // dimension de l'etat a un instant donne
43// en un instant donne 43 nea = 0; // nombre d'equations algebriques (eventuellement nul)
44ntob = 1; // nombre d'instants de mesure pour une experience donnee 44 itmx = 10; // nombre maximal d'iterations dans la resolution de l'equation d'etat discrete a un pas de temps donne
45ntobi = 1; // nombre d'instants de mesure correspondant a dti (premier 45 nex = 1; // nombre d'experiences effectuees
46// pas de temps) 46 nob = 3; // dimension du vecteur des mesures pour une experience donnee en un instant donne
47 47 ntob = 1; // nombre d'instants de mesure pour une experience donnee
48nu=nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle 48 ntobi = 1; // nombre d'instants de mesure correspondant a dti (premier pas de temps)
49 49
50// uc(1,nuc) :controle constant 50 nu=nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle
51echtf = 2000; 51
52uc = [2500/echtf]; 52 // uc(1,nuc) :controle constant
53 53 echtf = 2000;
54// uv(1,nuv*(nti+ntf)):controle variable 54 uc = [2500/echtf];
55//if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end; 55
56alpha0 = .20704/.029244; legu = "alpha initial : ann. cz"; // annulation cz 56 // uv(1,nuv*(nti+ntf)):controle variable
57alpha0 = 17.391; legu = "alpha initial : finesse max"; // finesse maximum 57 //if nuv>0 then uv(1,nuv*(nti+ntf+1))=0; end;
58legu = " navette americaine ."+legu; 58 alpha0 = .20704/.029244; legu = "alpha initial : ann. cz"; // annulation cz
59if nuv>0 then uv=alpha0*ones(1,nuv*(nti+ntf+1)); end; 59 alpha0 = 17.391; legu = "alpha initial : finesse max"; // finesse maximum
60 60 legu = " navette americaine ."+legu;
61// itu(1,nitu) :tableau de travail entier reserve a 61 if nuv>0 then uv=alpha0*ones(1,nuv*(nti+ntf+1)); end;
62// l'utilisateur 62
63itu = [0]; 63 // itu(1,nitu) :tableau de travail entier reserve a l'utilisateur
64 64 itu = [0];
65// dtu(1,ndtu) :tableau de travail double precision reserve 65
66// a l'utilisateur 66 // dtu(1,ndtu) :tableau de travail double precision reserve a l'utilisateur
67raddeg = %pi/180; 67 raddeg = %pi/180;
68 68
69//dtu=[ 249.9, ..//s 1 69 //dtu=[ 249.9, ..//s 1
70// .078540, ..//cx0 2 70 // .078540, ..//cx0 2
71// -.0061592, ..//cx1 3 71 // -.0061592, ..//cx1 3
72// .621408e-3, ..//cx2 4 72 // .621408e-3, ..//cx2 4
73// -.207040, ..//cz0 5 73 // -.207040, ..//cz0 5
74// .029244, ..//cz1 6 74 // .029244, ..//cz1 6
75// 83388, ..//zm 7 75 // 83388, ..//zm 7
76// 3.9860119e14, ..//zmu 8 76 // 3.9860119e14, ..//zmu 8
77// 6378166, ..//rt 9 77 // 6378166, ..//rt 9
78// 1.2, ..//ro0 10 78 // 1.2, ..//ro0 10
79// 6700, ..//h 11 79 // 6700, ..//h 11
80// raddeg, ..// 12 80 // raddeg, ..// 12
81// echtf, ..//echtf 13 81 // echtf, ..//echtf 13
82// 0,0,0,0,0,0,0, ..// inutilises 14 a 20 82 // 0,0,0,0,0,0,0, ..// inutilises 14 a 20
83// 1000, ..//mise a echelle v 21 83 // 1000, ..//mise a echelle v 21
84// 1, ..//mise a echelle gam 22 84 // 1, ..//mise a echelle gam 22
85// 1.e5, ..//mise a echelle z 23 85 // 1.e5, ..//mise a echelle z 23
86// 1, ..//mise a echelle l 24 86 // 1, ..//mise a echelle l 24
87// 1.e6 ]; //cpenal 25 87 // 1.e6 ]; //cpenal 25
88 88
89dtu=[ 249.9, .. 89 dtu=[ 249.9, ..
90.078540, .. 90 .078540, ..
91-.0061592, .. 91 -.0061592, ..
92.621408e-3, .. 92 .621408e-3, ..
93-.207040, .. 93 -.207040, ..
94.029244, .. 94 .029244, ..
9583388, .. 95 83388, ..
963.9860119e14, .. 96 3.9860119e14, ..
976378166, .. 97 6378166, ..
981.2, .. 98 1.2, ..
996700, .. 99 6700, ..
100raddeg, .. 100 raddeg, ..
101echtf, .. 101 echtf, ..
1020,0,0,0,0,0,0, .. 102 0,0,0,0,0,0,0, ..
1031000, .. 103 1000, ..
1041, .. 104 1, ..
1051.e5, .. 105 1.e5, ..
1061, .. 106 1, ..
1071.e6 ]; //cpenal 25 107 1.e6 ]; //cpenal 25
108 108
109y0=[7803, -1*raddeg, 121920, 0]; // etat initial 109 y0=[7803, -1*raddeg, 121920, 0]; // etat initial (valeur arbitraire si iu(1) ou iu(2) est non nul)
110// (valeur arbitraire si iu(1) ou iu(2) est non nul) 110
111 111 y0=y0./dtu(1,21:24); // mise a l'echelle de y0
112y0=y0./dtu(1,21:24); // mise a l'echelle de y0 112
113 113 // tob(1,ntob) :instants de mesure (compatibilite avec ntob et ntobi)
114// tob(1,ntob) :instants de mesure (compatibilite avec ntob 114 tob = [1];
115// et ntobi) 115 binf = -20*ones(1,nu); // borne inf des parametres
116tob = [1]; 116 binf(1,1) = 2500/echtf;
117binf = -20*ones(1,nu); // borne inf des parametres 117 bsup = 40*ones(1,nu); // borne sup des parametres
118binf(1,1) = 2500/echtf; 118 bsup(1,1) = 4000/echtf;
119bsup = 40*ones(1,nu); // borne sup des parametres 119
120bsup(1,1) = 4000/echtf; 120 obs(nob,ny) = 0; // matrice d'observation
121 121
122obs(nob,ny) = 0; // matrice d'observation 122 //don=[762, ..//vfin 1
123 123 // -5*raddeg, ..//gamma final 2
124//don=[762, ..//vfin 1 124 // 24384 ]; ..//zfin 3
125// -5*raddeg, ..//gamma final 2 125 don=[762, ..
126// 24384 ]; ..//zfin 3 126 -5*raddeg, ..
127don=[762, .. 127 24384 ];
128-5*raddeg, .. 128 don = don./dtu(1,21:23); // mise a l'echelle
12924384 ]; 129 nomf = "icsenf"; // noms de subroutines de dynamique
130don = don./dtu(1,21:23); // mise a l'echelle 130 legfb = " croissant ";
131nomf = "icsenf"; // noms de subroutines de dynamique 131
132legfb = " croissant "; 132 // changements pour calculer en temps retrograde
133 133 retro = 1;
134// changements pour calculer en temps retrograde 134 if retro>0 then
135retro = 1; 135 legfb = " retrograde ";
136if retro>0 then 136 don1 = don;
137 legfb = " retrograde "; 137 don = y0(1,1:3);
138 don1 = don; 138 y0(1,1:3) = don1;
139 don = y0(1,1:3); 139 nomf ="icsenb";
140 y0(1,1:3) = don1; 140 end
141 nomf ="icsenb"; 141
142end 142 nap = 20; // nombre d'appels du simulateur
143 143 imp = 2; // niveau de debug pour optim
144nap = 20; // nombre d'appels du simulateur 144 large = 100; // taille de nu au dela de laquelle on choisit un optimiseur
145imp = 2; // niveau de debug pour optim 145
146large = 100; // taille de nu au dela de laquelle on choisit un optimiseur 146 // pour les problemes de grande taille (alg='gc' dans l'appel de optim)
147 147
148// pour les problemes de grande taille (alg='gc' dans l'appel de optim) 148 saveFormat = format();
149 149
150exec("icseinit.sce"); 150 exec("icseinit.sce");
151 151
152[co,u,g,itv,dtv]=icse(u,nomf,nap,imp); 152 exec("icse.sci");
153 exec("icsegen.sci");
154
155 [co, u, g, itv, dtv] = icse(u, nomf, nap, imp);
156
157 disp(u', "Best value:")
158 disp(co, "Final cost:")
159
160 deletefile("libicsenb.so");
161 deletefile("libicsez0.so");
162 deletefile("loader.sce");
163 deletefile("cleaner.sce");
164
165 format(saveFormat(1, $:-1:1));
166
167endfunction
168
169demo_navet();
170clear demo_navet;
diff --git a/scilab/modules/optimization/demos/icse/seros.sce b/scilab/modules/optimization/demos/icse/seros.sce
index 3a53973..c4391cb 100644
--- a/scilab/modules/optimization/demos/icse/seros.sce
+++ b/scilab/modules/optimization/demos/icse/seros.sce
@@ -10,85 +10,102 @@
10// calcul coefficients optimaux du modele simplifie 5ht-plaquette 10// calcul coefficients optimaux du modele simplifie 5ht-plaquette
11// ************************************************************** 11// **************************************************************
12 12
13libn = ilib_for_link("icsest","icsest.f",[],"f"); 13function demo_seros()
14nlink = link("./"+libn,"icsest","f"); 14
15 15 cd "SCI/modules/optimization/demos/icse/"
16// contexte : tue les variables de nom reserve 16
17exec("icse.contexte"); 17 libn = ilib_for_link("icsest", "icsest.f", [], "f", "", "", "", "-L"+SCI+"/modules/optimization/.libs/ -lscioptimization");
18 18 nlink = link("./"+libn, "icsest", "f");
19t0 = 0.d0; // instant initial 19 libn = ilib_for_link("icsez0", "icsez0.f", [], "f")
20tf = 18.d1; // instant final 20 nlink = link("./"+libn, "icsez0", "f")
21dti = 1; // premier pas de temps 21
22dtf = 2; // second pas de temps 22 // contexte : tue les variables de nom reserve
23ermx = 1.d-9; // test d'arret absolu sur la valeur du second membre dans 23 exec("icsecontexte.sce");
24// la resolution de l'etat 24
25iu = [0,0,1]; // iu :indications sur la structure du controle 25 t0 = 0.d0; // instant initial
26// iu(1)=1 si l'etat initial depend du controle constant,0 sinon 26 tf = 18.d1; // instant final
27// iu(2)=1 si l'etat initial depend du controle variable,0 sinon 27 dti = 1; // premier pas de temps
28// iu(3)=1 si le second membre depend du controle constant,0 sinon 28 dtf = 2; // second pas de temps
29nuc = 7; // nombre de parametres independants du temps 29 ermx = 1.d-9; // test d'arret absolu sur la valeur du second membre dans la resolution de l'etat
30nuv = 0; // nombre de parametres dependants du temps 30 iu = [0,0,1]; // iu :indications sur la structure du controle
31ilin = 2; // indicateur de linearite : 31 // iu(1)=1 si l'etat initial depend du controle constant,0 sinon
32// 0 pour un systeme non affine 32 // iu(2)=1 si l'etat initial depend du controle variable,0 sinon
33// 1 pour un systeme affine dont la partie lineaire n'est pas autonome 33 // iu(3)=1 si le second membre depend du controle constant,0 sinon
34// ilin=2 pour un systeme affine dont la partie lineaire est autonome 34 nuc = 7; // nombre de parametres independants du temps
35nti = 80; // nombre de pas de temps correspondant a dti (premier pas de temps) 35 nuv = 0; // nombre de parametres dependants du temps
36ntf = 50; // nombre de pas de temps correspondant a dtf (second pas de temps) 36 ilin = 2; // indicateur de linearite :
37// si l'on utilise un seul pas de temps,on doit prendre ntf=0 37 // 0 pour un systeme non affine
38ny = 4; // dimension de l'etat a un instant donne 38 // 1 pour un systeme affine dont la partie lineaire n'est pas autonome
39nea = 0; // nombre d'equations algebriques (eventuellement nul) 39 // 2 pour un systeme affine dont la partie lineaire est autonome
40itmx = 10; // nombre maximal d'iterations dans la resolution de 40 nti = 80; // nombre de pas de temps correspondant a dti (premier pas de temps)
41// l'equation d'etat discrete a un pas de temps donne 41 ntf = 50; // nombre de pas de temps correspondant a dtf (second pas de temps)
42nex = 8; // nombre d'experiences effectuees 42 // si l'on utilise un seul pas de temps,on doit prendre ntf=0
43nob = 2; // dimension du vecteur des mesures pour une experience donnee 43 ny = 4; // dimension de l'etat a un instant donne
44// en un instant donne 44 nea = 0; // nombre d'equations algebriques (eventuellement nul)
45ntob = 9; // nombre d'instants de mesure pour une experience donnee 45 itmx = 10; // nombre maximal d'iterations dans la resolution de l'equation d'etat discrete a un pas de temps donne
46ntobi = 6; // nombre d'instants de mesure correspondant a dti (premier 46 nex = 8; // nombre d'experiences effectuees
47// pas de temps) 47 nob = 2; // dimension du vecteur des mesures pour une experience donnee en un instant donne
48 48 ntob = 9; // nombre d'instants de mesure pour une experience donnee
49// ne pas modifier l'instruction suivante 49 ntobi = 6; // nombre d'instants de mesure correspondant a dti (premier pas de temps)
50nu = nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle 50
51 51 // ne pas modifier l'instruction suivante
52// uc(1,nuc) :controle constant 52 nu = nuc+nuv*(nti+ntf+1); // dimension du vecteur des parametres de controle
53ucref = [2.d-4,1.d-3,1.d-2,5.d-3,2.d-2,1.5d-1,3.d-2]; 53
54uc = .1*ucref; 54 // uc(1,nuc) :controle constant
55 55 ucref = [2.d-4,1.d-3,1.d-2,5.d-3,2.d-2,1.5d-1,3.d-2];
56// uv(1,nuv*(nti+ntf)):controle variable 56 uc = .1*ucref;
57//if nuv>0, uv(1,nuv*(nti+ntf))=0; end; 57
58// itu(1,nitu) :tableau de travail entier reserve a 58 // uv(1,nuv*(nti+ntf)):controle variable
59// l'utilisateur 59 //if nuv>0, uv(1,nuv*(nti+ntf))=0; end;
60itu = [0]; 60 // itu(1,nitu) :tableau de travail entier reserve a l'utilisateur
61 61 itu = [0];
62// dtu(1,ndtu) :tableau de travail double precision reserve 62
63// a l'utilisateur 63 // dtu(1,ndtu) :tableau de travail double precision reserve a l'utilisateur
64dtu = [0.d0]; 64 dtu = [0.d0];
65 65
66// y0(ny) :etat initial 66 // y0(ny) :etat initial (inutile si iu(1) ou iu(2) est non nul)
67// (inutile si iu(1) ou iu(2) est non nul) 67 y0 = [4.d1,0.d0,0.d0,0.d0];
68y0 = [4.d1,0.d0,0.d0,0.d0]; 68
69 69 // tob(1,ntob) :instants de mesure (compatibilite avec ntob et ntobi)
70// tob(1,ntob) :instants de mesure (compatibilite avec ntob 70 tob = [1.d1,2.d1,3.d1,4.d1,6.d1,8.d1,1.1d2,1.6d2,1.8d2];
71// et ntobi) 71 binf = 1.d-17*ones(1,nu); // borne inf des parametres
72tob = [1.d1,2.d1,3.d1,4.d1,6.d1,8.d1,1.1d2,1.6d2,1.8d2]; 72 bsup = 1.d1*ones(1,nu); // borne sup des parametres
73binf = 1.d-17*ones(1,nu); // borne inf des parametres 73
74bsup = 1.d1*ones(1,nu); // borne sup des parametres 74 // termes utiles pour une dynamique lineaire ou une observation quadratique
75 75 // b(1,ny) = 0; // terme constant d'une dynamique lineaire
76// termes utiles pour une dynamique lineaire ou une observation quadratique 76 // fy(ny,ny) = 0; // derivee de la dynamique par rapport a l'etat
77// b(1,ny) = 0; // terme constant d'une dynamique lineaire 77 // fu(ny,nuc+nuv) = 0; // derivee de la dynamique par rapport au controle
78// fy(ny,ny) = 0; // derivee de la dynamique par rapport a l'etat 78 obs = [0,1,1,1;0,1,0,1]; // matrice d'observation obs(nob,ny)
79// fu(ny,nuc+nuv) = 0; // derivee de la dynamique par rapport au controle 79
80obs = [0,1,1,1;0,1,0,1]; // matrice d'observation obs(nob,ny) 80 // don(nex*ntob*nob) :mesures prealablement entrees dans le fichier sero.mes.
81 81 // Il s'agit de donnees simulees avec uc=[2.d-4,1.d-3,1.d-2,1.d-7,1.d-6,1.d-9,1.d-7]
82// don(nex*ntob*nob) :mesures prealablement entrees dans le fichier 82 don = read("sero.mes",1,nex*ntob*nob,"(5d15.7)");
83// sero.mes.Il s'agit de donnees simulees avec 83
84// uc=[2.d-4,1.d-3,1.d-2,1.d-7,1.d-6,1.d-9,1.d-7] 84 nap = 20; // nombre d'appels du simulateur
85don = read("sero.mes",1,nex*ntob*nob,"(5d15.7)"); 85 imp = 2; // niveau de debug pour optim
86 86 large = 100; // taille de nu au dela de laquelle on choisit un optimiseur
87nap = 20; // nombre d'appels du simulateur 87 // pour les problemes de grande taille (alg='gc' dans l'appel de optim)
88imp = 2; // niveau de debug pour optim 88
89large = 100; // taille de nu au dela de laquelle on choisit un optimiseur 89 saveFormat = format();
90// pour les problemes de grande taille (alg='gc' dans l'appel de optim) 90
91 91 exec("icseinit.sce");
92exec("icseinit.sce"); 92
93 93 exec("icse.sci");
94[co,u,g,itv,dtv]=icse(u,"icsest",nap,imp); 94 exec("icsegen.sci");
95
96 [co, u, g, itv, dtv] = icse(u, "icsest", nap, imp);
97
98 disp(u', "Best value:")
99 disp(co, "Final cost:")
100
101 deletefile("libicsest.so");
102 deletefile("libicsez0.so");
103 deletefile("loader.sce");
104 deletefile("cleaner.sce");
105
106 format(saveFormat(1, $:-1:1));
107
108endfunction
109
110demo_seros();
111clear demo_seros;
diff --git a/scilab/modules/optimization/demos/optimization.dem.gateway.sce b/scilab/modules/optimization/demos/optimization.dem.gateway.sce
index fc86770..a9da31f 100644
--- a/scilab/modules/optimization/demos/optimization.dem.gateway.sce
+++ b/scilab/modules/optimization/demos/optimization.dem.gateway.sce
@@ -11,7 +11,8 @@ function subdemolist = demo_gateway()
11 11
12 subdemolist = [_("Non linear data fitting"), "datafit/datafit.dem.gateway.sce"; .. 12 subdemolist = [_("Non linear data fitting"), "datafit/datafit.dem.gateway.sce"; ..
13 _("Optimisation"), "optim/optim.dem.gateway.sce"; .. 13 _("Optimisation"), "optim/optim.dem.gateway.sce"; ..
14 _("fminsearch"), "neldermead/neldermead.dem.gateway.sce"]; 14 _("fminsearch"), "neldermead/neldermead.dem.gateway.sce"; ..
15 _("ICSE"), "icse/icse.dem.gateway.sce"];
15 16
16 if with_module("genetic_algorithms") then 17 if with_module("genetic_algorithms") then
17 subdemolist = [subdemolist; .. 18 subdemolist = [subdemolist; ..