summaryrefslogtreecommitdiffstats
path: root/scilab_doc
diff options
context:
space:
mode:
authorMichael Baudin <michael.baudin@scilab.org>2010-04-21 14:36:23 +0200
committerMichael Baudin <michael.baudin@scilab.org>2010-04-21 14:36:23 +0200
commitfaf679e0fcd1f1a78cf140e584d737e0561def0b (patch)
treea000f9f13faca7b34fc98423a9e5475371f7fee9 /scilab_doc
parent0e47449e28a13005b74fcec7058d606b57ec5654 (diff)
downloadscilab-faf679e0fcd1f1a78cf140e584d737e0561def0b.zip
scilab-faf679e0fcd1f1a78cf140e584d737e0561def0b.tar.gz
Move to the forge
Change-Id: I71483f9a571441ec592ea57ca2a76afb6a525b62
Diffstat (limited to 'scilab_doc')
-rw-r--r--scilab_doc/neldermead/Makefile32
-rw-r--r--scilab_doc/neldermead/acknowledgments.tex14
-rw-r--r--scilab_doc/neldermead/chapter-notations.tex25
-rw-r--r--scilab_doc/neldermead/conclusion.tex27
-rw-r--r--scilab_doc/neldermead/fminsearch-so.pdfbin253011 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch-so.tex87
-rw-r--r--scilab_doc/neldermead/fminsearch/fminsearch.tex782
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfunccountScilab.pngbin5164 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalMatlab.pngbin6159 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalScilab.pngbin4115 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxMatlab.pngbin5533 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxScilab.pngbin4448 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchPlotMatlab.pngbin3391 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/fminsearch/testFminsearchPlotScilab.pngbin3517 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/implementations.tex229
-rw-r--r--scilab_doc/neldermead/installation-directories.pngbin7872 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/installation.tex159
-rw-r--r--scilab_doc/neldermead/introduction/introduction-demos.pngbin37427 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/introduction/introduction-help-fminsearch.pngbin41211 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/introduction/introduction-help.pngbin62814 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/introduction/introduction.tex363
-rw-r--r--scilab_doc/neldermead/macros.tex344
-rw-r--r--scilab_doc/neldermead/neldermead-bibliography-so.pdfbin147878 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermead-bibliography-so.tex84
-rw-r--r--scilab_doc/neldermead/neldermead-introduction-so.pdfbin298558 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermead-introduction-so.tex88
-rw-r--r--scilab_doc/neldermead/neldermead-neldermead-so.pdfbin681445 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermead-neldermead-so.tex98
-rw-r--r--scilab_doc/neldermead/neldermead-simplex-so.pdfbin296556 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermead-simplex-so.tex93
-rw-r--r--scilab_doc/neldermead/neldermead-spendley-so.pdfbin306298 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermead-spendley-so.tex89
-rw-r--r--scilab_doc/neldermead/neldermead.bib546
-rw-r--r--scilab_doc/neldermead/neldermead.pdf24555
-rw-r--r--scilab_doc/neldermead/neldermead.tex125
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/han1-history-simplex.pngbin5508 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/han2-history-simplex.pngbin5986 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/mcKinnon-insidecontraction.pdfbin17159 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/mcKinnon-insidecontraction.svg363
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/mckinnon-history-simplex.pngbin6524 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/mckinnonkelley-history-simplex.pngbin6902 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/method-neldermead.tex2569
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-contract-inside.pdfbin16398 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-contract-inside.svg317
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-contract-outside.pdfbin16823 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-contract-outside.svg318
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-extension.pdfbin15560 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-extension.pngbin35182 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-extension.svg299
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-reflection.pdfbin15565 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-reflection.svg299
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-shrink-afterci.pdfbin17146 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-shrink-afterci.svg316
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-shrink-afterco.pdfbin18075 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-shrink-afterco.svg334
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-steps.pdfbin17343 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/nelder-mead-steps.svg358
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/neldermead-dimension-nfevals.pngbin4581 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/neldermead-dimension-rho.pngbin4328 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/neldermead-roots-variable.pngbin4265 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/neldermead-roots.pngbin4977 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/quad2bis-nm-history-logfopt.pngbin3672 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/quad2bis-nm-history-sigma.pngbin3714 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/quad2bis-nm-simplexcontours.pngbin7334 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/sufficientdecrease.pdfbin13269 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/sufficientdecrease.svg226
-rw-r--r--scilab_doc/neldermead/neldermeadmethod/torczon_test1_angle.pngbin8333 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/nmbibliography.tex523
-rw-r--r--scilab_doc/neldermead/scilab_logo.jpgbin20150 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/scripts/HanNeumann_roots.sce117
-rw-r--r--scilab_doc/neldermead/scripts/compute.roots.sce186
-rw-r--r--scilab_doc/neldermead/scripts/demo_allsizes.sce26
-rw-r--r--scilab_doc/neldermead/scripts/demo_simplex_regular.sce25
-rw-r--r--scilab_doc/neldermead/scripts/fminsearch_demo.m75
-rw-r--r--scilab_doc/neldermead/scripts/fminsearch_rosenbrock.m29
-rw-r--r--scilab_doc/neldermead/scripts/fminsearch_rosenbrock.sce50
-rw-r--r--scilab_doc/neldermead/scripts/initialsimplex_axes.sce29
-rw-r--r--scilab_doc/neldermead/scripts/initialsimplex_regular.sce33
-rw-r--r--scilab_doc/neldermead/scripts/neldermead_ONEILL.sce126
-rw-r--r--scilab_doc/neldermead/scripts/neldermead_Torczon.sce175
-rw-r--r--scilab_doc/neldermead/scripts/neldermead_dimensionnality.sce107
-rw-r--r--scilab_doc/neldermead/scripts/norm_matrixdirection.sce28
-rw-r--r--scilab_doc/neldermead/scripts/onehump.m15
-rw-r--r--scilab_doc/neldermead/scripts/outfun.m21
-rw-r--r--scilab_doc/neldermead/scripts/simplex_gradient.sce54
-rw-r--r--scilab_doc/neldermead/scripts/simplexaxis_directionscondition.sce30
-rw-r--r--scilab_doc/neldermead/simplextheory/section-simplex.tex978
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_axes.pngbin3823 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_flat.pdfbin15245 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_flat.svg231
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_initialfixed.pdfbin8287 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_initialfixed.svg191
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_regular.pngbin4214 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_towardflat.pdfbin16139 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/simplextheory/simplex_towardflat.svg281
-rw-r--r--scilab_doc/neldermead/spendleymethod/method-spendley.aux92
-rw-r--r--scilab_doc/neldermead/spendleymethod/method-spendley.tex750
-rw-r--r--scilab_doc/neldermead/spendleymethod/quad2-spendley-simplexcontours.pngbin5497 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/quad2bis-spendley-history-logfopt.pngbin3792 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/quad2bis-spendley-history-sigma.pngbin4237 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/quad2bis-spendley-simplexcontours.pngbin7315 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-dimension-nfevals.pngbin4496 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-dimension-rho.pngbin12711 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-reflect.pdfbin13762 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-reflect.svg220
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-reflect2.pdfbin14414 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-reflect2.svg260
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-shrink.pdfbin14374 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps-shrink.svg266
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps.pdfbin15612 -> 0 bytes
-rw-r--r--scilab_doc/neldermead/spendleymethod/spendley-steps.svg289
111 files changed, 0 insertions, 38346 deletions
diff --git a/scilab_doc/neldermead/Makefile b/scilab_doc/neldermead/Makefile
deleted file mode 100644
index 437e9cd..0000000
--- a/scilab_doc/neldermead/Makefile
+++ /dev/null
@@ -1,32 +0,0 @@
1#!/bin/sh
2
3RAPPORT = neldermead
4
5pdf:
6 pdflatex ${RAPPORT}
7 #bibtex ${RAPPORT}
8 #pdflatex ${RAPPORT}
9 #pdflatex ${RAPPORT}
10
11dvi:
12 latex ${RAPPORT}
13 bibtex ${RAPPORT}
14 latex ${RAPPORT}
15
16clean:
17 rm -f *.aux
18 rm -f *.bbl
19 rm -f *.blg
20 rm -f *.log
21 rm -f *.out
22 rm -f *.toc
23 rm -f *.idx
24
25ortho:
26 ispell -t ${RAPPORT}.tex
27
28distclean:
29 make clean
30 rm -f ${RAPPORT}.pdf
31 rm -f ${RAPPORT}.dvi
32
diff --git a/scilab_doc/neldermead/acknowledgments.tex b/scilab_doc/neldermead/acknowledgments.tex
deleted file mode 100644
index 8629c40..0000000
--- a/scilab_doc/neldermead/acknowledgments.tex
+++ /dev/null
@@ -1,14 +0,0 @@
1\chapter{Acknowledgments}
2
3I would like to thank Vincent Couvert,
4the team manager for Scilab releases, for his support
5during the development of this software. I would like to thank
6Serge Steer, INRIA researcher, for his comments and the discussions
7on this subject. Professor Han, Associate Professor of Mathematics in the
8University of Michigan-Flint University was kind enough to send me a copy
9of his Phd and I would like to thank him for that.
10My colleagues Allan Cornet and Yann Collette helped me in many
11steps in the long process from the initial idea to the final
12release of the tool and I would like to thank them for their
13their time.
14
diff --git a/scilab_doc/neldermead/chapter-notations.tex b/scilab_doc/neldermead/chapter-notations.tex
deleted file mode 100644
index 0e42ab2..0000000
--- a/scilab_doc/neldermead/chapter-notations.tex
+++ /dev/null
@@ -1,25 +0,0 @@
1\chapter*{Notations}
2
3
4\begin{figure}[h]
5\begin{center}
6\begin{tabular}{|l|l|}
7\hline
8$n$ & number of variables\\
9$\bx=(x_1,x_2,\ldots,x_n)^T \in\RR^n$ & the unknown\\
10$\bx_0\in\RR^n$ & the initial guess\\
11$\bv\in\RR^n$ & a vertex\\
12$S=\{\bv_i\}_{i=1,m}$ & a complex, where $m\geq n+1$ is the number of vertices\\
13$S=\{\bv_i\}_{i=1,n+1}$ & a simplex (with $n+1$ vertices)\\
14$(\bv_i)_j$ & the $j$-th component of the $i$-th vertex\\
15$S_0$& the initial simplex\\
16$S_k$& the simplex at iteration $k$\\
17$\bv_i^{(k)}$& the vertex $i$ at iteration $k$\\
18$f^k_i = f\left( \bv_i^(k) \right)$& the function value of the vertex $i$ at iteration $k$\\
19$f:\RR^n\rightarrow\RR$& the cost function\\
20\hline
21\end{tabular}
22\end{center}
23\caption{Notations used in this document}
24\label{fig-notations}
25\end{figure}
diff --git a/scilab_doc/neldermead/conclusion.tex b/scilab_doc/neldermead/conclusion.tex
deleted file mode 100644
index e9880a9..0000000
--- a/scilab_doc/neldermead/conclusion.tex
+++ /dev/null
@@ -1,27 +0,0 @@
1\chapter{Conclusion}
2
3That tool might be extended in future releases so that it provides the following features :
4\begin{itemize}
5\item Kelley restart based on simplex gradient [9],
6\item C-based implementation (a prototype is provided in appendix B),
7\item parallel implementation of the DIRECT algorithm,
8\item implementation of the Hook-Jeeves and Multidimensional Search methods [9]
9\item parallel implementation of the Nelder-Mead algorithm. See for example [21].
10?This paper generalizes the widely used Nelder and Mead (Comput J
117:308?313, 1965) simplex algorithm to parallel processors. Unlike most
12previous parallelization methods, which are based on parallelizing the
13tasks required to compute a specific objective function given a vector
14of parameters, our parallel simplex algorithm uses parallelization at
15the parameter level. Our parallel simplex algorithm assigns to each
16processor a separate vector of parameters corresponding to a point on a
17simplex. The processors then conduct the simplex search steps for an
18improved point, communicate the results, and a new simplex is formed.
19The advantage of this method is that our algorithm is generic and can be
20applied, without re-writing computer code, to any optimization problem
21which the non-parallel Nelder?Mead is applicable. The method is also
22easily scalable to any degree of parallelization up to the number of
23parameters. In a series of Monte Carlo experiments, we show that this
24parallel simplex method yields computational savings in some experiments
25up to three times the number of processors.?
26\end{itemize}
27
diff --git a/scilab_doc/neldermead/fminsearch-so.pdf b/scilab_doc/neldermead/fminsearch-so.pdf
deleted file mode 100644
index f966125..0000000
--- a/scilab_doc/neldermead/fminsearch-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch-so.tex b/scilab_doc/neldermead/fminsearch-so.tex
deleted file mode 100644
index 708c090..0000000
--- a/scilab_doc/neldermead/fminsearch-so.tex
+++ /dev/null
@@ -1,87 +0,0 @@
1\documentclass[12pt]{report}
2
3\include{macros}
4
5\begin{document}
6%% User defined page headers
7\pagestyle{fancyplain}
8\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
9\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
10\lhead[]{\fancyplain{}{\bfseries\leftmark}}
11\rhead[]{\fancyplain{}{\bfseries\thepage}}
12\cfoot{}
13
14%% User defined figure legends
15\makeatletter
16\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
17\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
18\let\fnum@figure\f@ffrench%
19\let\captionORI\caption
20\def\caption#1{\captionORI{\rm\small #1}}
21\makeatother
22
23%% First page
24\thispagestyle{empty}
25{
26\begin{center}
27%% Comment for DVI
28\includegraphics[height=40mm]{scilab_logo}
29\vskip2cm
30
31%% Empty space between the box and the text
32\fboxsep6mm
33%% Box thickness
34\fboxrule1.3pt
35\Huge
36$$\fbox{$
37 \begin{array}{c}
38 \textbf{Nelder-Mead}\\
39 \textbf{User's Manual}\\
40 \textbf{-- The Fminsearch Function --}\\
41 \end{array}
42 $}
43$$
44\end{center}
45
46\vskip1cm
47
48\begin{center}
49\begin{large}
50Micha\"el BAUDIN
51\end{large}
52\end{center}
53
54\vskip2cm
55
56
57\vskip1cm
58
59
60\begin{flushright}
61Version 0.3 \\
62September 2009
63\end{flushright}
64
65
66
67\clearpage
68
69
70\tableofcontents
71
72\include{fminsearch/fminsearch}
73
74\clearpage
75
76%% Bibliography
77
78\addcontentsline{toc}{chapter}{Bibliography}
79\bibliographystyle{plain}
80\bibliography{neldermead}
81
82% Index
83\addcontentsline{toc}{chapter}{Index}
84\printindex
85
86\end{document}
87
diff --git a/scilab_doc/neldermead/fminsearch/fminsearch.tex b/scilab_doc/neldermead/fminsearch/fminsearch.tex
deleted file mode 100644
index c0d954a..0000000
--- a/scilab_doc/neldermead/fminsearch/fminsearch.tex
+++ /dev/null
@@ -1,782 +0,0 @@
1\chapter{The \scifunction{fminsearch} function}
2\index{fminsearch}
3
4In this chapter, we analyze the implementation of the \scifunction{fminsearch}
5which is provided in Scilab. In the first part, we describe the specific
6choices of this implementation with respect to the Nelder-Mead algorithm.
7In the second part, we present some numerical experiments which
8allows to check that the feature is behaving as expected, by comparison
9to Matlab's \scifunction{fminsearch}.
10
11\section{\scifunction{fminsearch}'s algorithm}
12
13In this section, we analyse the specific choices used in
14\scifunction{fminsearch}'s algorithm. We detail what specific variant
15of the Nelder-Mead algorithm is performed, what initial simplex is used,
16the default number of iterations and the termination criteria.
17
18\subsection{The algorithm}
19
20The algorithm used is the Nelder-Mead algorithm. This corresponds to the
21"variable" value of the "-method" option of the \scifunction{neldermead}.
22The "non greedy" version is used, that is, the expansion point is
23accepted only if it improves over the reflection point.
24
25\subsection{The initial simplex}
26\index{Pfeffer, L.}
27\index{Fan, Ellen}
28
29The fminsearch algorithm uses a special initial simplex, which is an
30heuristic depending on the initial guess. The strategy chosen by
31fminsearch corresponds to the -simplex0method flag of the neldermead
32component, with the "pfeffer" method. It is associated with the -
33simplex0deltausual = 0.05 and -simplex0deltazero = 0.0075 parameters.
34Pfeffer's method is an heuristic which is presented in "Global
35Optimization Of Lennard-Jones Atomic Clusters" by Ellen Fan \cite{Fan2002}.
36It is due to L. Pfeffer at Stanford. See in the help of optimsimplex for more
37details.
38
39\subsection{The number of iterations}
40
41In this section, we present the default values for the number of
42iterations in fminsearch.
43
44The options input argument is an optionnal data structure which can
45contain the options.MaxIter field. It stores the maximum number of
46iterations. The default value is 200n, where n is the number of
47variables. The factor 200 has not been chosen by chance, but is the
48result of experiments performed against quadratic functions with
49increasing space dimension.
50
51This result is presented in "Effect of dimensionality on the nelder-mead
52simplex method" by Lixing Han and Michael Neumann \cite{HanNeumann2006}. This paper is based
53on Lixing Han's PhD, "Algorithms in Unconstrained Optimization" \cite{Han2000}. The
54study is based on numerical experiment with a quadratic function where
55the number of terms depends on the dimension of the space (i.e. the
56number of variables). Their study shows that the number of iterations
57required to reach the tolerance criteria is roughly 100n. Most
58iterations are based on inside contractions. Since each step of the
59Nelder-Mead algorithm only require one or two function evaluations, the
60number of required function evaluations in this experiment is also
61roughly 100n.
62
63\subsection{The termination criteria}
64
65The algorithm used by \scifunction{fminsearch} uses a particular
66termination criteria, based both on the absolute size of the
67simplex and the difference of the function values in the simplex.
68This termination criteria corresponds to the "-tolssizedeltafvmethod"
69termination criteria of the \scifunction{neldermead} component.
70
71The size of the simplex is computed with the $\sigma-+$ method,
72which corresponds to the "sigmaplus" method of the \scifunction{optimsimplex}
73component. The tolerance associated with this criteria is
74given by the "TolX" parameter of the \scifunction{options} data structure.
75Its default value is 1.e-4.
76
77The function value difference is the difference
78between the highest and the lowest function value in the simplex.
79The tolerance associated with this criteria is given by the
80"TolFun" parameter of the \scifunction{options} data structure.
81Its default value is 1.e-4.
82
83\section{Numerical experiments}
84
85In this section, we analyse the behaviour of Scilab's \scifunction{fminsearch}
86function, by comparison of Matlab's \scifunction{fminsearch}. We especially analyse
87the results of the optimization, so that we can check that the algorithm
88is indeed behaving the same way, even if the implementation is completely
89different.
90
91We consider the unconstrained optimization problem \cite{citeulike:1903787}
92\begin{eqnarray}
93\min f(\bx)
94\end{eqnarray}
95where $\bx\in\RR^2$ and the objective function $f$ is defined by
96\begin{eqnarray}
97f(\bx) = 100*(x_2-x_1^2)^2+(1-x_1)^2.
98\end{eqnarray}
99The initial guess is
100\begin{eqnarray}
101\bx^0 = ( -1.2 , 1.)^T,
102\end{eqnarray}
103where the function value is
104\begin{eqnarray}
105f(\bx^0) = 24.2.
106\end{eqnarray}
107The global solution of this problem is
108\begin{eqnarray}
109\bx^\star = ( 1 , 1.)^T
110\end{eqnarray}
111where the function value is
112\begin{eqnarray}
113f(\bx^\star) = 0.
114\end{eqnarray}
115
116\subsection{Algorithm and numerical precision}
117
118In this section, we are concerned by the comparison of the behavior
119of the two algorithms. We are going to check that the algorithms
120produces the same intermediate and final results.
121We also analyze the numerical precision of the results,
122by detailing the number of significant digits.
123
124To make a more living presentation of this topic, we will
125include small scripts which allow to produce the output
126that we are going to analyze. Because of the similarity of the languages,
127in order to avoid confusion, we will specify, for each script, the language
128we use by a small comment. Scripts and outputs written in Matlab's language will begin with
129\lstset{language=matlabscript}
130\begin{lstlisting}
131% Matlab
132% ...
133\end{lstlisting}
134while script written in Scilab's language will begin with
135\lstset{language=scilabscript}
136\begin{lstlisting}
137// Scilab
138// ...
139\end{lstlisting}
140
141The following Matlab script allows to see the behaviour of Matlab's \scifunction{fminsearch}
142function on Rosenbrock's test case.
143
144\lstset{language=matlabscript}
145\begin{lstlisting}
146% Matlab
147format long
148banana = @(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;
149[x,fval,exitflag,output] = fminsearch(banana,[-1.2, 1])
150output.message
151\end{lstlisting}
152
153When this script is launched in Matlab, the following output is
154produced.
155
156\lstset{language=matlabscript}
157\begin{lstlisting}
158>> % Matlab
159>> format long
160>> banana = @(x)100*(x(2)-x(1)^2)^2+(1-x(1))^2;
161>> [x,fval] = fminsearch(banana,[-1.2, 1])
162>> [x,fval,exitflag,output] = fminsearch(banana,[-1.2, 1])
163x =
164 1.000022021783570 1.000042219751772
165fval =
166 8.177661197416674e-10
167exitflag =
168 1
169output =
170 iterations: 85
171 funcCount: 159
172 algorithm: 'Nelder-Mead simplex direct search'
173 message: [1x194 char]
174>> output.message
175ans =
176Optimization terminated:
177the current x satisfies the termination criteria using
178OPTIONS.TolX of 1.000000e-04
179and F(X) satisfies the convergence criteria using
180OPTIONS.TolFun of 1.000000e-04
181\end{lstlisting}
182
183The following Scilab script allows to solve the problem with Scilab's
184\scifunction{fminsearch}.
185
186\lstset{language=scilabscript}
187\begin{lstlisting}
188// Scilab
189format(25)
190function y = banana (x)
191 y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
192endfunction
193[x , fval , exitflag , output] = fminsearch ( banana , [-1.2 1] )
194output.message
195\end{lstlisting}
196
197The output associated with this Scilab script is the following.
198
199\lstset{language=scilabscript}
200\begin{lstlisting}
201-->// Scilab
202-->format(25)
203-->function y = banana (x)
204--> y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
205-->endfunction
206-->[x , fval , exitflag , output] = fminsearch ( banana , [-1.2 1] )
207 output =
208 algorithm: "Nelder-Mead simplex direct search"
209 funcCount: 159
210 iterations: 85
211 message: [3x1 string]
212 exitflag =
213 1.
214 fval =
215 0.0000000008177661099387
216 x =
217 1.0000220217835567027009 1.0000422197517710998227
218-->output.message
219 ans =
220
221!Optimization terminated: !
222! !
223!the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004 !
224! !
225!and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-004 !
226\end{lstlisting}
227
228Because the two softwares do not use the same formatting rules
229to produce their outputs, we must perform additionnal checking
230in order to check our results.
231
232The following Scilab script displays the results with 16 significant digits.
233
234\lstset{language=scilabscript}
235\begin{lstlisting}
236// Scilab
237// Print the result with 15 significant digits
238mprintf ( "%.15e" , fval );
239mprintf ( "%.15e %.15e" , x(1) , x(2) );
240\end{lstlisting}
241
242The previous script produces the following output.
243
244\lstset{language=scilabscript}
245\begin{lstlisting}
246-->// Scilab
247-->mprintf ( "%.15e" , fval );
2488.177661099387146e-010
249-->mprintf ( "%.15e %.15e" , x(1) , x(2) );
2501.000022021783557e+000 1.000042219751771e+000
251\end{lstlisting}
252
253These results are reproduced verbatim in the table
254\ref{fig-fminsearch-comparison}.
255
256\begin{figure}[htbp]
257\begin{center}
258\begin{tabular}{|l|l|l|}
259\hline
260Matlab Iterations & 85 &\\
261Scilab Iterations & 85 &\\
262\hline
263Matlab Function Evaluations & 159 &\\
264Scilab Function Evaluations & 159 &\\
265\hline
266Matlab $\bx^\star$ & 1.000022021783570 & 1.000042219751772 \\
267Scilab $\bx^\star$ & 1.000022021783557e+000 & 1.000042219751771e+000 \\
268\hline
269Matlab $f(\bx^\star)$ & 8.177661197416674e-10 &\\
270Scilab $f(\bx^\star)$ & 8.177661099387146e-010 &\\
271\hline
272\end{tabular}
273\end{center}
274\caption{Numerical experiment with Rosenbrock's function -- Comparison of
275results produced by Matlab and Scilab.}
276\label{fig-fminsearch-comparison}
277\end{figure}
278
279We must compute the common number of significant digits
280in order to check the consistency of the results.
281The following Scilab script computes the relative error
282between Scilab and Matlab results.
283
284\lstset{language=scilabscript}
285\begin{lstlisting}
286// Scilab
287// Compare the result
288xmb = [1.000022021783570 1.000042219751772 ];
289err = norm(x - xmb) / norm(xmb);
290mprintf ( "Relative Error on x : %e\n", err );
291fmb = 8.177661197416674e-10;
292err = abs(fval - fmb) / abs(fmb);
293mprintf ( "Relative Error on f : %e\n", err );
294\end{lstlisting}
295
296The previous script produces the following output.
297
298\lstset{language=scilabscript}
299\begin{lstlisting}
300// Scilab
301Relative Error on x : 9.441163e-015
302Relative Error on f : 1.198748e-008
303\end{lstlisting}
304
305We must take into account for the floating point implementations
306of both Matlab and Scilab. In both these numerical softwares,
307double precision floating point numbers are used, i.e. the relative
308precision is both these softwares is $\epsilon \approx 10^{-16}$.
309That implies that there are approximately 16 significant digits.
310Therefore, the relative error on $x$, which is equivalent to 15
311significant digits, is acceptable.
312
313Therefore, the result is as close as possible to the result produced
314by Matlab. More specifically :
315\begin{itemize}
316\item the optimum $x$ is the same up to 15 significant digits,
317\item the function value at optimum is the same up to 8 significant digits,
318\item the number of iterations is the same,
319\item the number of function evaluations is the same,
320\item the exit flag is the same,
321\item the content of the output is the same (but the string is not
322display the same way).
323\end{itemize}
324
325The output of the two functions is the same.
326We must now check that the algorithms performs the same way,
327that is, produces the same intermediate steps.
328
329The following Matlab script allows to get deeper information by printing a message at each iteration
330with the "Display" option.
331
332\index{optimset}
333
334\lstset{language=matlabscript}
335\begin{lstlisting}
336% Matlab
337opt = optimset('Display','iter');
338[x,fval,exitflag,output] = fminsearch(banana,[-1.2, 1] , opt );
339\end{lstlisting}
340
341The previous script produces the following output.
342
343\lstset{language=matlabscript}
344\begin{lstlisting}
345% Matlab
346 Iteration Func-count min f(x) Procedure
347 0 1 24.2
348 1 3 20.05 initial simplex
349 2 5 5.1618 expand
350 3 7 4.4978 reflect
351 4 9 4.4978 contract outside
352 5 11 4.38136 contract inside
353 6 13 4.24527 contract inside
354 7 15 4.21762 reflect
355 8 17 4.21129 contract inside
356 9 19 4.13556 expand
357 10 21 4.13556 contract inside
358 11 23 4.01273 expand
359 12 25 3.93738 expand
360 13 27 3.60261 expand
361 14 28 3.60261 reflect
362 15 30 3.46622 reflect
363 16 32 3.21605 expand
364 17 34 3.16491 reflect
365 18 36 2.70687 expand
366 19 37 2.70687 reflect
367 20 39 2.00218 expand
368 21 41 2.00218 contract inside
369 22 43 2.00218 contract inside
370 23 45 1.81543 expand
371 24 47 1.73481 contract outside
372 25 49 1.31697 expand
373 26 50 1.31697 reflect
374 27 51 1.31697 reflect
375 28 53 1.1595 reflect
376 29 55 1.07674 contract inside
377 30 57 0.883492 reflect
378 31 59 0.883492 contract inside
379 32 61 0.669165 expand
380 33 63 0.669165 contract inside
381 34 64 0.669165 reflect
382 35 66 0.536729 reflect
383 36 68 0.536729 contract inside
384 37 70 0.423294 expand
385 38 72 0.423294 contract outside
386 39 74 0.398527 reflect
387 40 76 0.31447 expand
388 41 77 0.31447 reflect
389 42 79 0.190317 expand
390 43 81 0.190317 contract inside
391 44 82 0.190317 reflect
392 45 84 0.13696 reflect
393 46 86 0.13696 contract outside
394 47 88 0.113128 contract outside
395 48 90 0.11053 contract inside
396 49 92 0.10234 reflect
397 50 94 0.101184 contract inside
398 51 96 0.0794969 expand
399 52 97 0.0794969 reflect
400 53 98 0.0794969 reflect
401 54 100 0.0569294 expand
402 55 102 0.0569294 contract inside
403 56 104 0.0344855 expand
404 57 106 0.0179534 expand
405 58 108 0.0169469 contract outside
406 59 110 0.00401463 reflect
407 60 112 0.00401463 contract inside
408 61 113 0.00401463 reflect
409 62 115 0.000369954 reflect
410 63 117 0.000369954 contract inside
411 64 118 0.000369954 reflect
412 65 120 0.000369954 contract inside
413 66 122 5.90111e-005 contract outside
414 67 124 3.36682e-005 contract inside
415 68 126 3.36682e-005 contract outside
416 69 128 1.89159e-005 contract outside
417 70 130 8.46083e-006 contract inside
418 71 132 2.88255e-006 contract inside
419 72 133 2.88255e-006 reflect
420 73 135 7.48997e-007 contract inside
421 74 137 7.48997e-007 contract inside
422 75 139 6.20365e-007 contract inside
423 76 141 2.16919e-007 contract outside
424 77 143 1.00244e-007 contract inside
425 78 145 5.23487e-008 contract inside
426 79 147 5.03503e-008 contract inside
427 80 149 2.0043e-008 contract inside
428 81 151 1.12293e-009 contract inside
429 82 153 1.12293e-009 contract outside
430 83 155 1.12293e-009 contract inside
431 84 157 1.10755e-009 contract outside
432 85 159 8.17766e-010 contract inside
433
434Optimization terminated:
435 the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004
436 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-004
437\end{lstlisting}
438
439The following Scilab script set the "Display" option to "iter" and
440run the \scifunction{fminsearch} function.
441\index{optimset}
442
443\lstset{language=scilabscript}
444\begin{lstlisting}
445// Scilab
446opt = optimset ( "Display" , "iter" );
447[x , fval , exitflag , output] = fminsearch ( banana , [-1.2 1] , opt );
448\end{lstlisting}
449
450\lstset{language=scilabscript}
451\begin{lstlisting}
452// Scilab
453 Iteration Func-count min f(x) Procedure
454 0 3 24.2
455 1 3 20.05 initial simplex
456 2 5 5.161796 expand
457 3 7 4.497796 reflect
458 4 9 4.497796 contract outside
459 5 11 4.3813601 contract inside
460 6 13 4.2452728 contract inside
461 7 15 4.2176247 reflect
462 8 17 4.2112906 contract inside
463 9 19 4.1355598 expand
464 10 21 4.1355598 contract inside
465 11 23 4.0127268 expand
466 12 25 3.9373812 expand
467 13 27 3.602606 expand
468 14 28 3.602606 reflect
469 15 30 3.4662211 reflect
470 16 32 3.2160547 expand
471 17 34 3.1649126 reflect
472 18 36 2.7068692 expand
473 19 37 2.7068692 reflect
474 20 39 2.0021824 expand
475 21 41 2.0021824 contract inside
476 22 43 2.0021824 contract inside
477 23 45 1.8154337 expand
478 24 47 1.7348144 contract outside
479 25 49 1.3169723 expand
480 26 50 1.3169723 reflect
481 27 51 1.3169723 reflect
482 28 53 1.1595038 reflect
483 29 55 1.0767387 contract inside
484 30 57 0.8834921 reflect
485 31 59 0.8834921 contract inside
486 32 61 0.6691654 expand
487 33 63 0.6691654 contract inside
488 34 64 0.6691654 reflect
489 35 66 0.5367289 reflect
490 36 68 0.5367289 contract inside
491 37 70 0.4232940 expand
492 38 72 0.4232940 contract outside
493 39 74 0.3985272 reflect
494 40 76 0.3144704 expand
495 41 77 0.3144704 reflect
496 42 79 0.1903167 expand
497 43 81 0.1903167 contract inside
498 44 82 0.1903167 reflect
499 45 84 0.1369602 reflect
500 46 86 0.1369602 contract outside
501 47 88 0.1131281 contract outside
502 48 90 0.1105304 contract inside
503 49 92 0.1023402 reflect
504 50 94 0.1011837 contract inside
505 51 96 0.0794969 expand
506 52 97 0.0794969 reflect
507 53 98 0.0794969 reflect
508 54 100 0.0569294 expand
509 55 102 0.0569294 contract inside
510 56 104 0.0344855 expand
511 57 106 0.0179534 expand
512 58 108 0.0169469 contract outside
513 59 110 0.0040146 reflect
514 60 112 0.0040146 contract inside
515 61 113 0.0040146 reflect
516 62 115 0.0003700 reflect
517 63 117 0.0003700 contract inside
518 64 118 0.0003700 reflect
519 65 120 0.0003700 contract inside
520 66 122 0.0000590 contract outside
521 67 124 0.0000337 contract inside
522 68 126 0.0000337 contract outside
523 69 128 0.0000189 contract outside
524 70 130 0.0000085 contract inside
525 71 132 0.0000029 contract inside
526 72 133 0.0000029 reflect
527 73 135 0.0000007 contract inside
528 74 137 0.0000007 contract inside
529 75 139 0.0000006 contract inside
530 76 141 0.0000002 contract outside
531 77 143 0.0000001 contract inside
532 78 145 5.235D-08 contract inside
533 79 147 5.035D-08 contract inside
534 80 149 2.004D-08 contract inside
535 81 151 1.123D-09 contract inside
536 82 153 1.123D-09 contract outside
537 83 155 1.123D-09 contract inside
538 84 157 1.108D-09 contract outside
539 85 159 8.178D-10 contract inside
540
541Optimization terminated:
542 the current x satisfies the termination criteria using OPTIONS.TolX of 1.000000e-004
543 and F(X) satisfies the convergence criteria using OPTIONS.TolFun of 1.000000e-004
544\end{lstlisting}
545
546We check that the two softwares produces indeed the same intermediate results in terms
547of iteration, function evaluations, function values and type of steps.
548The only difference is the iteration \#0, which is associated with
549function evaluation \#1 in Matlab and with function evaluation \#3 in Scilab.
550This is because Scilab calls back the output function once the initial
551simplex is computed, which requires 3 function evaluations.
552
553\subsection{Output and plot functions}
554
555In this section, we check that the output and plot features of the
556\scifunction{fminsearch} function are the same.
557We also check that the fields and the content of the \scivar{optimValues}
558data structure and the \scivar{state} variable are the same in
559both languages.
560
561The following output function plots in the current graphic
562window the value of the current parameter $\bx$.
563It also unloads the content of the \scivar{optimValues}
564data structure and prints a message in the console.
565To let Matlab load that script, save the content in a
566.m file, in a directory known by Matlab.
567
568\lstset{language=matlabscript}
569\begin{lstlisting}
570% Matlab
571function stop = outfun(x, optimValues, state)
572stop = false;
573hold on;
574plot(x(1),x(2),'.');
575fc = optimValues.funccount;
576fv = optimValues.fval;
577it = optimValues.iteration;
578pr = optimValues.procedure;
579disp(sprintf ( '%d %e %d -%s- %s\n' , fc , fv , it , pr , state ))
580drawnow
581\end{lstlisting}
582
583The following Matlab script allows to perform the optimization
584so that the output function is called back at each iteration.
585\index{optimset}
586
587\lstset{language=matlabscript}
588\begin{lstlisting}
589% Matlab
590options = optimset('OutputFcn', @outfun);
591[x fval] = fminsearch(banana, [-1.2, 1], options)
592\end{lstlisting}
593
594This produces the plot which is presented in figure \ref{fig-fminsearch-matlab-outputfun}.
595
596\begin{figure}
597\begin{center}
598\includegraphics[width=10cm]{fminsearch/testFminsearchPlotMatlab.png}
599\end{center}
600\caption{Plot produced by Matlab's fminsearch, with customized output function.}
601\label{fig-fminsearch-matlab-outputfun}
602\end{figure}
603
604Matlab also prints the following messages in the console.
605
606\lstset{language=matlabscript}
607\begin{lstlisting}
608% Matlab
6091 2.420000e+001 0 -- init
6101 2.420000e+001 0 -- iter
6113 2.005000e+001 1 -initial simplex- iter
6125 5.161796e+000 2 -expand- iter
6137 4.497796e+000 3 -reflect- iter
6149 4.497796e+000 4 -contract outside- iter
61511 4.381360e+000 5 -contract inside- iter
61613 4.245273e+000 6 -contract inside- iter
617[...]
618149 2.004302e-008 80 -contract inside- iter
619151 1.122930e-009 81 -contract inside- iter
620153 1.122930e-009 82 -contract outside- iter
621155 1.122930e-009 83 -contract inside- iter
622157 1.107549e-009 84 -contract outside- iter
623159 8.177661e-010 85 -contract inside- iter
624159 8.177661e-010 85 -contract inside- done
625\end{lstlisting}
626
627The following Scilab script sets the "OutputFcn" option and then calls
628the \scifunction{fminsearch} in order to perform the optimization.
629\index{optimset}
630
631\lstset{language=scilabscript}
632\begin{lstlisting}
633// Scilab
634function outfun ( x , optimValues , state )
635 plot( x(1),x(2),'.');
636 fc = optimValues.funccount;
637 fv = optimValues.fval;
638 it = optimValues.iteration;
639 pr = optimValues.procedure;
640 mprintf ( "%d %e %d -%s- %s\n" , fc , fv , it , pr , state )
641endfunction
642opt = optimset ( "OutputFcn" , outfun);
643[x fval] = fminsearch ( banana , [-1.2 1] , opt );
644\end{lstlisting}
645
646The previous script produces the plot which is presented
647in figure \ref{fig-fminsearch-scilab-outputfun}.
648
649\begin{figure}
650\begin{center}
651\includegraphics[width=10cm]{fminsearch/testFminsearchPlotScilab.png}
652\end{center}
653\caption{Plot produced by Scilab's fminsearch, with customized output function.}
654\label{fig-fminsearch-scilab-outputfun}
655\end{figure}
656
657Except for the size of the dots (which can be configured in
658both softwares), the graphics are exactly the same.
659
660Scilab also prints the following messages in the console.
661
662\lstset{language=scilabscript}
663\begin{lstlisting}
664// Scilab
6653 2.420000e+001 0 -- init
6663 2.005000e+001 1 -initial simplex- iter
6675 5.161796e+000 2 -expand- iter
6687 4.497796e+000 3 -reflect- iter
6699 4.497796e+000 4 -contract outside- iter
67011 4.381360e+000 5 -contract inside- iter
67113 4.245273e+000 6 -contract inside- iter
672[...]
673149 2.004302e-008 80 -contract inside- iter
674151 1.122930e-009 81 -contract inside- iter
675153 1.122930e-009 82 -contract outside- iter
676155 1.122930e-009 83 -contract inside- iter
677157 1.107549e-009 84 -contract outside- iter
678159 8.177661e-010 85 -contract inside- iter
679159 8.177661e-010 85 -- done
680\end{lstlisting}
681
682We see that the output produced by the two software are identical,
683expect for the two first lines and the last line.
684The lines \#1 and \#2 are different is because Scilab computes the
685function values of all the vertices before calling back the output function.
686The last line is different because Scilab considers that once the optimization
687is performed, the type of the step is an empty string. Instead, Matlab
688displays the type of the last performed step.
689
690\subsection{Predefined plot functions}
691
692\index{optimplotfval}
693\index{optimplotx}
694\index{optimplotfunccount}
695
696Several pre-defined plot functions are provided with
697the \scifunction{fminsearch} function.
698These functions are
699\begin{itemize}
700\item \scifunction{optimplotfval},
701\item \scifunction{optimplotx},
702\item \scifunction{optimplotfunccount}.
703\end{itemize}
704
705In the following Matlab script, we use the \scifunction{optimplotfval}
706pre-defined function.
707\index{optimset}
708
709\lstset{language=matlabscript}
710\begin{lstlisting}
711% Matlab
712options = optimset('PlotFcns',@optimplotfval);
713[x fval] = fminsearch(banana , [-1.2, 1] , options)
714\end{lstlisting}
715
716The previous script produces the plot which is presented in figure
717\ref{fig-fminsearch-matlab-optimplotfval}.
718
719\begin{figure}
720\begin{center}
721\includegraphics[width=10cm]{fminsearch/testFminsearchOptimplotfvalMatlab.png}
722\end{center}
723\caption{Plot produced by Matlab's fminsearch, with the \scifunction{optimplotfval} function.}
724\label{fig-fminsearch-matlab-optimplotfval}
725\end{figure}
726
727The following Scilab script uses the \scifunction{optimplotfval}
728pre-defined function.
729\index{optimset}
730
731\lstset{language=scilabscript}
732\begin{lstlisting}
733// Scilab
734opt = optimset ( "OutputFcn" , optimplotfval );
735[x fval] = fminsearch ( banana , [-1.2 1] , opt );
736\end{lstlisting}
737
738The previous script produces the plot which is presented in figure
739\ref{fig-fminsearch-scilab-optimplotfval}.
740
741\begin{figure}
742\begin{center}
743\includegraphics[width=10cm]{fminsearch/testFminsearchOptimplotfvalScilab.png}
744\end{center}
745\caption{Plot produced by Scilab's fminsearch, with the \scifunction{optimplotfval} function.}
746\label{fig-fminsearch-scilab-optimplotfval}
747\end{figure}
748
749The comparison between the figures \ref{fig-fminsearch-matlab-optimplotfval} and
750\ref{fig-fminsearch-scilab-optimplotfval} shows that the two features produce
751very similar plots. Notice that Scilab's \scifunction{fminsearch} does not
752provide the "Stop" and "Pause" buttons.
753
754The figures \ref{fig-fminsearch-scilab-optimplotx} and \ref{fig-fminsearch-scilab-optimplotfunccount}
755present the results of Scilab's \scifunction{optimplotx} and \scifunction{optimplotfunccount}
756functions.
757
758\begin{figure}
759\begin{center}
760\includegraphics[width=10cm]{fminsearch/testFminsearchOptimplotxScilab.png}
761\end{center}
762\caption{Plot produced by Scilab's fminsearch, with the \scifunction{optimplotx} function.}
763\label{fig-fminsearch-scilab-optimplotx}
764\end{figure}
765
766\begin{figure}
767\begin{center}
768\includegraphics[width=10cm]{fminsearch/testFminsearchOptimplotfunccountScilab.png}
769\end{center}
770\caption{Plot produced by Scilab's fminsearch, with the \scifunction{optimplotfunccount} function.}
771\label{fig-fminsearch-scilab-optimplotfunccount}
772\end{figure}
773
774\section{Conclusion}
775
776The current version of Scilab's \scifunction{fminsearch} provides the same algorithm
777as Matlab's \scifunction{fminsearch}. The numerical precision is the same.
778The \scifunction{optimset} and \scifunction{optimget} functions allows to configure the optimization,
779as well as the output and plotting function.
780Pre-defined plotting function allows to get a fast and nice plot of the optimization.
781
782
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfunccountScilab.png b/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfunccountScilab.png
deleted file mode 100644
index 28ca428..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfunccountScilab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalMatlab.png b/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalMatlab.png
deleted file mode 100644
index 8e50630..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalMatlab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalScilab.png b/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalScilab.png
deleted file mode 100644
index 8651bdb..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotfvalScilab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxMatlab.png b/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxMatlab.png
deleted file mode 100644
index 9ef102a..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxMatlab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxScilab.png b/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxScilab.png
deleted file mode 100644
index 7697c0e..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchOptimplotxScilab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchPlotMatlab.png b/scilab_doc/neldermead/fminsearch/testFminsearchPlotMatlab.png
deleted file mode 100644
index 09e3476..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchPlotMatlab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/fminsearch/testFminsearchPlotScilab.png b/scilab_doc/neldermead/fminsearch/testFminsearchPlotScilab.png
deleted file mode 100644
index 5408533..0000000
--- a/scilab_doc/neldermead/fminsearch/testFminsearchPlotScilab.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/implementations.tex b/scilab_doc/neldermead/implementations.tex
deleted file mode 100644
index 0cd7be6..0000000
--- a/scilab_doc/neldermead/implementations.tex
+++ /dev/null
@@ -1,229 +0,0 @@
1\chapter{Implementations of the Nelder-Mead algorithm}
2
3In the following sections, we analyze the various implementations of the
4Nelder-Mead algorithm. We analyze the Matlab implementation provided
5by the \emph{fminsearch} command. We analyze the matlab algorithm provided by
6C.T. Kelley and the Scilab port by Y. Collette. We
7present the Numerical Recipes implementations. We analyze the O'Neill
8fortran 77 implementation "AS47". The Burkardt implementation is also covered.
9The implementation provided in the NAG collection is detailed.
10The Nelder-Mead algorithm from the Gnu Scientific Library is analyzed.
11
12\section{Matlab : fminsearch}
13
14The Matlab command fminsearch implements the Nelder-Mead algorithm \cite{MatlabFminsearch}.
15It provides features such as
16\begin{itemize}
17\item maximum number of function evaluations,
18\item maximum number of iterations,
19\item termination tolerance on the function value,
20\item termination tolerance on $x$,
21\item output command to display the progress of the algorithm.
22\end{itemize}
23
24\section{Kelley and the Nelder-Mead algorithm}
25\index{Kelley, C. T.}
26
27C.T. Kelley has written a book \cite{Kelley1999} on optimization method and devotes a
28complete chapter to direct search algorithms, especially the Nelder-Mead
29algorithm. Kelley provides in \cite{KelleyMethodsOptimizationMatlabCodes}
30the Matlab implementation of the
31Nelder-Mead algorithm. That implementation uses the restart strategy
32that Kelley has published in \cite{589283} and which improves the possible
33stagnation of the algorithm on non local optimization points. No tests
34are provided.
35
36The following is extracted from the README provided with these
37algorithms.
38
39\begin{verbatim}
40These files are current as of December 9, 1998.
41
42-----------------
43
44MATLAB/FORTRAN software for Iterative Methods for Optimization
45
46by C. T. Kelley
47
48These M-files are implementations of the algorithms from the book
49"Iterative Methods for Optimization", to be published by SIAM,
50by C. T. Kelley. The book, which describes the algorithms, is available
51from SIAM (service@siam.org). These files can be modified for non-commercial
52purposes provided that the authors:
53
54C. T. Kelley for all MATLAB codes,
55P. Gilmore and T. D. Choi for iffco.f
56J. M. Gablonsky for DIRECT
57
58are acknowledged and clear comment lines are inserted
59that the code has been changed. The authors assume no no responsibility
60for any errors that may exist in these routines.
61
62Questions, comments, and bug reports should be sent to
63
64Professor C. T. Kelley
65Department of Mathematics, Box 8205
66North Carolina State University
67Raleigh, NC 27695-8205
68
69(919) 515-7163
70(919) 515-3798 (FAX)
71
72Tim_Kelley@ncsu.edu
73
74\end{verbatim}
75
76
77From Scilab's point of view, that ?licence? is a problem since it
78prevents the use of the source for commercial purposes.
79
80\section{Nelder-Mead Scilab Toolbox : Lolimot}
81
82The Lolimot project by Yann Collette provide two Scilab-based Nelder-
83Mead implementations \cite{LolimotColletteURL}. The first implementation is a Scilab port of
84the Kelley script. The licence problem is therefore not solved by this
85script. The second implementation \cite{NelderMeadColletteURL} implements the restart strategy
86by Kelley. No tests are provided.
87
88\section{Numerical Recipes}
89
90The Numerical Recipes \cite{NumericalRecipes} provides the C source code of an
91implementation of the Nelder-Mead algorithm. Of course, this is a
92copyrighted material which cannot be included in Scilab.
93
94\section{NASHLIB : A19}
95
96Nashlib is a collection of Fortran subprograms from "Compact Numerical
97Methods for Computers; Linear Algebra and Function Minimisation, " by
98J.C. Nash. The subprograms are written without many of the extra
99features usually associated with commercial mathematical software, such
100as extensive error checking, and are most useful for those applications
101where small program size is particularly important. The license is
102public domain.
103
104Nahslib includes one implementation of the Nelder-Mead algorithm \cite{GAMS-A19A20-Desc},
105\cite{GAMS-A19A20-Source}. It is written in fortran 77. The coding style is "goto"-based and
106may not be easy to maintain.
107
108\section{O'Neill implementations}
109
110The paper \cite{O'Neill1971AAF} by R. O'Neil in the journal of Applied Statistics
111presents a fortran 77 implementation of the Nelder-Mead algorithm. The
112source code itself is available in \cite{O'NeillAS47}. Many of the following
113implementations are based on this primary source code. We were not able
114to get the paper \cite{O'Neill1971AAF} itself.
115
116On his website, John Burkardt gives a fortran 77 source code of the
117Nelder-Mead algorithm \cite{Burkardtasa047}. The following are the comments in the header
118of the source code.
119
120\begin{verbatim}
121
122c Discussion:
123c
124c This routine seeks the minimum value of a user-specified function.
125c
126c Simplex function minimisation procedure due to Nelder+Mead(1965),
127c as implemented by O'Neill(1971, Appl.Statist. 20, 338-45), with
128c subsequent comments by Chambers+Ertel(1974, 23, 250-1), Benyon(1976,
129c 25, 97) and Hill(1978, 27, 380-2)
130c
131c The function to be minimized must be defined by a function of
132c the form
133c
134c function fn ( x, f )
135c double precision fn
136c double precision x(*)
137c
138c and the name of this subroutine must be declared EXTERNAL in the
139c calling routine and passed as the argument FN.
140c
141c This routine does not include a termination test using the
142c fitting of a quadratic surface.
143c
144c Modified:
145c
146c 27 February 2008
147c
148c Author:
149c
150c FORTRAN77 version by R ONeill
151c Modifications by John Burkardt
152
153\end{verbatim}
154
155The "Bayesian Survival Analysis" book by Joseph G. Ibrahim, Ming-Hui
156Chen, and Debajyoti Sinha provides in \cite{SurvivalBookOptim} a fortran 77 implementation
157of the Nelder-Mead algorithm. The following is the header of the source
158code.
159
160\begin{verbatim}
161c Simplex function minimisation procedure due to Nelder+Mead(1965),
162c as implemented by O'Neill(1971, Appl.Statist. 20, 338-45), with
163c subsequent comments by Chambers+Ertel(1974, 23, 250-1), Benyon(1976,
164c 25, 97) and Hill(1978, 27, 380-2)
165\end{verbatim}
166
167The O'Neill implementation uses a restart procedure which is
168based on a local axis by axis search for the optimality of the
169computed optimum.
170
171\section{Burkardt implementations}
172\index{Burkardt, John}
173
174John Burkardt gives several implementations of the Nelder-Mead
175algorithm
176\begin{itemize}
177\item in fortran 77 \cite{Burkardtasa047}
178\item in Matlab by Jeff Borggaard \cite{BurkardtNelderMeadMatlab}.
179\end{itemize}
180
181\section{NAG Fortran implementation}
182\index{NAG}
183
184The NAG Fortran library provides the E04CCF/E04CCA routines \cite{NAGE04CCF} which
185implements the simplex optimization method.
186E04CCA is a version of E04CCF that has additional parameters
187in order to make it safe for use in multithreaded applications.
188As mentioned in the documentation, "The method tends to be slow, but it
189is robust and therefore very useful for functions that are subject to inaccuracies.".
190The termination criteria is based on the standard deviation of the function
191values of the simplex.
192
193The specification of the cost function for E04CCA is:
194\begin{verbatim}
195SUBROUTINE FUNCT ( N, XC, FC, IUSER, RUSER)
196\end{verbatim}
197where IUSER and RUSER and integer and double precision array, which allow the
198user to supply information to the cost function.
199An output routine, called MONIT is called once every iteration in E04CCF/E04CCA.
200It can be used to print out the current values of any selection of its parameters
201but must not be used to change the values of the parameters.
202
203\section{GSL implementation}
204\index{Gnu Scientific Library}
205
206The Gnu Scientific Library provides two Nelder-Mead implementations.
207The authors are Tuomo Keskitalo, Ivo Alxneit and Brian Gough.
208The size of the simplex is the root mean square sum of length of vectors
209from simplex center to corner points.
210The termination criteria is based on the size of the simplex.
211
212The C implementation of the minimization algorithm is original.
213The communication is direct, in the sense that the specific optimization
214algorithm calls back the cost function.
215A specific optimization implementation provides four functions : "alloc", "free", "iterate"
216and "set". A generic optimizer is created by connecting it to a specific optimizer.
217The user must write the loop over the iterations, making successive calls
218to the generic "iterate" function, which, in turns, calls the specific "iterate"
219associated with the specific optimization algorithm.
220
221The cost function can be provided as three function pointers
222\begin{itemize}
223\item the cost function $f$,
224\item the gradient $g$,
225\item both the cost function and the gradient.
226\end{itemize}
227Some additional parameters can be passed to these functions.
228
229
diff --git a/scilab_doc/neldermead/installation-directories.png b/scilab_doc/neldermead/installation-directories.png
deleted file mode 100644
index c70b1cb..0000000
--- a/scilab_doc/neldermead/installation-directories.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/installation.tex b/scilab_doc/neldermead/installation.tex
deleted file mode 100644
index 66cd62f..0000000
--- a/scilab_doc/neldermead/installation.tex
+++ /dev/null
@@ -1,159 +0,0 @@
1\chapter{Installation}
2
3In this section, we present the installation process for the toolbox.
4We present the steps which are required to have a running version of the
5toolbox and presents the several checks which can be performed before
6using the toolbox.
7
8\section{Architecture of the directories}
9
10We suppose that the archive has been unpacked in the "neldermead"
11directory. The following is a short list of the steps which are
12required to setup the toolbox.
13
14\begin{enumerate}
15\item build the toolbox : run the \emph{neldermead/builder.sce} script to
16create the binaries of the library, create the binaries
17for the gateway, generate the documentation
18\item load the toolbox : run the \emph{neldermead/loader.sce} script to
19load all commands and setup the documentation
20\item setup the startup configuration file of your Scilab system so that the toolbox is
21known at startup (see below for details),
22\item run the unit tests : run the \emph{neldermead/runtests.sce} script to
23perform all unit tests and check that the toolbox is OK
24\item run the demos : run the \emph{neldermead/rundemos.sce} script to
25run all demonstration scripts and get a quick interactive
26overview of its features
27\end{enumerate}
28
29The easiest way to setup your Scilab system is to configure the
30startup configuration file so that the toolboxes are known immediately
31at startup. The directory where this file is located is stored in the
32Scilab variable \emph{SCIHOME}.
33On my Linux system, the Scilab 5.1 startup file is located
34in \emph{/home/myname/.Scilab/scilab-5.1/.scilab}. On my Windows system, the Scilab 5.1 startup file is located
35in \emph{C:/Users/myname/AppData/Roaming/Scilab/scilab-5.1/.scilab}.
36This file is a regular Scilab script which is automatically
37loaded at Scilab's startup. If that file does not already
38exist, create it. Copy the following lines into the \emph{.scilab} file
39and configure the path to the toolboxes, stored in the \emph{SCILABTBX} variable.
40
41\begin{verbatim}
42ilib(0);
43SCILABTBX="/home/myname/mytoolboxes";
44exec(SCILABTBX + filesep() + 'optimbase'+ filesep() + 'loader.sce');
45exec(SCILABTBX + filesep() + 'optimsimplex'+ filesep() + 'loader.sce');
46exec(SCILABTBX + filesep() + 'neldermead'+ filesep() + 'loader.sce');
47\end{verbatim}
48
49The figure \ref{installation:builder.sce} presents the messages
50which are generated when the builder of the toolbox is launched.
51
52\begin{figure}[htbp]
53\begin{small}
54\begin{verbatim}
55-->cd neldermead/
56 ans =
57 /media/disk/SVN-Scilab/neldermead
58-->exec builder.sce
59-->// ====================================================================
60-->// Copyright INRIA 2008-2009
61-->// Allan CORNET
62-->// Simon LIPP
63-->// Michael Baudin
64-->// This file is released into the public domain
65-->// ====================================================================
66-->mode(-1);
67Building macros...
68-- Cration de [neldermeadlib] (Macros) --
69genlib: Traitement du fichier: nmplot_display.sci
70[...]
71genlib: Traitement du fichier: nmplot_configure.sci
72genlib: Regenere noms et librairie
73Building help...
74Construit le document principal dans /media/disk/SVN-Scilab/neldermead/help/en_US
75Construction du fichier manuel [javaHelp] dans /media/disk/SVN-Scilab/neldermead/help/en_US. (Veuillez patienter ... cela peut prendre un certain temps)
76Generating loader.sce...
77\end{verbatim}
78\end{small}
79\caption{Launch of the builder}
80\label{installation:builder.sce}
81\end{figure}
82
83The figure \ref{installation:loader.sce} presents the messages
84which are generated when the loader of the toolbox is launched.
85
86\begin{figure}[htbp]
87\begin{small}
88\begin{verbatim}
89->exec loader.sce
90
91-->// ====================================================================
92-->// generated by builder.sce
93-->// Copyright INRIA 2008
94-->// ====================================================================
95-->try
96--> getversion('scilab');
97-->catch
98--> warning('Scilab 5.0 or more is required.');
99--> return;
100-->end;
101-->// ====================================================================
102-->root_tlbx = get_absolute_file_path('loader.sce');
103-->exec(root_tlbx+'etc\'+'neldermead.start');
104 Start Nelder-Mead Toolbox
105 Load macros from :
106 /media/disk/SVN-Scilab/neldermead/macros/
107 Load help
108-->// ====================================================================
109-->clear root_tlbx;
110-->// ====================================================================
111\end{verbatim}
112\end{small}
113\caption{Launch of the loader}
114\label{installation:loader.sce}
115\end{figure}
116
117The figure \ref{installation:runtests.sce} presents the messages
118which are generated when the unit tests script of the toolbox is launched.
119
120\begin{figure}[htbp]
121\begin{verbatim}
122-->exec D:\Baudin\ProjetScilab\toolboxes\neldermead\runtests.sce
123-->TODO ...
124\end{verbatim}
125\caption{Launch of the unit tests script}
126\label{installation:runtests.sce}
127\end{figure}
128
129
130\section{Configuration}
131
132The directories which are provided in the toolbox
133are presented in figure \ref{installation:neldermeaddirectory}.
134
135\begin{figure}[htbp]
136\begin{center}
137\includegraphics[height=5cm]{installation-directories.png}
138\end{center}
139\caption{Architecture of the toolbox}
140\label{installation:neldermeaddirectory}
141\end{figure}
142
143This is an overview of the content of these directories :
144\begin{itemize}
145\item \emph{neldermead/demos} : demonstration scripts
146\item \emph{neldermead/doc} : the Scilab Enhancement Proposal \#21, about Nelder-Mead algorithm
147\item \emph{neldermead/doc/usermanual} : the \LaTeX sources of this manual
148\item \emph{neldermead/etc} : startup and shutdow scripts for the toolbox
149\item \emph{neldermead/help/en\_US/scilab\_en\_US\_help} : html pages of the help
150\item \emph{neldermead/jar} : java archive for the help
151\item \emph{neldermead/macros} : Scilab macros files *.sci
152\item \emph{neldermead/tests} : tests
153\item \emph{neldermead/tests/nonreg\_tests} : tests after some bug has been identified
154\item \emph{neldermead/tests/unit\_tests} : unit tests
155\end{itemize}
156
157\section{Tests}
158
159
diff --git a/scilab_doc/neldermead/introduction/introduction-demos.png b/scilab_doc/neldermead/introduction/introduction-demos.png
deleted file mode 100644
index 2cd8327..0000000
--- a/scilab_doc/neldermead/introduction/introduction-demos.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/introduction/introduction-help-fminsearch.png b/scilab_doc/neldermead/introduction/introduction-help-fminsearch.png
deleted file mode 100644
index 58fe455..0000000
--- a/scilab_doc/neldermead/introduction/introduction-help-fminsearch.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/introduction/introduction-help.png b/scilab_doc/neldermead/introduction/introduction-help.png
deleted file mode 100644
index 2740b7b..0000000
--- a/scilab_doc/neldermead/introduction/introduction-help.png
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/introduction/introduction.tex b/scilab_doc/neldermead/introduction/introduction.tex
deleted file mode 100644
index d8d2647..0000000
--- a/scilab_doc/neldermead/introduction/introduction.tex
+++ /dev/null
@@ -1,363 +0,0 @@
1\chapter{Introduction}
2
3In this introductory chapter, we make an overview of simplex-based algorithms.
4We present the main features of the \scifunction{neldermead} component, and
5show how to use the component with a simple example.
6
7\section{Overview}
8\index{Torczon, Virginia}
9\index{Wright, Margaret}
10\index{Nelder, John}
11\index{Mead, Roger}
12
13The Nelder-Mead simplex algorithm \cite{citeulike:3009487}, published in 1965, is an enormously
14popular search method for multidimensional unconstrained optimization.
15The Nelder-Mead algorithm should not be confused with the (probably)
16more famous simplex algorithm of Dantzig for linear programming. The
17Nelder-Mead algorithm is especially popular in the fields of chemistry,
18chemical engineering, and medicine. Two measures of the ubiquity of the
19Nelder-Mead algorithm are that it appears in the best-selling handbook
20Numerical Recipes and in Matlab. In \cite{Torczon89multi-directionalsearch},
21Virginia Torczon writes: "Margaret Wright has stated that over
22fifty percent of the calls received by the support group for the NAG
23software library concerned the version of the Nelder-Mead
24simplex algorithm to be found in that library". No derivative of the cost function is
25required, which makes the algorithm interesting for noisy problems.
26
27The Nelder-Mead algorithm falls in the more general class of direct
28search algorithms. These methods use values of $f$ taken from a set of
29sample points and use that information to continue the sampling. The
30Nelder-Mead algorithm maintains a simplex which are approximations of an
31optimal point. The vertices are sorted according to the objective
32function values. The algorithm attemps to replace the worst vertex with
33a new point, which depends on the worst point and the centre of the best
34vertices.
35
36\index{Spendley, W.}
37\index{Hext, G. R.}
38\index{Himsworth, F. R.}
39\index{Box, M. J.}
40
41The goal of this toolbox is to provide a Nelder-Mead (1965) direct search optimization method to solve the
42following unconstrained optimization problem
43\begin{eqnarray}
44\min f(\bx)
45\end{eqnarray}
46where $\bx\in \RR^n$, $n$ is the number of optimization parameters and $f$ is the objective
47function $f:\RR^n\rightarrow \RR$.
48In order to solve the unconstrained optimization problem, the Nelder-Mead
49algorithm uses a variable shape simplex. The toolbox also provide Spendley, Hext and Himsworth's
50algorithm \cite{Spendley1962} (1962), which uses a fixed shape simplex. Historically, the algorithm created
51by Nelder and Mead was designed as an improvement on Spendley's et al. algorithm.
52The Box complex algorithm \cite{Box1965} (1965), which is an extension of Spendley's et al. algorithm, solves the
53following constrained problem
54\begin{eqnarray}
55&&\min f(\bx)\\
56&&\ell_i \leq x_i \leq u_i, \qquad i = 1,n\\
57&&g_j(\bx)\geq 0, \qquad j = 1, m\\
58\end{eqnarray}
59where $m$ is the number of nonlinear, positive constraints and $\ell_i,u_i\in \RR^n$ are the lower
60and upper bounds of the variables.
61
62The Nelder-Mead algorithm may be used in the following optimization context :
63\begin{itemize}
64\item there is no need to provide the derivatives of the objective function,
65\item the number of parameters is small (up to 10-20),
66\item there are bounds and/or non linear constraints.
67\end{itemize}
68
69The internal design of the system is based on the following components.
70\begin{itemize}
71\item The "neldermead" component provides various simplex-based
72algorithms and manages for Nelder-Mead specific settings, such as the
73method to compute the initial simplex and the specific termination
74criteria.
75\item The "fminsearch" component provides a Scilab commands which aims
76at behaving as Matlab's fminsearch. Specific terminations criteria,
77initial simplex and auxiliary settings are automatically configured so
78that the behavior of Matlab's fminsearch is exactly reproduced.
79\item The "optimset" and "optimget" components provide Scilab commands
80to emulate their Matlab counterparts.
81\item The "nmplot" component provides features to
82produce directly output pictures for Nelder-Mead algorithm.
83\end{itemize}
84The current toolbox is based on (and therefore requires) the following components.
85\begin{itemize}
86\item The "optimbase" component provides an abstract class for a general optimization
87component, including the number of variables, the minimum and maximum
88bounds, the number of non linear inequality constraints, the logging
89system, various termination criteria, the cost function, etc...
90\item The "optimsimplex" component provides a class to manage a simplex made of an
91arbitrary number of vertices, including the computation of a simplex by
92various methods (axes, regular, Pfeffer's, randomized bounds), the
93computation of the size by various methods (diameter, sigma +, sigma-,
94etc...) and many algorithms to perform reflections and shrinkages.
95\end{itemize}
96
97The following is a list of features the Nelder-Mead algorithm currently provides :
98\begin{itemize}
99\item manage various simplex initializations
100 \begin{itemize}
101 \item initial simplex given by user,
102 \item initial simplex computed with a length and along the coordinate axes,
103 \item initial regular simplex computed with Spendley et al. formula
104 \item initial simplex computed by a small perturbation around the initial guess point
105 \end{itemize}
106\item manage cost function
107 \begin{itemize}
108 \item optionnal additionnal argument
109 \item direct communication of the task to perform : cost function or inequality constraints
110 \end{itemize}
111\item manage various termination criteria
112 \begin{itemize}
113 \item maximum number of iterations,
114 \item tolerance on function value (relative or absolute),
115 \item tolerance on x (relative or absolute),
116 \item tolerance on standard deviation of function value (original termination criteria in [3]),
117 \item maximum number of evaluations of cost function,
118 \item absolute or relative simplex size,
119 \end{itemize}
120\item manage the history of the convergence, including :
121 \begin{itemize}
122 \item the history of function values,
123 \item the history of optimum point,
124 \item the history of simplices,
125 \item the history of termination criterias,
126 \end{itemize}
127\item provide a plot command which allows to graphically see the history of the simplices toward the optimum,
128\item provide query functions for
129 \begin{itemize}
130 \item the status of the optimization process,
131 \item the number of iterations,
132 \item the number of function evaluations,
133 \item the status of execution,
134 \item the function value at initial point,
135 \item the function value at optimal point,
136 \item etc...
137 \end{itemize}
138\item Spendley et al. fixed shaped algorithm,
139\item Kelley restart based on simplex gradient,
140\item O'Neill restart based on factorial search around optimum,
141\item Box-like method managing bounds and nonlinear inequality constraints based on arbitrary number of vertices in the simplex.
142\end{itemize}
143
144\section{How to use the Toolbox}
145
146The design of the toolbox is based on the creation of
147a new token by the \scifunction{neldermead\_new} function.
148The Nelder-Mead object associated with this token can then
149be configured with \scifunction{neldermead\_configure} and queried
150with \scifunction{neldermead\_cget}. For example, the
151\scifunction{neldermead\_configure} command allows to configure the
152number of variables, the objective function and the initial guess.
153
154The main command of the toolbox is the \scifunction{neldermead\_search} command, which
155solves the optimization problem. After an optimization has been performed,
156the \scifunction{neldermead\_get} command allows to retrieve the optimum $x^\star$,
157as well as other parameters, such as the number of iterations performed, the number
158of evaluations of the function, etc...
159
160Once the optimization is finished, the \scifunction{neldermead\_destroy} function
161deletes the object.
162
163\section{An example}
164
165In the following example, we search the minimum of the 2D Rosenbrock function \cite{citeulike:1903787},
166defined by
167\begin{eqnarray}
168f(x_1,x_2) = 100(x_2 - x_1)^2 + (1-x_1)^2
169\end{eqnarray}
170
171The following Scilab script allows to find the solution of the problem.
172We begin by defining the function \scifunction{rosenbrock} which computes the Rosenbrock function.
173The traditionnal initial guess $(-1.2 , 1.0)$ is used, which corresponds
174to the "-x0" key. The initial simplex is computed along
175the axes with a length equal to 0.1. We want to use the Nelder-Mead algorithm with variable simplex size
176is used, which corresponds to the "variable" value of the "-method" option.
177The verbose mode is enabled so that messages are generated during the algorithm.
178After the optimization is performed, the optimum is retrieved with quiery features.
179
180\lstset{language=scilabscript}
181\begin{lstlisting}
182function y = rosenbrock (x)
183 y = 100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
184endfunction
185nm = neldermead_new ();
186nm = neldermead_configure(nm,"-numberofvariables",2);
187nm = neldermead_configure(nm,"-x0",[-1.2 1.0]');
188nm = neldermead_configure(nm,"-simplex0method","axes");
189nm = neldermead_configure(nm,"-simplex0length",0.1);
190nm = neldermead_configure(nm,"-method","variable");
191nm = neldermead_configure(nm,"-verbose",1);
192nm = neldermead_configure(nm,"-function",rosenbrock);
193nm = neldermead_search(nm);
194xopt = neldermead_get(nm,"-xopt")
195fopt = neldermead_get(nm,"-fopt")
196status = neldermead_get(nm,"-status")
197nm = neldermead_destroy(nm);
198\end{lstlisting}
199
200This produces the following output.
201
202\lstset{language=scilabscript}
203\begin{lstlisting}
204-->nm = neldermead_search(nm);
205Function Evaluation #1 is [24.2] at [-1.2 1]
206Function Evaluation #1 is [24.2] at [-1.2 1]
207Function Evaluation #2 is [8.82] at [-1.1 1]
208Function Evaluation #3 is [16.4] at [-1.2 1.1]
209Step #1 : order
210=================================================================
211Iteration #1 (total = 1)
212Function Eval #3
213Xopt : -1.1 1
214Fopt : 8.820000e+000
215DeltaFv : 1.538000e+001
216Center : -1.1666667 1.0333333
217Size : 1.414214e-001
218Vertex #1/3 : fv=8.820000e+000, x=-1.100000e+000 1.000000e+000
219Vertex #2/3 : fv=1.640000e+001, x=-1.200000e+000 1.100000e+000
220Vertex #3/3 : fv=2.420000e+001, x=-1.200000e+000 1.000000e+000
221Reflect
222xbar=-1.15 1.05
223Function Evaluation #4 is [5.62] at [-1.1 1.1]
224xr=[-1.1 1.1], f(xr)=5.620000
225Expand
226Function Evaluation #5 is [4.428125] at [-1.05 1.15]
227xe=-1.05 1.15, f(xe)=4.428125
228 > Perform Expansion
229Sort
230[...]
231=================================================================
232Iteration #56 (total = 56)
233Function Eval #98
234Xopt : 0.6537880 0.4402918
235Fopt : 1.363828e-001
236DeltaFv : 1.309875e-002
237Center : 0.6788120 0.4503999
238Size : 6.945988e-002
239Vertex #1/3 : fv=1.363828e-001, x=6.537880e-001 4.402918e-001
240Vertex #2/3 : fv=1.474625e-001, x=7.107987e-001 4.799712e-001
241Vertex #3/3 : fv=1.494816e-001, x=6.718493e-001 4.309367e-001
242Reflect
243xbar=0.6822933 0.4601315
244Function Evaluation #99 is [0.1033237] at [0.6927374 0.4893262]
245xr=[0.6927374 0.4893262], f(xr)=0.103324
246Expand
247Function Evaluation #100 is [0.1459740] at [0.7031815 0.5185210]
248xe=0.7031815 0.5185210, f(xe)=0.145974
249 > Perform reflection
250Sort
251=================================================================
252Iteration #57 (total = 57)
253Function Eval #100
254Xopt : 0.6927374 0.4893262
255Fopt : 1.033237e-001
256DeltaFv : 4.413878e-002
257Center : 0.6857747 0.4698631
258Size : 6.262139e-002
259Vertex #1/3 : fv=1.033237e-001, x=6.927374e-001 4.893262e-001
260Vertex #2/3 : fv=1.363828e-001, x=6.537880e-001 4.402918e-001
261Vertex #3/3 : fv=1.474625e-001, x=7.107987e-001 4.799712e-001
262Terminate with status : maxfuneval
263-->xopt = neldermead_get(nm,"-xopt")
264 xopt =
265
266 0.6927374
267 0.4893262
268
269-->fopt = neldermead_get(nm,"-fopt")
270 fopt =
271
272 0.1033237
273
274-->status = neldermead_get(nm,"-status")
275 status =
276
277 maxfuneval
278\end{lstlisting}
279
280\section{Help, demonstrations and unit tests}
281
282For a complete presentation of the functions and options, the reader
283should consult the help which is provided with the component.
284The main menu of the help associated with the optimization
285module is presented in figures \ref{fig-intro-help} and \ref{fig-intro-helpfminsearch}.
286The corresponding pages provide a complete documentation for the
287corresponding functions, as well as many sample uses.
288
289\begin{figure}
290\begin{center}
291\includegraphics[width=15cm]{introduction/introduction-help.png}
292\end{center}
293\caption{Built-in help for the Nelder-Mead component}
294\label{fig-intro-help}
295\end{figure}
296
297\begin{figure}
298\begin{center}
299\includegraphics[width=15cm]{introduction/introduction-help-fminsearch.png}
300\end{center}
301\caption{Built-in help for the \scifunction{fminsearch} function}
302\label{fig-intro-helpfminsearch}
303\end{figure}
304
305Several demonstrations are provided with the component. These
306are available from the "Demonstration" menu of the Scilab console
307and are presented in figure \ref{fig-intro-demos}.
308
309\begin{figure}
310\begin{center}
311\includegraphics[width=10cm]{introduction/introduction-demos.png}
312\end{center}
313\caption{Built-in demonstration scripts for the Nelder-Mead component}
314\label{fig-intro-demos}
315\end{figure}
316
317The following script shows where the demonstration scripts are
318available from the Scilab installation directory.
319
320\lstset{language=scilabscript}
321\begin{lstlisting}
322-->cd SCI/modules/optimization/demos/neldermead
323 ans =
324
325 D:\Programs\SCFD8E~1\modules\optimization\demos\neldermead
326
327-->ls *.sce
328 ans =
329
330!nmplot_rosenbrock.sce !
331! !
332!nmplot_rosenbrock.fixed.sce !
333! !
334!nmplot_quadratic.fixed.sce !
335! !
336!nmplot_mckinnon2.sce !
337! !
338!nmplot_mckinnon.sce !
339! !
340!nmplot_han2.sce !
341! !
342!nmplot_han1.sce !
343! !
344!nmplot_boxproblemA.sce !
345! !
346!neldermead_rosenbrock.sce !
347! !
348!neldermead.dem.sce !
349! !
350!fminsearch.sce !
351\end{lstlisting}
352
353These components were developped based on unit tests, which are
354provided with Scilab.
355These unit tests are located in the "SCI/modules/optimization/tests/unit\_tests"
356directory, under the "neldermead", "optimsimplex" and "optimbase" directories.
357Each unit test correspond to a .tst file. These tests are covering most
358(if not all) the features provided by the components. This is why there are
359a good source of information on how to use the functions.
360
361
362
363
diff --git a/scilab_doc/neldermead/macros.tex b/scilab_doc/neldermead/macros.tex
deleted file mode 100644
index 6b9c367..0000000
--- a/scilab_doc/neldermead/macros.tex
+++ /dev/null
@@ -1,344 +0,0 @@
1%% Good fonts for PDF
2\usepackage[cyr]{aeguill}
3
4%% Package for page headers
5\usepackage{fancyhdr}
6
7%% Package to include graphics
8%% Comment for DVI
9\usepackage[pdftex]{graphicx}
10
11%% Index
12\usepackage{makeidx}
13\makeindex
14
15%% Figures formats: jpeg or pdf
16%% Comment for DVI
17\DeclareGraphicsExtensions{.jpg,.pdf}
18
19%% Package to create Hyperdocuments
20%% Comment for DVI
21\usepackage[pdftex,colorlinks=true,linkcolor=blue,citecolor=blue,urlcolor=blue]{hyperref}
22
23%% Package to control printed area size
24\usepackage{anysize}
25%% ...by defining margins {left}{right}{top}{bottom}
26\marginsize{22mm}{14mm}{12mm}{25mm}
27
28%% Package used to include a bibliography
29\usepackage{natbib}
30
31%% R for real numbers
32\usepackage{amssymb}
33
34%% User defined commands
35
36%% Figure reference
37\newcommand{\figref}[1]{figure~\ref{#1}}
38
39%% Equation reference
40\newcommand{\Ref}[1]{(\ref{#1})}
41
42%% Emphasize a word or a group of words
43\newcommand{\empha}[1]{\textit{\textbf{#1}}}
44
45%% Derivation operators
46\newcommand{\D}{\partial}
47\newcommand{\Dt}{\partial_t}
48\newcommand{\Dx}{\partial_x}
49\newcommand{\Dy}{\partial_y}
50
51\newcommand{\bd}{\mathbf{d}}
52\newcommand{\bl}{\mathbf{l}}
53\newcommand{\br}{\mathbf{r}}
54\newcommand{\bg}{\mathbf{g}}
55\newcommand{\bp}{\mathbf{p}}
56\newcommand{\bH}{\mathbf{H}}
57\newcommand{\bv}{\mathbf{v}}
58\newcommand{\bx}{\mathbf{x}}
59\newcommand{\by}{\mathbf{y}}
60
61\usepackage{url}
62
63% Scilab macros
64\newcommand{\scifunction}[1]{\textit{#1}}
65\newcommand{\scivar}[1]{\textit{#1}}
66
67% To highlight source code
68\usepackage{listings}
69
70\lstdefinelanguage{scilabscript}%
71 {morekeywords={abcd,abinv,abort,abs,acoshm,acosh,acosm,acos,addcolor,%
72 addf,addinter,addmenu,add_edge,add_node,adj2sp,adj_lists,aff2ab,%
73 amell,analpf,analyze,ans,apropos,arc_graph,arc_number,argn,arhnk,%
74 arl2,arma2p,armac,armax1,armax,arma,arsimul,artest,articul,ascii,%
75 asinhm,asinh,asinm,asin,atanhm,atanh,atanm,atan,augment,auread,%
76 auwrite,balanc,balreal,bandwr,basename,bdiag,besseli,besselj,%
77 besselk,bessely,best_match,bezout,bifish,bilin,binomial,black,%
78 bloc2exp,bloc2ss,bode,bool2s,boolean,boucle,break,bstap,buttmag,%
79 bvode,cainv,calerf,calfrq,call,canon,casc,case,ccontrg,cdfbet,%
80 cdfbin,cdfchi,cdfchn,cdffnc,cdff,cdfgam,cdfnbn,cdfnor,cdfpoi,%
81 cdft,ceil,center,cepstrum,chaintest,chain_struct,champ1,champ,%
82 chart,chdir,cheb1mag,cheb2mag,check_graph,check_io,chepol,chfact,%
83 chol,chsolve,circuit,classmarkov,clean,clearfun,clearglobal,%
84 clear,close,cls2dls,cmb_lin,cmndred,cmoment,code2str,coeff,coffg,%
85 coff,colcompr,colcomp,colinout,colormap,colregul,companion,comp,%
86 cond,conj,connex,contour2di,contour2d,contourf,contour,%
87 contract_edge,contrss,contr,cont_frm,cont_mat,convex_hull,convol,%
88 convstr,con_nodes,copfac,copy,correl,corr,coshm,cosh,cosm,cos,%
89 cotg,cothm,coth,covar,csim,cspect,ctr_gram,cumprod,cumsum,%
90 curblock,cycle_basis,czt,c_link,dasrt,dassl,datafit,date,dbphi,%
91 dcf,ddp,debug,dec2hex,deff,definedfields,degree,delbpt,%
92 delete_arcs,delete_nodes,delete,delip,delmenu,demos,denom,%
93 derivative,derivat,des2ss,des2tf,determ,detr,det,dft,dhinf,%
94 dhnorm,diag,diary,diff,diophant,dirname,dispbpt,dispfiles,disp,%
95 dlgamma,double,dragrect,drawaxis,drawlater,drawnow,draw,driver,%
96 dscr,dsearch,dsimul,dtsi,dt_ility,duplicate,edge_number,%
97 edit_curv,edit_graph_menus,edit_graph,edit,eigenmarkov,ell1mag,%
98 elseif,else,emptystr,endfunction,end,eqfir,eqiir,equil1,equil,%
99 ereduc,erfcx,erfc,erf,errbar,errcatch,errclear,error,eval3dp,%
100 eval3d,eval,evans,evstr,excel2sci,execstr,exec,exists,exit,expm,%
101 exp,external,eye,fac3d,factors,faurre,fchamp,fcontour2d,fcontour,%
102 fec,feedback,feval,ffilt,fftshift,fft,fgrayplot,figure,fileinfo,%
103 file,filter,findm,findobj,findx0BD,find_freq,find_path,find,%
104 findABCD,findAC,findBD,findBDK,findR,fit_dat,fix,floor,flts,foo,%
105 formatman,format,fort,for,fourplan,fplot2d,fplot3d1,fplot3d,%
106 fprintf,fprintfMat,frep2tf,freq,freson,frexp,frfit,frmag,fscanf,%
107 fscanfMat,fsfirlin,fsolve,fspecg,fstabst,fstair,ftest,ftuneq,%
108 fullrfk,fullrf,full,fun2string,funcprot,functions,function,%
109 funptr,fusee,gainplot,gamitg,gammaln,gamma,gcare,gcd,gcf,%
110 genfac3d,genlib,genmarkov,gen_net,geom3d,geomean,getblocklabel,%
111 getcolor,getcurblock,getcwd,getdate,getd,getenv,getfield,getfont,%
112 getf,getio,getlinestyle,getmark,getpid,getscicosvars,getsymbol,%
113 getvalue,getversion,get_function_path,get,gfare,gfrancis,girth,%
114 givens,glever,glist,global,glue,gpeche,graduate,grand,%
115 graphics_entities,graph_2_mat,graph_center,graph_complement,%
116 graph_diameter,graph_power,graph_simp,graph_sum,graph_union,%
117 graph-list,graycolormap,grayplot,graypolarplot,grep,group,%
118 gr_menu,gschur,gsort,gspec,gstacksize,gtild,g_margin,h2norm,halt,%
119 hamilton,hankelsv,hank,harmean,havewindow,help,hermit,hess,%
120 hex2dec,hilb,hinf,hist3d,histplot,horner,host,hotcolormap,%
121 householder,hrmt,htrianr,hypermat,h_cl,h_inf_st,h_inf,h_norm,%
122 iconvert,icon_edit,ieee,if,iirgroup,iirlp,iir,ilib_build,%
123 ilib_compile,ilib_for_link,ilib_gen_gateway,ilib_gen_loader,%
124 ilib_gen_Make,imag,impl,imrep2ss,imult,im_inv,inistate,input,%
125 int16,int2d,int32,int3d,int8,intc,intdec,integrate,interpln,%
126 interp,intersci,intersect,intg,intl,intppty,intsplin,inttrap,%
127 inttype,int,invr,invsyslin,inv_coeff,inv,iqr,isdef,isdir,isequal,%
128 iserror,isglobal,isinf,isnan,isoview,isreal,is_connex,jmat,%
129 justify,kalm,karmarkar,kernel,keyboard,knapsack,kpure,krac2,%
130 kroneck,kron,lasterror,lattn,lattp,lcf,lcmdiag,lcm,ldivf,ldiv,%
131 leastsq,legends,length,leqr,levin,lev,lex_sort,lft,lgfft,library,%
132 lib,lin2mu,lincos,lindquist,lines,line_graph,linfn,linf,link,%
133 linmeq,linpro,linsolve,linspace,lin,listfiles,list,lmisolver,%
134 lmitool,loadmatfile,loadplots,loadwave,load_graph,load,locate,%
135 log10,log1p,log2,logm,logspace,log,lotest,lqe,lqg2stan,lqg_ltr,%
136 lqg,lqr,lsq,lsslist,lstcat,lstsize,ltitr,ludel,lufact,luget,%
137 lusolve,lu,lyap,macglov,macr2lst,macrovar,macro,mad,make_graph,%
138 make_index,manedit,man,mapsound,markp2ss,matfile2sci,matrix,%
139 mat_2_graph,maxi,max_cap_path,max_clique,max_flow,max,mclearerr,%
140 mclose,meanf,mean,median,meof,mese,mesh2d,mfft,mfile2sci,mgeti,%
141 mgetl,mgetstr,mget,milk_drop,mine,mini,minreal,minss,%
142 min_lcost_cflow,min_lcost_flow1,min_lcost_flow2,min_qcost_flow,%
143 min_weight_tree,min,mlist,mode,modulo,moment,mopen,move,%
144 mps2linpro,mputl,mputstr,mput,mrfit,msd,mseek,mtell,mtlb_load,%
145 mtlb_mode,mtlb_save,mtlb_sparse,mu2lin,mulf,mvvacov,m_circle,%
146 names,nand2mean,nanmax,nanmeanf,nanmean,nanmedian,nanmin,%
147 nanstdev,nansum,narsimul,ndims,nearfloat,nehari,neighbors,%
148 netclose,netwindows,netwindow,newest,newfun,nextpow2,nf3d,nfreq,%
149 nlev,nnz,nodes_2_path,nodes_degrees,node_number,noisegen,norm,%
150 null,numdiff,numer,nyquist,obscont1,obscont,observer,obsvss,%
151 obsv_mat,obs_gram,odedc,odedi,odeoptions,ode_discrete,ode_root,%
152 ode,oldload,oldsave,ones,optim,orth,param3d1,param3d,%
153 paramfplot2d,parrot,part,pathconvert,path_2_nodes,pause,pbig,%
154 pdiv,pen2ea,pencan,penlaur,perctl,perfect_match,pertrans,pfss,%
155 phasemag,phc,pinv,pipe_network,playsnd,plot2d1,plot2d2,plot2d3,%
156 plot2d4,plot2d,plot3d1,plot3d2,plot3d3,plot3d,plotframe,%
157 plotprofile,plot_graph,plot,plzr,pmodulo,pol2des,pol2str,pol2tex,%
158 polarplot,polar,polfact,poly,portr3d,portrait,power,ppol,prbs_a,%
159 predecessors,predef,printf,printing,print,prod,profile,projsl,%
160 projspec,proj,psmall,pspect,pvm_addhosts,pvm_barrier,pvm_bcast,%
161 pvm_bufinfo,pvm_config,pvm_delhosts,pvm_error,pvm_exit,%
162 pvm_f772sci,pvm_getinst,pvm_gettid,pvm_get_timer,pvm_gsize,%
163 pvm_halt,pvm_joingroup,pvm_kill,pvm_lvgroup,pvm_mytid,pvm_parent,%
164 pvm_probe,pvm_recv,pvm_reduce,pvm_sci2f77,pvm_send,pvm_set_timer,%
165 pvm_spawn_independent,pvm_spawn,pvm_start,pvm_tasks,%
166 pvm_tidtohost,pvm,pwd,p_margin,qassign,qr,quapro,quart,quaskro,%
167 quit,randpencil,rand,range,rankqr,rank,rat,rcond,rdivf,read4b,%
168 readb,readc_,readmps,read,real,recur,reglin,regress,remezb,remez,%
169 repfreq,replot,residu,resume,return,riccati,riccsl,ricc,ric_desc,%
170 rlist,roots,rotate,round,routh_t,rowcompr,rowcomp,rowinout,%
171 rowregul,rowshuff,rpem,rref,rtitr,rubberbox,salesman,savewave,%
172 save_graph,save,scaling,scanf,schur,sci2exp,sci2for,sci2map,%
173 sciargs,scicosim,scicos,scifunc_block,sd2sci,secto3d,select,%
174 semidef,sensi,setbpt,seteventhandler,setfield,setmenu,%
175 setscicosvars,set,sfact,sgrid,shortest_path,showprofile,%
176 show_arcs,show_graph,show_nodes,sident,signm,sign,simp_mode,simp,%
177 sincd,sinc,sinc,sinhm,sinh,sinm,sin,size,sm2des,sm2ss,smooth,%
178 solve,sorder,sort,sound,sp2adj,spaninter,spanplus,spantwo,sparse,%
179 spchol,spcompack,specfact,spec,speye,spget,splin,split_edge,%
180 spones,sprand,sprintf,spzeros,sqroot,sqrtm,sqrt,squarewave,%
181 square,srfaur,srkf,ss2des,ss2ss,ss2tf,sscanf,sskf,ssprint,ssrand,%
182 stabil,stacksize,standard_define,standard_draw,standard_input,%
183 standard_origin,standard_output,startup,stdevf,stdev,steadycos,%
184 str2code,strange,strcat,strindex,strings,string,stripblanks,%
185 strong_connex,strong_con_nodes,strsubst,st_deviation,st_ility,%
186 subf,subgraph,subplot,successors,sum,supernode,sva,svd,svplot,%
187 sylm,sylv,sysconv,sysdiag,sysfact,syslin,syssize,systems,system,%
188 systmat,tabul,tangent,tanhm,tanh,tanm,tan,tdinit,testmatrix,%
189 texprint,tf2des,tf2ss,then,thrownan,timer,time_id,titlepage,%
190 tk_getdir,tk_getfile,tlist,toeplitz,tokenpos,tokens,trace,%
191 translatepaths,trans_closure,trans,trfmod,trianfml,tril,trimmean,%
192 trisolve,triu,trzeros,typename,typeof,type,uicontrol,uimenu,%
193 uint16,uint32,uint8,ui_observer,ulink,unglue,union,unique,unix_g,%
194 unix_s,unix_w,unix_x,unix,unobs,unsetmenu,user,varargin,%
195 varargout,variancef,variance,varn,warning,wavread,wavwrite,%
196 wcenter,wfir,what,whereami,whereis,where,while,whos,who_user,who,%
197 wiener,wigner,window,winsid,with_gtk,with_pvm,with_texmacs,%
198 with_tk,writb,write4b,write,xarcs,xarc,xarrows,xaxis,xbasc,%
199 xbasimp,xbasr,xchange,xclear,xclea,xclick,xclip,xdel,xend,xfarcs,%
200 xfarc,xfpolys,xfpoly,xfrect,xgetech,xgetfile,xgetmouse,xget,%
201 xgraduate,xgrid,xinfo,xinit,xlfont,xload,xname,xnumb,xpause,%
202 xpolys,xpoly,xrects,xrect,xrpoly,xs2fig,xs2gif,xs2ppm,xs2ps,%
203 xsave,xsegs,select,xsetech,xsetm,xset,xstringb,xstringl,xstring,%
204 xtape,xtitle,x_choices,x_choose,x_dialog,x_matrix,x_mdialog,%
205 x_message_modeless,x_message,yulewalk,zeropen,zeros,zgrid,zpbutt,%
206 zpch1,zpch2,zpell,mfprintf,mfscanf,mprintf,mscanf,msprintf,%
207 msscanf,mucomp,%
208 ABSBLK_f,AFFICH_f,ANDLOG_f,ANIMXY_f,BIGSOM_f,CLINDUMMY_f,CLKIN_f,%
209 CLKINV_f,CLKOUT_f,CLKOUTV_f,CLKSOM_f,CLKSOMV_f,CLKSPLIT_f,%
210 CLOCK_f,CLR_f,CLSS_f,CONST_f,COSBLK_f,CURV_f,DELAY_f,DELAYV_f,%
211 DEMUX_f,DLR_f,DLRADAPT_f,DLSS_f,EVENTSCOPE_f,EVTDLY_f,EVTGEN_f,%
212 EXPBLK_f,G_make,GAIN_f,GAINBLK_f,GENERAL_f,GENERIC_f,GENSIN_f,%
213 GENSQR_f,HALT_f,IFTHEL_f,IN_f,INTEGRAL_f,INTRP2BLK_f,INTRPLBLK_f,%
214 INVBLK_f,LOGBLK_f,LOOKUP_f,Matplot1,Matplot,MAX_f,MCLOCK_f,%
215 MFCLCK_f,MIN_f,MUX_f,NDcost,NEGTOPOS_f,OUT_f,POSTONEG_f,POWBLK_f,%
216 PROD_f,QUANT_f,RAND_f,READC_f,REGISTER_f,RELAY_f,RFILE_f,%
217 ScilabEval,Sfgrayplot,Sgrayplot,SAMPLEHOLD_f,SAT_f,SAWTOOTH_f,%
218 SCOPE_f,SCOPXY_f,SELECT_f,SINBLK_f,SOM_f,SPLIT_f,STOP_f,SUPER_f,%
219 TANBLK_f,TCLSS_f,TEXT_f,TIME_f,TK_EvalFile,TK_EvalStr,TK_GetVar,%
220 TK_SetVar,TRASH_f,WFILE_f,WRITEC_f,ZCROSS_f,%
221 \%asn,\%helps,\%k,\%sn},%
222 alsoletter=\%,% chmod
223 sensitive,%
224 morecomment=[l]//,%
225 morestring=[b]",%
226 morestring=[m]'%
227 numbers=none,%
228 basicstyle=\tiny,%
229 keywordstyle=\bfseries,%
230 commentstyle=\bfseries,%
231 showspaces=false,%
232 stringstyle=\bfseries
233 }[keywords,comments,strings]%
234
235\lstdefinelanguage{matlabscript}%
236 {morekeywords={gt,lt,gt,lt,amp,abs,acos,acosh,acot,acoth,acsc,acsch,%
237 all,angle,ans,any,asec,asech,asin,asinh,atan,atan2,atanh,auread,%
238 auwrite,axes,axis,balance,bar,bessel,besselk,bessely,beta,%
239 betainc,betaln,blanks,bone,break,brighten,capture,cart2pol,%
240 cart2sph,caxis,cd,cdf2rdf,cedit,ceil,chol,cla,clabel,clc,clear,%
241 clf,clock,close,colmmd,Colon,colorbar,colormap,ColorSpec,colperm,%
242 comet,comet3,compan,compass,computer,cond,condest,conj,contour,%
243 contour3,contourc,contrast,conv,conv2,cool,copper,corrcoef,cos,%
244 cosh,cot,coth,cov,cplxpair,cputime,cross,csc,csch,csvread,%
245 csvwrite,cumprod,cumsum,cylinder,date,dbclear,dbcont,dbdown,%
246 dbquit,dbstack,dbstatus,dbstep,dbstop,dbtype,dbup,ddeadv,ddeexec,%
247 ddeinit,ddepoke,ddereq,ddeterm,ddeunadv,deblank,dec2hex,deconv,%
248 del2,delete,demo,det,diag,diary,diff,diffuse,dir,disp,dlmread,%
249 dlmwrite,dmperm,dot,drawnow,echo,eig,ellipj,ellipke,else,elseif,%
250 end,engClose,engEvalString,engGetFull,engGetMatrix,engOpen,%
251 engOutputBuffer,engPutFull,engPutMatrix,engSetEvalCallback,%
252 engSetEvalTimeout,engWinInit,eps,erf,erfc,erfcx,erfinv,error,%
253 errorbar,etime,etree,eval,exist,exp,expint,expm,expo,eye,fclose,%
254 feather,feof,ferror,feval,fft,fft2,fftshift,fgetl,fgets,figure,%
255 fill,fill3,filter,filter2,find,findstr,finite,fix,flag,fliplr,%
256 flipud,floor,flops,fmin,fmins,fopen,for,format,fplot,fprintf,%
257 fread,frewind,fscanf,fseek,ftell,full,function,funm,fwrite,fzero,%
258 gallery,gamma,gammainc,gammaln,gca,gcd,gcf,gco,get,getenv,%
259 getframe,ginput,global,gplot,gradient,gray,graymon,grid,griddata,%
260 gtext,hadamard,hankel,help,hess,hex2dec,hex2num,hidden,hilb,hist,%
261 hold,home,hostid,hot,hsv,hsv2rgb,if,ifft,ifft2,imag,image,%
262 imagesc,Inf,info,input,int2str,interp1,interp2,interpft,inv,%
263 invhilb,isempty,isglobal,ishold,isieee,isinf,isletter,isnan,%
264 isreal,isspace,issparse,isstr,jet,keyboard,kron,lasterr,lcm,%
265 legend,legendre,length,lin2mu,line,linspace,load,log,log10,log2,%
266 loglog,logm,logspace,lookfor,lower,ls,lscov,lu,magic,matClose,%
267 matDeleteMatrix,matGetDir,matGetFp,matGetFull,matGetMatrix,%
268 matGetNextMatrix,matGetString,matlabrc,matlabroot,matOpen,%
269 matPutFull,matPutMatrix,matPutString,max,mean,median,menu,mesh,%
270 meshc,meshgrid,meshz,mexAtExit,mexCallMATLAB,mexdebug,%
271 mexErrMsgTxt,mexEvalString,mexFunction,mexGetFull,mexGetMatrix,%
272 mexGetMatrixPtr,mexPrintf,mexPutFull,mexPutMatrix,mexSetTrapFlag,%
273 min,more,movie,moviein,mu2lin,mxCalloc,mxCopyCharacterToPtr,%
274 mxCopyComplex16ToPtr,mxCopyInteger4ToPtr,mxCopyPtrToCharacter,%
275 mxCopyPtrToComplex16,mxCopyPtrToInteger4,mxCopyPtrToReal8,%
276 mxCopyReal8ToPtr,mxCreateFull,mxCreateSparse,mxCreateString,%
277 mxFree,mxFreeMatrix,mxGetIr,mxGetJc,mxGetM,mxGetN,mxGetName,%
278 mxGetNzmax,mxGetPi,mxGetPr,mxGetScalar,mxGetString,mxIsComplex,%
279 mxIsFull,mxIsNumeric,mxIsSparse,mxIsString,mxIsTypeDouble,%
280 mxSetIr,mxSetJc,mxSetM,mxSetN,mxSetName,mxSetNzmax,mxSetPi,%
281 mxSetPr,NaN,nargchk,nargin,nargout,newplot,nextpow2,nnls,nnz,%
282 nonzeros,norm,normest,null,num2str,nzmax,ode23,ode45,orient,orth,%
283 pack,pascal,patch,path,pause,pcolor,pi,pink,pinv,plot,plot3,%
284 pol2cart,polar,poly,polyder,polyeig,polyfit,polyval,polyvalm,%
285 pow2,print,printopt,prism,prod,pwd,qr,qrdelete,qrinsert,quad,%
286 quad8,quit,quiver,qz,rand,randn,randperm,rank,rat,rats,rbbox,%
287 rcond,real,realmax,realmin,refresh,rem,reset,reshape,residue,%
288 return,rgb2hsv,rgbplot,rootobject,roots,rose,rosser,rot90,rotate,%
289 round,rref,rrefmovie,rsf2csf,save,saxis,schur,sec,sech,semilogx,%
290 semilogy,set,setstr,shading,sign,sin,sinh,size,slice,sort,sound,%
291 spalloc,sparse,spaugment,spconvert,spdiags,specular,speye,spfun,%
292 sph2cart,sphere,spinmap,spline,spones,spparms,sprandn,sprandsym,%
293 sprank,sprintf,spy,sqrt,sqrtm,sscanf,stairs,startup,std,stem,%
294 str2mat,str2num,strcmp,strings,strrep,strtok,subplot,subscribe,%
295 subspace,sum,surf,surface,surfc,surfl,surfnorm,svd,symbfact,%
296 symmmd,symrcm,tan,tanh,tempdir,tempname,terminal,text,tic,title,%
297 toc,toeplitz,trace,trapz,tril,triu,type,uicontrol,uigetfile,%
298 uimenu,uiputfile,unix,unwrap,upper,vander,ver,version,view,%
299 viewmtx,waitforbuttonpress,waterfall,wavread,wavwrite,what,%
300 whatsnew,which,while,white,whitebg,who,whos,wilkinson,wk1read,%
301 wk1write,xlabel,xor,ylabel,zeros,zlabel,zoom},%
302 sensitive,%
303 morecomment=[l]\%,%
304 basicstyle=\tiny,%
305 morestring=[m]'%
306 }[keywords,comments,strings]%
307
308\usepackage{algorithmic}
309
310% To allow one bibliograph by chapter
311%\usepackage[sectionbib]{chapterbib}
312\usepackage{url}
313
314% Maths shortcuts
315\newcommand{\RR}{\mathbb{R}}
316\newcommand{\CC}{\mathbb{C}}
317
318% For symbol degree
319\DeclareTextSymbol{\degre}{T1}{6}
320
321% Some environments
322\newtheorem{theorem}{Theorem}[section]
323\newtheorem{lemma}[theorem]{Lemma}
324\newtheorem{proposition}[theorem]{Proposition}
325\newtheorem{corollary}[theorem]{Corollary}
326\newtheorem{axiom}[theorem]{Axiom}
327%\newtheorem{example}[theorem]{Example}
328\newtheorem{definition}[theorem]{Definition}
329\newtheorem{remark}[theorem]{Remark}
330\newtheorem{assumption}[theorem]{Assumption}
331
332\newenvironment{proof}[1][Proof]{\begin{trivlist}
333\item[\hskip \labelsep {\bfseries #1}]}{\qed\end{trivlist}}
334
335%\newenvironment{definition}[1][Definition]{\begin{trivlist} \item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
336\newenvironment{example}[1][Example]{\begin{trivlist}\item[\hskip \labelsep {\bfseries #1}]}{$\Box$\end{trivlist}}
337%\newenvironment{remark}[1][Remark]{\begin{trivlist} \item[\hskip \labelsep {\bfseries #1}]}{\end{trivlist}}
338
339\newcommand{\qed}{\nobreak \ifvmode \relax \else
340 \ifdim\lastskip<1.5em \hskip-\lastskip
341 \hskip1.5em plus0em minus0.5em \fi \nobreak
342 \vrule height0.75em width0.5em depth0.25em\fi}
343
344
diff --git a/scilab_doc/neldermead/neldermead-bibliography-so.pdf b/scilab_doc/neldermead/neldermead-bibliography-so.pdf
deleted file mode 100644
index 33e0fdb..0000000
--- a/scilab_doc/neldermead/neldermead-bibliography-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/neldermead-bibliography-so.tex b/scilab_doc/neldermead/neldermead-bibliography-so.tex
deleted file mode 100644
index 76f6319..0000000
--- a/scilab_doc/neldermead/neldermead-bibliography-so.tex
+++ /dev/null
@@ -1,84 +0,0 @@
1%
2% neldermead.tex --
3% Some notes about Nelder-Mead algorithms.
4%
5% Copyright 2008-2009 Michael Baudin
6%
7\documentclass[12pt]{report}
8
9\include{macros}
10
11\begin{document}
12%% User defined page headers
13\pagestyle{fancyplain}
14\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
15\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
16\lhead[]{\fancyplain{}{\bfseries\leftmark}}
17\rhead[]{\fancyplain{}{\bfseries\thepage}}
18\cfoot{}
19
20%% User defined figure legends
21\makeatletter
22\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
23\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
24\let\fnum@figure\f@ffrench%
25\let\captionORI\caption
26\def\caption#1{\captionORI{\rm\small #1}}
27\makeatother
28
29%% First page
30\thispagestyle{empty}
31{
32\begin{center}
33%% Comment for DVI
34\includegraphics[height=40mm]{scilab_logo}
35\vskip4cm
36
37%% Empty space between the box and the text
38\fboxsep6mm
39%% Box thickness
40\fboxrule1.3pt
41\Huge
42$$\fbox{$
43 \begin{array}{c}
44 \textbf{Nelder-Mead}\\
45 \textbf{Toolbox Manual}\\
46 \textbf{-- Bibliography --}\\
47 \end{array}
48 $}
49$$
50\end{center}
51\vskip4cm
52
53\normalsize
54
55\begin{flushright}
56Version 0.2 \\
57September 2009
58\end{flushright}
59
60\begin{flushright}
61Micha\"el BAUDIN
62\end{flushright}
63
64\clearpage
65
66%% Table of contents
67\renewcommand{\baselinestretch}{1.30}\small \normalsize
68
69\tableofcontents
70
71\renewcommand{\baselinestretch}{1.18}\small \normalsize
72
73\include{nmbibliography}
74
75\clearpage
76
77
78%% Bibliography
79
80\addcontentsline{toc}{chapter}{Bibliography}
81\bibliographystyle{plain}
82\bibliography{neldermead}
83
84\end{document}
diff --git a/scilab_doc/neldermead/neldermead-introduction-so.pdf b/scilab_doc/neldermead/neldermead-introduction-so.pdf
deleted file mode 100644
index 0e381d9..0000000
--- a/scilab_doc/neldermead/neldermead-introduction-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/neldermead-introduction-so.tex b/scilab_doc/neldermead/neldermead-introduction-so.tex
deleted file mode 100644
index e52c572..0000000
--- a/scilab_doc/neldermead/neldermead-introduction-so.tex
+++ /dev/null
@@ -1,88 +0,0 @@
1%
2% neldermead.tex --
3% Some notes about Nelder-Mead algorithms.
4%
5% Copyright 2008-2009 Michael Baudin
6%
7\documentclass[12pt]{report}
8
9\include{macros}
10
11\begin{document}
12%% User defined page headers
13\pagestyle{fancyplain}
14\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
15\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
16\lhead[]{\fancyplain{}{\bfseries\leftmark}}
17\rhead[]{\fancyplain{}{\bfseries\thepage}}
18\cfoot{}
19
20%% User defined figure legends
21\makeatletter
22\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
23\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
24\let\fnum@figure\f@ffrench%
25\let\captionORI\caption
26\def\caption#1{\captionORI{\rm\small #1}}
27\makeatother
28
29%% First page
30\thispagestyle{empty}
31{
32\begin{center}
33%% Comment for DVI
34\includegraphics[height=40mm]{scilab_logo}
35\vskip4cm
36
37%% Empty space between the box and the text
38\fboxsep6mm
39%% Box thickness
40\fboxrule1.3pt
41\Huge
42$$\fbox{$
43 \begin{array}{c}
44 \textbf{Nelder-Mead}\\
45 \textbf{Toolbox Manual}\\
46 \textbf{-- Introduction --}\\
47 \end{array}
48 $}
49$$
50\end{center}
51\vskip4cm
52
53\normalsize
54
55\begin{flushright}
56Version 0.2 \\
57September 2009
58\end{flushright}
59
60\begin{flushright}
61Micha\"el BAUDIN
62\end{flushright}
63
64\clearpage
65
66%% Table of contents
67\renewcommand{\baselinestretch}{1.30}\small \normalsize
68
69\tableofcontents
70
71\renewcommand{\baselinestretch}{1.18}\small \normalsize
72
73\include{introduction/introduction}
74
75\clearpage
76
77
78%% Bibliography
79
80\addcontentsline{toc}{chapter}{Bibliography}
81\bibliographystyle{plain}
82\bibliography{neldermead}
83
84\addcontentsline{toc}{chapter}{Index}
85\printindex
86
87\end{document}
88
diff --git a/scilab_doc/neldermead/neldermead-neldermead-so.pdf b/scilab_doc/neldermead/neldermead-neldermead-so.pdf
deleted file mode 100644
index afb8934..0000000
--- a/scilab_doc/neldermead/neldermead-neldermead-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/neldermead-neldermead-so.tex b/scilab_doc/neldermead/neldermead-neldermead-so.tex
deleted file mode 100644
index 64b0fc0..0000000
--- a/scilab_doc/neldermead/neldermead-neldermead-so.tex
+++ /dev/null
@@ -1,98 +0,0 @@
1%
2% neldermead.tex --
3% Some notes about Nelder-Mead algorithms.
4%
5% Copyright 2008-2009 Michael Baudin
6%
7\documentclass[12pt]{report}
8
9\include{macros}
10
11\begin{document}
12%% User defined page headers
13\pagestyle{fancyplain}
14\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
15\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
16\lhead[]{\fancyplain{}{\bfseries\leftmark}}
17\rhead[]{\fancyplain{}{\bfseries\thepage}}
18\cfoot{}
19
20%% User defined figure legends
21\makeatletter
22\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
23\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
24\let\fnum@figure\f@ffrench%
25\let\captionORI\caption
26\def\caption#1{\captionORI{\rm\small #1}}
27\makeatother
28
29%% First page
30\thispagestyle{empty}
31{
32\begin{center}
33%% Comment for DVI
34\includegraphics[height=40mm]{scilab_logo}
35\vskip2cm
36
37%% Empty space between the box and the text
38\fboxsep6mm
39%% Box thickness
40\fboxrule1.3pt
41\Huge
42$$\fbox{$
43 \begin{array}{c}
44 \textbf{Nelder-Mead}\\
45 \textbf{User's Manual}\\
46 \textbf{-- The Nelder-Mead Method --}\\
47 \end{array}
48 $}
49$$
50\end{center}
51
52\vskip1cm
53
54\begin{center}
55\begin{large}
56Micha\"el BAUDIN
57\end{large}
58\end{center}
59
60\vskip2cm
61
62
63\vskip1cm
64
65
66\begin{flushright}
67Version 0.3 \\
68September 2009
69\end{flushright}
70
71
72
73\clearpage
74
75%% Table of contents
76\renewcommand{\baselinestretch}{1.30}\small \normalsize
77
78\tableofcontents
79
80\renewcommand{\baselinestretch}{1.18}\small \normalsize
81
82\include{chapter-notations}
83\include{neldermeadmethod/method-neldermead}
84
85\clearpage
86
87
88%% Bibliography
89
90\addcontentsline{toc}{chapter}{Bibliography}
91\bibliographystyle{plain}
92\bibliography{neldermead}
93
94% Index
95\addcontentsline{toc}{chapter}{Index}
96\printindex
97
98\end{document}
diff --git a/scilab_doc/neldermead/neldermead-simplex-so.pdf b/scilab_doc/neldermead/neldermead-simplex-so.pdf
deleted file mode 100644
index fa13c27..0000000
--- a/scilab_doc/neldermead/neldermead-simplex-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/neldermead-simplex-so.tex b/scilab_doc/neldermead/neldermead-simplex-so.tex
deleted file mode 100644
index 78cb2f4..0000000
--- a/scilab_doc/neldermead/neldermead-simplex-so.tex
+++ /dev/null
@@ -1,93 +0,0 @@
1%
2% neldermead.tex --
3% Some notes about Nelder-Mead algorithms.
4%
5% Copyright 2008-2009 Michael Baudin
6%
7\documentclass[12pt]{report}
8
9\include{macros}
10
11\begin{document}
12%% User defined page headers
13\pagestyle{fancyplain}
14\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
15\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
16\lhead[]{\fancyplain{}{\bfseries\leftmark}}
17\rhead[]{\fancyplain{}{\bfseries\thepage}}
18\cfoot{}
19
20%% User defined figure legends
21\makeatletter
22\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
23\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
24\let\fnum@figure\f@ffrench%
25\let\captionORI\caption
26\def\caption#1{\captionORI{\rm\small #1}}
27\makeatother
28
29%% First page
30\thispagestyle{empty}
31{
32\begin{center}
33%% Comment for DVI
34\includegraphics[height=40mm]{scilab_logo}
35\vskip4cm
36
37%% Empty space between the box and the text
38\fboxsep6mm
39%% Box thickness
40\fboxrule1.3pt
41\Huge
42$$\fbox{$
43 \begin{array}{c}
44 \textbf{Nelder-Mead}\\
45 \textbf{Toolbox Manual}\\
46 \textbf{-- Simplex Theory --}
47 \end{array}
48 $}
49$$
50\end{center}
51\vskip4cm
52
53\normalsize
54
55\begin{flushright}
56Version 0.2 \\
57September 2009
58\end{flushright}
59
60\begin{flushright}
61Micha\"el BAUDIN
62\end{flushright}
63
64\clearpage
65
66%% Table of contents
67\renewcommand{\baselinestretch}{1.30}\small \normalsize
68
69\tableofcontents
70
71\renewcommand{\baselinestretch}{1.18}\small \normalsize
72
73
74\include{chapter-notations}
75\include{simplextheory/section-simplex}
76
77
78\clearpage
79
80%% Appendix
81\appendix
82
83%% Bibliography
84
85\addcontentsline{toc}{chapter}{Bibliography}
86\bibliographystyle{plain}
87\bibliography{neldermead}
88
89% Index
90\addcontentsline{toc}{chapter}{Index}
91\printindex
92
93\end{document}
diff --git a/scilab_doc/neldermead/neldermead-spendley-so.pdf b/scilab_doc/neldermead/neldermead-spendley-so.pdf
deleted file mode 100644
index 7bb1f5b..0000000
--- a/scilab_doc/neldermead/neldermead-spendley-so.pdf
+++ /dev/null
Binary files differ
diff --git a/scilab_doc/neldermead/neldermead-spendley-so.tex b/scilab_doc/neldermead/neldermead-spendley-so.tex
deleted file mode 100644
index 3b9bcd0..0000000
--- a/scilab_doc/neldermead/neldermead-spendley-so.tex
+++ /dev/null
@@ -1,89 +0,0 @@
1%
2% neldermead.tex --
3% Some notes about Nelder-Mead algorithms.
4%
5% Copyright 2008-2009 Michael Baudin
6%
7\documentclass[12pt]{report}
8
9\include{macros}
10
11\begin{document}
12%% User defined page headers
13\pagestyle{fancyplain}
14\renewcommand{\chaptermark}[1]{\markboth{\chaptername\ \thechapter. #1}{}}
15\renewcommand{\sectionmark}[1]{\markright{\thesection. #1}}
16\lhead[]{\fancyplain{}{\bfseries\leftmark}}
17\rhead[]{\fancyplain{}{\bfseries\thepage}}
18\cfoot{}
19
20%% User defined figure legends
21\makeatletter
22\def\figurename{{\protect\sc \protect\small\bfseries Fig.}}
23\def\f@ffrench{\protect\figurename\space{\protect\small\bf \thefigure}\space}
24\let\fnum@figure\f@ffrench%
25\let\captionORI\caption
26\def\caption#1{\captionORI{\rm\small #1}}
27\makeatother
28
29%% First page
30\thispagestyle{empty}
31{
32\begin{center}
33%% Comment for DVI
34\includegraphics[height=40mm]{scilab_logo}
35\vskip4cm
36
37%% Empty space between the box and the text
38\fboxsep6mm
39%% Box thickness
40\fboxrule1.3pt
41\Huge
42$$\fbox{$
43 \begin{array}{c}
44 \textbf{Nelder-Mead}\\
45 \textbf{Toolbox Manual}\\
46 \textbf{-- Spendley et al. algorithm --}\\
47 \end{array}
48 $}
49$$
50\end{center}
51\vskip4cm
52
53\normalsize
54
55\begin{flushright}
56Version 0.2 \\
57September 2009
58\end{flushright}
59
60\begin{flushright}
61Micha\"el BAUDIN
62\end{flushright}
63
64\clearpage
65
66%% Table of contents
67\renewcommand{\baselinestretch}{1.30}\small \normalsize
68
69\tableofcontents
70
71\renewcommand{\baselinestretch}{1.18}\small \normalsize
72
73\include{chapter-notations}
74\include{spendleymethod/method-spendley}
75
76\clearpage
77
78
79%% Bibliography
80
81\addcontentsline{toc}{chapter}{Bibliography}
82\bibliographystyle{plain}
83\bibliography{neldermead}
84
85% Index
86\addcontentsline{toc}{chapter}{Index}
87\printindex
88
89\end{document}
diff --git a/scilab_doc/neldermead/neldermead.bib b/scilab_doc/neldermead/neldermead.bib
deleted file mode 100644
index ca70d04..0000000
--- a/scilab_doc/neldermead/neldermead.bib
+++ /dev/null
@@ -1,546 +0,0 @@
1@article{lagarias:112,
2author = {Jeffrey C. Lagarias and James A. Reeds and Margaret H. Wright and Paul E. Wright},
3collaboration = {},
4title = {Convergence Properties of the Nelder--Mead Simplex Method in Low Dimensions},
5publisher = {SIAM},
6year = {1998},
7journal = {SIAM Journal on Optimization},
8volume = {9},
9number = {1},
10pages = {112-147},
11keywords = {direct search methods; Nelder--Mead simplex methods; nonderivative optimization},
12doi = {10.1137/S1052623496303470}
13}
14
15
16
17@article{citeulike:3009487,
18 abstract = {A method is described for the minimization of a function of n variables, which depends on the comparison of function values at the (n + 1) vertices of a general simplex, followed by the replacement of the vertex with the highest value by another point. The simplex adapts itself to the local landscape, and contracts on to the final minimum. The method is shown to be effective and computationally compact. A procedure is given for the estimation of the Hessian matrix in the neighbourhood of the minimum, needed in statistical estimation problems. 10.1093/comjnl/7.4.308},
19 author = {Nelder, J. A. and Mead, R. },
20 citeulike-article-id = {3009487},
21 journal = {The Computer Journal},
22 month = {January},
23 number = {4},
24 pages = {308--313},
25 posted-at = {2008-09-15 16:23:09},
26 priority = {2},
27 title = {A Simplex Method for Function Minimization},
28 volume = {7},
29 year = {1965}
30}
31
32@Book{ nla.cat-vn1060620,
33author = { Nash, J. C. },
34title = { Compact numerical methods for computers : linear algebra and function minimisation},
35isbn = { 0852743300 },
36publisher = { Hilger, Bristol},
37pages = { ix, 227 p. : },
38year = { 1979 },
39type = { Book },
40subjects = { Numerical analysis -- Data processing },
41}
42
43@Book{Kelley1999,
44title={Iterative Methods for Optimization},
45author = {C. T. Kelley},
46publisher = {SIAM Frontiers in Applied Mathematics},
47volume={19},
48year={1999},
49}
50
51@Book{KelleyMethodsOptimizationMatlabCodes,
52title={Iterative Methods for Optimization: Matlab Codes},
53author = {C. T. Kelley},
54publisher = {North Carolina State University},
55}
56
57 @article{Spendley1962,
58 jstor_articletype = {primary_article},
59 title = {Sequential Application of Simplex Designs in Optimisation and Evolutionary Operation},
60 author = {Spendley, W. and Hext, G. R. and Himsworth, F. R.},
61 journal = {Technometrics},
62 jstor_issuetitle = {},
63 volume = {4},
64 number = {4},
65 jstor_formatteddate = {Nov., 1962},
66 pages = {441--461},
67 ISSN = {00401706},
68 abstract = {A technique for empirical optimisation is presented in which a sequence of experimental designs each in the form of a regular or irregular simplex is used, each simplex having all vertices but one in common with the preceding simplex, and being completed by one new point. Reasons for the choice of design are outlined, and a formal procedure given. The performance of the technique in the presence and absence of error is studied and it is shown (a) that in the presence of error the rate of advance is inversely proportional to the error standard deviation, so that replication of observations is not beneficial, and (b) that the "efficiency" of the technique appears to increase in direct proportion to the number of factors investigated. It is also noted that, since the direction of movement from each simplex is dependent solely on the ranking of the observations, the technique may be used even in circumstances when a response cannot be quantitatively assessed. Attention is drawn to the ease with which second-order designs having the minimum number of experimental points may be derived from a regular simplex, and a fitting procedure which avoids a direct matrix inversion is suggested. In a brief appendix one or two new rotatable designs derivable from a simplex are noted.},
69 publisher = {American Statistical Association and American Society for Quality},
70 language = {},
71 copyright = {Copyright 1962 American Statistical Association and American Society for Quality},
72 year = {1962},
73 }
74@book{NumericalRecipes,
75author = {W. H. Press and Saul A. Teukolsky and William T. Vetterling and Brian P. Flannery},
76title = {Numerical Recipes in C, Second Edition},
77year = {1992},
78publisher= {}}
79
80@article{589283,
81 author = {Kelley,, C. T.},
82 title = {Detection and Remediation of Stagnation in the Nelder--Mead Algorithm Using a Sufficient Decrease Condition},
83 journal = {SIAM J. on Optimization},
84 volume = {10},
85 number = {1},
86 year = {1999},
87 issn = {1052-6234},
88 pages = {43--55},
89 doi = {http://dx.doi.org/10.1137/S1052623497315203},
90 publisher = {Society for Industrial and Applied Mathematics},
91 address = {Philadelphia, PA, USA},
92 }
93
94@ARTICLE{O'Neill1971AAF,
95 AUTHOR = "O'Neill, R.",
96 TITLE = "Algorithm {AS47} - {F}unction minimization using a simplex procedure",
97 JOURNAL = "Applied Statistics",
98 VOLUME = "20",
99 number = {3},
100 YEAR = "1971",
101 PAGES = "338--346",
102}
103@ARTICLE{O'NeillAS47,
104 AUTHOR = {O'Neill, R.},
105 TITLE = {Algorithm AS47 - Fortran 77 source code},
106 YEAR = {1971},
107 note = {\url{http://lib.stat.cmu.edu/apstat/47}}
108}
109
110@article{1285769,
111 author = {Lee,, Donghoon and Wiswall,, Matthew},
112 title = {A Parallel Implementation of the Simplex Function Minimization Routine},
113 journal = {Comput. Econ.},
114 volume = {30},
115 number = {2},
116 year = {2007},
117 issn = {0927-7099},
118 pages = {171--187},
119 doi = {http://dx.doi.org/10.1007/s10614-007-9094-2},
120 publisher = {Kluwer Academic Publishers},
121 address = {Hingham, MA, USA},
122 }
123
124@article{LolimotColletteURL,
125 author = {Collette, Yann},
126 title = {Lolimot},
127 note = {\url{http://sourceforge.net/projects/lolimot/}},
128 }
129
130@article{NelderMeadColletteURL,
131 author = {Collette, Yann},
132 title = {Lolimot - optim\_nelder\_mead.sci},
133 note = {\url{http://lolimot.cvs.sourceforge.net/viewvc/lolimot/scilab/optim/macros/optim_nelder_mead.sci?revision=1.1.1.1&view=markup}},
134 }
135
136
137@article{MatlabFminsearch,
138 author = {The Mathworks},
139 title = {Matlab ? fminsearch},
140 note = {\url{http://www.mathworks.com/access/helpdesk/help/techdoc/index.html?/access/helpdesk/help/techdoc/ref/fminsearch.html}},
141 }
142
143@article{GAMS-A19A20-Desc,
144 author = {Nash, J.C.},
145 title = {GAMS - A19A20 - Description},
146 year = {1980},
147 month = {February},
148 note = {\url{http://gams.nist.gov/serve.cgi/Module/NASHLIB/A19A20/11238/}},
149 }
150@article{GAMS-A19A20-Source,
151 author = {Nash, J.C. },
152 title = {GAMS - A19A20 - Source Code},
153 year = {1980},
154 month = {February},
155 note = {\url{http://gams.nist.gov/serve.cgi/ModuleComponent/11238/Source/ITL/A19A20}},
156 }
157
158@article{Burkardtasa047,
159 author = {O'Neill, R. and Burkardt, John},
160 title = {GAMS - A19A20 - Source Code},
161 year = {2008},
162 note = {\url{http://people.sc.fsu.edu/~burkardt/f77_src/asa047/asa047.f}},
163 }
164
165
166@article{BurkardtNelderMeadMatlab,
167 author = {Jeff Borggaard},
168 title = {nelder\_mead},
169 year = {2009},
170 month = {January},
171 note = {\url{http://people.sc.fsu.edu/~burkardt/m_src/nelder_mead/nelder_mead.m}},
172 }
173
174@article{SurvivalBookOptim,
175 title = {optim1.f},
176 note = {\url{http://www.stat.uconn.edu/~mhchen/survbook/example51/optim1.f}},
177 }
178
179@Article{Guin:1968:DCM,
180 author = {J. A. Guin},
181 title = {Discussion and correspondence: modification of the complex method of constrained optimization},
182 journal = {The Computer Journal},
183 volume = {10},
184 number = {4},
185 pages = {416--417},
186 month = feb,
187 year = {1968},
188 CODEN = {CMPJA6},
189 ISSN = {0010-4620},
190 bibdate = {Fri Sep 29 08:51:24 MDT 2000},
191 bibsource = {http://www3.oup.co.uk/computer_journal/hdb/Volume_10/Issue_04/},
192 acknowledgement = ack-nhfb,
193}
194
195@article{372783,
196 author = {Shere,, Kenneth D.},
197 title = {Remark on algorithm 454 : The complex method for constrained optimization},
198 journal = {Commun. ACM},
199 volume = {17},
200 number = {8},
201 year = {1974},
202 issn = {0001-0782},
203 pages = {471},
204 doi = {http://doi.acm.org/10.1145/361082.372783},
205 publisher = {ACM},
206 address = {New York, NY, USA},
207 }
208
209@article{362324,
210 author = {Richardson,, Joel A. and Kuester,, J. L.},
211 title = {Algorithm 454: the complex method for constrained optimization},
212 journal = {Commun. ACM},
213 volume = {16},
214 number = {8},
215 year = {1973},
216 issn = {0001-0782},
217 pages = {487--489},
218 doi = {http://doi.acm.org/10.1145/355609.362324},
219 publisher = {ACM},
220 address = {New York, NY, USA},
221 }
222
223@misc{NAGE04CCF,
224 author = {NAG},
225 title = {NAG Fortran Library Routine Document : E04CCF/E04CCA},
226 note={\url{http://www.nag.co.uk/numeric/Fl/manual/xhtml/E04/e04ccf.xml}}
227}
228
229@TECHREPORT{Andersson01multiobjectiveoptimization,
230 author = {Johan Andersson and Link\"opings Universitet},
231 title = {Multiobjective Optimization in Engineering Design: Application to Fluid Power Systems},
232 institution = {Department of Mechanical Engineering, Link\"oping University},
233 year = {2001},
234 note={\url{https://polopoly.liu.se/content/1/c6/10/99/74/phdthesis.pdf}}
235}
236
237@article{Box1965,
238 author = {Box, M. J.},
239 journal = {The Computer Journal},
240 pages = {42--52},
241 volume = {8},
242 number = {1},
243 title = {A New Method of Constrained Optimization and a Comparison With Other Methods},
244 year = {1965 }
245}
246
247@article{69970,
248 author = {Subrahmanyam,, M. B.},
249 title = {An extension of the simplex method to constrained nonlinear optimization},
250 journal = {J. Optim. Theory Appl.},
251 volume = {62},
252 number = {2},
253 year = {1989},
254 issn = {0022-3239},
255 pages = {311--319},
256 doi = {http://dx.doi.org/10.1007/BF00941060},
257 publisher = {Plenum Press},
258 address = {New York, NY, USA},
259 }
260
261@article{584536,
262 author = {Nazareth,, Larry and Tseng,, Paul},
263 title = {Gilding the Lily: A Variant of the Nelder-Mead Algorithm Based on Golden-Section Search},
264 journal = {Comput. Optim. Appl.},
265 volume = {22},
266 number = {1},
267 year = {2002},
268 issn = {0926-6003},
269 pages = {133--144},
270 doi = {http://dx.doi.org/10.1023/A:1014842520519},
271 publisher = {Kluwer Academic Publishers},
272 address = {Norwell, MA, USA},
273 }
274
275@MISC{Perry01anew,
276 author = {Ronald N. Perry and Ronald N. Perry},
277 title = {A New Method For Numerical Constrained Optimization},
278 year = {2001}
279}
280
281@article{HanNeumann2006,
282 author = {Han, Lixing and Neumann, Michael},
283 title = {Effect of dimensionality on the Nelder-Mead simplex method },
284 journal = {Optimization Methods and Software},
285 volume = {21},
286 number = {1},
287 year = {2006},
288 pages = {1--16},
289 }
290
291@article{0266-5611-23-1-023,
292 author={W J Barker and P A Conway},
293 title={Convergent simplex searches and the \&lsquo;gloveless DataGlove\&rsquo;},
294 journal={Inverse Problems},
295 volume={23},
296 number={1},
297 pages={405-419},
298 url={http://stacks.iop.org/0266-5611/23/405},
299 year={2007},
300 abstract={The inversion of data from an electric field sensing array that can track the position and orientation of a hand modelled initially as a rigid bar is investigated as motions in the digits are introduced into the hand model. The inversion is shown to fail with increased dimensionality of the problem due to a pathology in the Nelder-Mead optimization algorithm used. Robust simplex search variants are tested on the problem and shown to successfully address this pathology resulting in a significant increase in the dimensionality for which the problem can be solved.}
301}
302
303@article{parkinson1972,
304author = {Parkinson and Hutchinson},
305title = {An investigation into the efficiency of variants on the simplex method},
306publisher = {Academic Press},
307year = {1972},
308journal = {F. A. Lootsma, editor, Numerical Methods for Non-linear Optimization},
309pages = {115-135},
310}
311
312
313
314
315@book{Han2000,
316author = {Han, Lixing},
317title = {Algorithms in Unconstrained Optimization},
318year = {2000},
319publisher= {Ph.D., The University of Connecticut}}
320
321@TECHREPORT{Torczon89multi-directionalsearch,
322 author = {Virginia Joanne Torczon},
323 title = {Multi-Directional Search: A Direct Search Algorithm for Parallel Machines},
324 institution = {Rice University},
325 year = {1989}
326}
327
328
329@article{hanNeumann2003,
330author = {Han, Lixing and Neumann, Michael and Xu, Jianhong},
331title = {On the roots of certain polynomials arising from the analysis of the Nelder-Mead simplex method},
332publisher = {Academic Press},
333year = {2003},
334journal = {Linear Algebra and its Applications},
335pages = {109-124},
336volume={363}
337}
338
339@article{590075,
340 author = {Peters,, D. and Bolte,, H. and Marschner,, C. and N\"{u}ssen,, O. and Laur,, R.},
341 title = {Enhanced Optimization Algorithms for the Development of Microsystems},
342 journal = {Analog Integr. Circuits Signal Process.},
343 volume = {32},
344 number = {1},
345 year = {2002},
346 issn = {0925-1030},
347 pages = {47--54},
348 doi = {http://dx.doi.org/10.1023/A:1016071624422},
349 publisher = {Kluwer Academic Publishers},
350 address = {Hingham, MA, USA},
351 }
352@article{citeulike:1903787,
353 abstract = {The greatest or least value of a function of several variables is to be found when the variables are restricted to a given region. A method is developed for dealing with this problem and is compared with possible alternatives. The method can be used on a digital computer, and is incorporated in a program for Mercury. 10.1093/comjnl/3.3.175},
354 author = {Rosenbrock, H. H. },
355 citeulike-article-id = {1903787},
356 doi = {10.1093/comjnl/3.3.175},
357 journal = {The Computer Journal},
358 keywords = {deterministic, kisao, simulation\_algorithms},
359 month = {March},
360 number = {3},
361 pages = {175--184},
362 posted-at = {2007-11-12 19:07:20},
363 priority = {2},
364 title = {An Automatic Method for Finding the Greatest or Least Value of a Function},
365 url = {http://dx.doi.org/10.1093/comjnl/3.3.175},
366 volume = {3},
367 year = {1960}
368}
369
370
371
372
373
374@article{Powell08011962,
375author = {Powell, M. J. D.},
376title = {{An Iterative Method for Finding Stationary Values of a Function of Several Variables}},
377journal = {The Computer Journal},
378volume = {5},
379number = {2},
380pages = {147-151},
381doi = {10.1093/comjnl/5.2.147},
382year = {1962},
383abstract = {An iterative method for finding stationary values of a function of several variables is described. In many ways it is similar to the method of steepest descents; however this new method has second order convergence.
384},
385URL = {http://comjnl.oxfordjournals.org/cgi/content/abstract/5/2/147},
386eprint = {http://comjnl.oxfordjournals.org/cgi/reprint/5/2/147.pdf}
387}
388
389
390
391
392
393@article{R.Fletcher08011963,
394author = {Fletcher, R. and Powell, M. J. D.},
395title = {{A Rapidly Convergent Descent Method for Minimization}},
396journal = {The Computer Journal},
397volume = {6},
398number = {2},
399pages = {163-168},
400doi = {10.1093/comjnl/6.2.163},
401year = {1963},
402abstract = {A powerful iterative descent method for finding a local minimum of a function of several variables is described. A number of theorems are proved to show that it always converges and that it converges rapidly. Numerical tests on a variety of functions confirm these theorems. The method has been used to solve a system of one hundred non-linear simultaneous equations.
403},
404URL = {http://comjnl.oxfordjournals.org/cgi/content/abstract/6/2/163},
405eprint = {http://comjnl.oxfordjournals.org/cgi/reprint/6/2/163.pdf}
406}
407
408
409@article{589109,
410 author = {McKinnon,, K. I. M.},
411 title = {Convergence of the Nelder--Mead Simplex Method to a Nonstationary Point},
412 journal = {SIAM J. on Optimization},
413 volume = {9},
414 number = {1},
415 year = {1998},
416 issn = {1052-6234},
417 pages = {148--158},
418 doi = {http://dx.doi.org/10.1137/S1052623496303482},
419 publisher = {Society for Industrial and Applied Mathematics},
420 address = {Philadelphia, PA, USA},
421 }
422
423
424
425@article{355943,
426 author = {Mor\'{e},, J. J. and Garbow,, Burton S. and Hillstrom,, Kenneth E.},
427 title = {Algorithm 566: FORTRAN Subroutines for Testing Unconstrained Optimization Software [C5], [E4]},
428 journal = {ACM Trans. Math. Softw.},
429 volume = {7},
430 number = {1},
431 year = {1981},
432 issn = {0098-3500},
433 pages = {136--140},
434 doi = {http://doi.acm.org/10.1145/355934.355943},
435 publisher = {ACM},
436 address = {New York, NY, USA},
437 }
438
439@TECHREPORT{Fan2002,
440 author = {Ellen Fan},
441 title = {Global Optimization Of Lennard-Jones Atomic Clusters},
442 institution = {McMaster University},
443 year = {2002},
444 month = {February},
445 day={26}
446}
447
448@ARTICLE{Singer:2009,
449AUTHOR = {Singer, A. and Nelder, J. },
450TITLE = {Nelder-Mead algorithm},
451YEAR = {2009},
452JOURNAL = {Scholarpedia},
453VOLUME = {4},
454NUMBER = {7},
455PAGES = {2928}
456}
457
458@ARTICLE{Torczon98fromevolutionary,
459 author = {Virginia Torczon and Michael W. Trosset},
460 title = {From Evolutionary Operation to Parallel Direct Search: Pattern Search Algorithms for Numerical Optimization},
461 journal = {Computing Science and Statistics},
462 year = {1998},
463 volume = {29},
464 pages = {396--401}
465}
466
467@book{WaltersParkerMorganDeming1991,
468 author = {Walters, F. S. and Parker, L. R. and Morgan, S. L. and Deming, S. N.},
469 title = {Sequential Simplex Optimization for Quality and Productivity in Research, Development, and Manufacturing},
470 year = {1991},
471 publisher= {CRC Press, Boca Raton, FL},
472 series = {Chemometrics series},
473}
474
475@ARTICLE{VanDerWiel1980,
476 AUTHOR = {Van Der Wiel, P.F.A. },
477 TITLE = {Improvement of the super modified simplex optimisation procedure},
478 YEAR = {1980},
479 JOURNAL = {Analytica Chemica Acta},
480 VOLUME = {122},
481 PAGES = {421?-433},
482}
483
484@ARTICLE{Routh1977,
485 author = {Routh, M. W. and Swartz, P.A. and Denton, M.B.},
486 title = {Performance of the Super Modified Simplex},
487 journal = {Analytical Chemistry},
488 year = {1977},
489 volume = {49},
490 number = {9},
491 pages = {1422--1428}
492}
493
494@MISC{Brent73algorithmsfor,
495 author = {Richard P. Brent},
496 title = {Algorithms for Minimization without Derivatives},
497 year = {1973}
498}
499
500@book{Gill81MurrayWright,
501 address = {London},
502 author = {Gill, P. E. and Murray, W. and Wright, M. H. },
503 citeulike-article-id = {1055426},
504 keywords = {bibtex-import},
505 posted-at = {2007-01-20 09:02:15},
506 priority = {2},
507 publisher = {Academic Press},
508 title = {Practical optimization},
509 year = {1981}
510}
511
512@book{numericaloptimization,
513author = {Jorge Nocedal, Stephen J. Wright},
514title = {Numerical Optimization},
515year = {1999},
516publisher= {Springer}
517}
518
519@book{citeulike:2122238,
520 address = {Baltimore, MD, USA},
521 author = {Golub, Gene H. and Van Loan, Charles F. },
522 citeulike-article-id = {2122238},
523 isbn = {0801854148},
524 keywords = {algebra, book, computation, numerical},
525 posted-at = {2008-03-30 22:15:25},
526 priority = {2},
527 publisher = {Johns Hopkins University Press},
528 title = {Matrix computations (3rd ed.)},
529 url = {http://portal.acm.org/citation.cfm?id=248979},
530 year = {1996}
531}
532
533@article{355936,
534 author = {Mor\'{e}, Jorge J. and Garbow, Burton S. and Hillstrom, Kenneth E.},
535 title = {Testing Unconstrained Optimization Software},
536 journal = {ACM Trans. Math. Softw.},
537 volume = {7},
538 number = {1},
539 year = {1981},
540 issn = {0098-3500},
541 pages = {17--41},
542 doi = {http://doi.acm.org/10.1145/355934.355936},
543 publisher = {ACM},
544 address = {New York, NY, USA},
545 }
546
diff --git a/scilab_doc/neldermead/neldermead.pdf b/scilab_doc/neldermead/neldermead.pdf
deleted file mode 100644
index a507fc8..0000000
--- a/scilab_doc/neldermead/neldermead.pdf
+++ /dev/null
@@ -1,24555 +0,0 @@
1%PDF-1.4
2%
34 0 obj
4<< /S /GoTo /D (chapter.1) >>
5endobj
67 0 obj
7(Introduction)
8endobj
98 0 obj
10<< /S /GoTo /D (section.1.1) >>
11endobj
1211 0 obj
13(Overview)
14endobj
1512 0 obj
16<< /S /GoTo /D (section.1.2) >>
17endobj
1815 0 obj
19(How to use the Toolbox)
20endobj
2116 0 obj
22<< /S /GoTo /D (section.1.3) >>
23endobj
2419 0 obj
25(An example)
26endobj
2720 0 obj
28<< /S /GoTo /D (section.1.4) >>
29endobj
3023 0 obj
31(Help, demonstrations and unit tests)
32endobj
3324 0 obj
34<< /S /GoTo /D (chapter.2) >>
35endobj
3627 0 obj
37(Simplex theory)
38endobj
3928 0 obj
40<< /S /GoTo /D (section.2.1) >>
41endobj
4231 0 obj
43(The simplex)
44endobj
4532 0 obj
46<< /S /GoTo /D (section.2.2) >>
47endobj
4835 0 obj
49(The size of the complex)
50endobj
5136 0 obj
52<< /S /GoTo /D (section.2.3) >>
53endobj
5439 0 obj
55(The initial simplex)
56endobj
5740 0 obj
58<< /S /GoTo /D (subsection.2.3.1) >>
59endobj
6043 0 obj
61(Importance of the initial simplex)
62endobj
6344 0 obj
64<< /S /GoTo /D (subsection.2.3.2) >>
65endobj
6647 0 obj
67(Spendley's et al regular simplex)
68endobj
6948 0 obj
70<< /S /GoTo /D (subsection.2.3.3) >>
71endobj
7251 0 obj
73(Axis-by-axis simplex)
74endobj
7552 0 obj
76<< /S /GoTo /D (subsection.2.3.4) >>
77endobj
7855 0 obj
79(Randomized bounds)
80endobj
8156 0 obj
82<< /S /GoTo /D (subsection.2.3.5) >>
83endobj
8459 0 obj
85(Pfeffer's method)
86endobj
8760 0 obj
88<< /S /GoTo /D (section.2.4) >>
89endobj
9063 0 obj
91(The simplex gradient)
92endobj
9364 0 obj
94<< /S /GoTo /D (subsection.2.4.1) >>
95endobj
9667 0 obj
97(Matrix of simplex directions)
98endobj
9968 0 obj
100<< /S /GoTo /D (subsection.2.4.2) >>
101endobj
10271 0 obj
103(Taylor's formula)
104endobj
10572 0 obj
106<< /S /GoTo /D (subsection.2.4.3) >>
107endobj
10875 0 obj
109(Forward difference simplex gradient)
110endobj
11176 0 obj
112<< /S /GoTo /D (section.2.5) >>
113endobj
11479 0 obj
115(References and notes)
116endobj
11780 0 obj
118<< /S /GoTo /D (chapter.3) >>
119endobj
12083 0 obj
121(Spendley's et al. method)
122endobj
12384 0 obj
124<< /S /GoTo /D (section.3.1) >>
125endobj
12687 0 obj
127(Introduction)
128endobj
12988 0 obj
130<< /S /GoTo /D (subsection.3.1.1) >>
131endobj
13291 0 obj
133(Overview)
134endobj
13592 0 obj
136<< /S /GoTo /D (subsection.3.1.2) >>
137endobj
13895 0 obj
139(Algorithm)
140endobj
14196 0 obj
142<< /S /GoTo /D (subsection.3.1.3) >>
143endobj
14499 0 obj
145(Geometric analysis)
146endobj
147100 0 obj
148<< /S /GoTo /D (subsection.3.1.4) >>
149endobj
150103 0 obj
151(General features of the algorithm)
152endobj
153104 0 obj
154<< /S /GoTo /D (section.3.2) >>
155endobj
156107 0 obj
157(Numerical experiments)
158endobj
159108 0 obj
160<< /S /GoTo /D (subsection.3.2.1) >>
161endobj
162111 0 obj
163(Quadratic function)
164endobj
165112 0 obj
166<< /S /GoTo /D (subsection.3.2.2) >>
167endobj
168115 0 obj
169(Badly scaled quadratic function)
170endobj
171116 0 obj
172<< /S /GoTo /D (subsection.3.2.3) >>
173endobj
174119 0 obj
175(Sensitivity to dimension)
176endobj
177120 0 obj
178<< /S /GoTo /D (section.3.3) >>
179endobj
180123 0 obj
181(Conclusion)
182endobj
183124 0 obj
184<< /S /GoTo /D (chapter.4) >>
185endobj
186127 0 obj
187(Nelder-Mead method)
188endobj
189128 0 obj
190<< /S /GoTo /D (section.4.1) >>
191endobj
192131 0 obj
193(Introduction)
194endobj
195132 0 obj
196<< /S /GoTo /D (subsection.4.1.1) >>
197endobj
198135 0 obj
199(Overview)
200endobj
201136 0 obj
202<< /S /GoTo /D (subsection.4.1.2) >>
203endobj
204139 0 obj
205(Algorithm)
206endobj
207140 0 obj
208<< /S /GoTo /D (section.4.2) >>
209endobj
210143 0 obj
211(Geometric analysis)
212endobj
213144 0 obj
214<< /S /GoTo /D (section.4.3) >>
215endobj
216147 0 obj
217(Automatic restarts)
218endobj
219148 0 obj
220<< /S /GoTo /D (subsection.4.3.1) >>
221endobj
222151 0 obj
223(Automatic restart algorithm)
224endobj
225152 0 obj
226<< /S /GoTo /D (subsection.4.3.2) >>
227endobj
228155 0 obj
229(O'Neill factorial test)
230endobj
231156 0 obj
232<< /S /GoTo /D (subsection.4.3.3) >>
233endobj
234159 0 obj
235(Kelley's stagnation detection)
236endobj
237160 0 obj
238<< /S /GoTo /D (section.4.4) >>
239endobj
240163 0 obj
241(Convergence properties on a quadratic)
242endobj
243164 0 obj
244<< /S /GoTo /D (subsection.4.4.1) >>
245endobj
246167 0 obj
247(With default parameters)
248endobj
249168 0 obj
250<< /S /GoTo /D (subsection.4.4.2) >>
251endobj
252171 0 obj
253(With variable parameters)
254endobj
255172 0 obj
256<< /S /GoTo /D (section.4.5) >>
257endobj
258175 0 obj
259(Numerical experiments)
260endobj
261176 0 obj
262<< /S /GoTo /D (subsection.4.5.1) >>
263endobj
264179 0 obj
265(Quadratic function)
266endobj
267180 0 obj
268<< /S /GoTo /D (subsection.4.5.2) >>
269endobj
270183 0 obj
271(Sensitivity to dimension)
272endobj
273184 0 obj
274<< /S /GoTo /D (subsection.4.5.3) >>
275endobj
276187 0 obj
277(O'Neill test cases)
278endobj
279188 0 obj
280<< /S /GoTo /D (subsection.4.5.4) >>
281endobj
282191 0 obj
283(Mc Kinnon: convergence to a non stationnary point)
284endobj
285192 0 obj
286<< /S /GoTo /D (subsection.4.5.5) >>
287endobj
288195 0 obj
289(Kelley: oriented restart)
290endobj
291196 0 obj
292<< /S /GoTo /D (subsection.4.5.6) >>
293endobj
294199 0 obj
295(Han counter examples)
296endobj
297200 0 obj
298<< /S /GoTo /D (subsection.4.5.7) >>
299endobj
300203 0 obj
301(Torczon's numerical experiments)
302endobj
303204 0 obj
304<< /S /GoTo /D (section.4.6) >>
305endobj
306207 0 obj
307(Conclusion)
308endobj
309208 0 obj
310<< /S /GoTo /D (chapter.5) >>
311endobj
312211 0 obj
313(The fminsearch function)
314endobj
315212 0 obj
316<< /S /GoTo /D (section.5.1) >>
317endobj
318215 0 obj
319(fminsearch's algorithm)
320endobj
321216 0 obj
322<< /S /GoTo /D (subsection.5.1.1) >>
323endobj
324219 0 obj
325(The algorithm)
326endobj
327220 0 obj
328<< /S /GoTo /D (subsection.5.1.2) >>
329endobj
330223 0 obj
331(The initial simplex)
332endobj
333224 0 obj
334<< /S /GoTo /D (subsection.5.1.3) >>
335endobj
336227 0 obj
337(The number of iterations)
338endobj
339228 0 obj
340<< /S /GoTo /D (subsection.5.1.4) >>
341endobj
342231 0 obj
343(The termination criteria)
344endobj
345232 0 obj
346<< /S /GoTo /D (section.5.2) >>
347endobj
348235 0 obj
349(Numerical experiments)
350endobj
351236 0 obj
352<< /S /GoTo /D (subsection.5.2.1) >>
353endobj
354239 0 obj
355(Algorithm and numerical precision)
356endobj
357240 0 obj
358<< /S /GoTo /D (subsection.5.2.2) >>
359endobj
360243 0 obj
361(Output and plot functions)
362endobj
363244 0 obj
364<< /S /GoTo /D (subsection.5.2.3) >>
365endobj
366247 0 obj
367(Predefined plot functions)
368endobj
369248 0 obj
370<< /S /GoTo /D (section.5.3) >>
371endobj
372251 0 obj
373(Conclusion)
374endobj
375252 0 obj
376<< /S /GoTo /D (chapter.6) >>
377endobj
378255 0 obj
379(Conclusion)
380endobj
381256 0 obj
382<< /S /GoTo /D (chapter.7) >>
383endobj
384259 0 obj
385(Acknowledgments)
386endobj
387260 0 obj
388<< /S /GoTo /D (appendix.A) >>
389endobj
390263 0 obj
391(Nelder-Mead bibliography)
392endobj
393264 0 obj
394<< /S /GoTo /D (section.A.1) >>
395endobj
396267 0 obj
397(Spendley, Hext, Himsworth, 1962)
398endobj
399268 0 obj
400<< /S /GoTo /D (section.A.2) >>
401endobj
402271 0 obj
403(Nelder, Mead, 1965)
404endobj
405272 0 obj
406<< /S /GoTo /D (section.A.3) >>
407endobj
408275 0 obj
409(Box, 1965)
410endobj
411276 0 obj
412<< /S /GoTo /D (section.A.4) >>
413endobj
414279 0 obj
415(Guin, 1968)
416endobj
417280 0 obj
418<< /S /GoTo /D (section.A.5) >>
419endobj
420283 0 obj
421(O'Neill, 1971)
422endobj
423284 0 obj
424<< /S /GoTo /D (section.A.6) >>
425endobj
426287 0 obj
427(Parkinson and Hutchinson, 1972)
428endobj
429288 0 obj
430<< /S /GoTo /D (section.A.7) >>
431endobj
432291 0 obj
433(Richardson and Kuester, 1973)
434endobj
435292 0 obj
436<< /S /GoTo /D (section.A.8) >>
437endobj
438295 0 obj
439(Shere, 1973)
440endobj
441296 0 obj
442<< /S /GoTo /D (section.A.9) >>
443endobj
444299 0 obj
445(Routh, Swartz, Denton, 1977)
446endobj
447300 0 obj
448<< /S /GoTo /D (section.A.10) >>
449endobj
450303 0 obj
451(Van Der Wiel, 1980)
452endobj
453304 0 obj
454<< /S /GoTo /D (section.A.11) >>
455endobj
456307 0 obj
457(Walters, Parker, Morgan and Deming, 1991)
458endobj
459308 0 obj
460<< /S /GoTo /D (section.A.12) >>
461endobj
462311 0 obj
463(Subrahmanyam, 1989)
464endobj
465312 0 obj
466<< /S /GoTo /D (section.A.13) >>
467endobj
468315 0 obj
469(Numerical Recipes in C, 1992)
470endobj
471316 0 obj
472<< /S /GoTo /D (section.A.14) >>
473endobj
474319 0 obj
475(Lagarias, Reeds, Wright, Wright, 1998)
476endobj
477320 0 obj
478<< /S /GoTo /D (section.A.15) >>
479endobj
480323 0 obj
481(Mc Kinnon, 1998)
482endobj
483324 0 obj
484<< /S /GoTo /D (section.A.16) >>
485endobj
486327 0 obj
487(Kelley, 1999)
488endobj
489328 0 obj
490<< /S /GoTo /D (section.A.17) >>
491endobj
492331 0 obj
493(Han, 2000)
494endobj
495332 0 obj
496<< /S /GoTo /D (section.A.18) >>
497endobj
498335 0 obj
499(Nazareth, Tseng, 2001)
500endobj
501336 0 obj
502<< /S /GoTo /D (section.A.19) >>
503endobj
504339 0 obj
505(Perry, Perry, 2001)
506endobj
507340 0 obj
508<< /S /GoTo /D (section.A.20) >>
509endobj
510343 0 obj
511(Andersson, 2001)
512endobj
513344 0 obj
514<< /S /GoTo /D (section.A.21) >>
515endobj
516347 0 obj
517(Peters, Bolte, Marschner, N\374ssen and Laur, 2002)
518endobj
519348 0 obj
520<< /S /GoTo /D (section.A.22) >>
521endobj
522351 0 obj
523(Han, Neumann, 2006)
524endobj
525352 0 obj
526<< /S /GoTo /D (section.A.23) >>
527endobj
528355 0 obj
529(Singer, Nelder, 2008)
530endobj
531356 0 obj
532<< /S /GoTo /D (appendix.B) >>
533endobj
534359 0 obj
535(Implementations of the Nelder-Mead algorithm)
536endobj
537360 0 obj
538<< /S /GoTo /D (section.B.1) >>
539endobj
540363 0 obj
541(Matlab : fminsearch)
542endobj
543364 0 obj
544<< /S /GoTo /D (section.B.2) >>
545endobj
546367 0 obj
547(Kelley and the Nelder-Mead algorithm)
548endobj
549368 0 obj
550<< /S /GoTo /D (section.B.3) >>
551endobj
552371 0 obj
553(Nelder-Mead Scilab Toolbox : Lolimot)
554endobj
555372 0 obj
556<< /S /GoTo /D (section.B.4) >>
557endobj
558375 0 obj
559(Numerical Recipes)
560endobj
561376 0 obj
562<< /S /GoTo /D (section.B.5) >>
563endobj
564379 0 obj
565(NASHLIB : A19)
566endobj
567380 0 obj
568<< /S /GoTo /D (section.B.6) >>
569endobj
570383 0 obj
571(O'Neill implementations)
572endobj
573384 0 obj
574<< /S /GoTo /D (section.B.7) >>
575endobj
576387 0 obj