optimsimplex is a R port of a module originally developed for Scilab version 5.2.1 by Michael Baudin (INRIA - DIGITEO). Information about this software can be found at www.scilab.org. The following documentation as well as the content of the functions .Rd files are adaptations of the documentation provided with the original Scilab optimsimplex module.


The goal of this package is to provide a building block for optimization algorithms based on a simplex. The optimsimplex package may be used in the following optimization methods:

  • the simplex method Spendley et al.,
  • the method of Nelder and Mead,
  • the Box’s algorithm for constrained optimization,
  • the multi-dimensional search by Torczon,
  • etc …

This set of commands allows to manage a simplex made of \(k\ge n+1\) points in a \(n\)-dimensional space. This component is the building block for a class of direct search optimization methods such as the Nelder-Mead algorithm or Torczon’s Multi-Dimensionnal Search.

A simplex is designed as a collection of \(k\ge n+1\) vertices. Each vertex is made of a point and a function value at that point.

The simplex can be created with various shapes. It can be configured and queried at will. The simplex can also be reflected or shrinked. The simplex gradient can be computed with a order 1 forward formula and with a order 2 centered formula.

The optimsimplex function allows to create a simplex. If vertices coordinates are given, there are registered in the simplex. If a function is provided, it is evaluated at each vertex. Several functions allow to create a simplex with special shapes and methods, including axes-by-axes (optimsimplex.axes), regular (optimsimplex.spendley), randomized bounds simplex with arbitrary \(nbve\) vertices (optimsimplex.randbounds) and an heuristical small variation around a given point (optimsimplex.pfeffer).

In the functions provided in this package, simplices and vertices are, depending on the func