Функции | |
| void | opt_nelder_mead (size_t n, double(*func)(double *), double *x0, double *f0, int initsimplex, double **x, double *f, double tolf, double tolx, int maxfun, int maxiter, int *rc, int *nfun, int *niter, double *xbar, double *xr, double *xe, double *xc) |
| Симплекс-метод Нелдера-Мида. | |
| void opt_nelder_mead | ( | size_t | n, | |
| double(*)(double *) | func, | |||
| double * | x0, | |||
| double * | f0, | |||
| int | initsimplex, | |||
| double ** | x, | |||
| double * | f, | |||
| double | tolf, | |||
| double | tolx, | |||
| int | maxfun, | |||
| int | maxiter, | |||
| int * | rc, | |||
| int * | nfun, | |||
| int * | niter, | |||
| double * | xbar, | |||
| double * | xr, | |||
| double * | xe, | |||
| double * | xc | |||
| ) |
Симплекс-метод Нелдера-Мида.
Функция находит локальный минимум функции
, зависящей от
переменных,
. Для минимизации используется симплекс-метод Нелдера-Мида. Итерации метода продолжаются до тех пор, пока значения функции в вершинах текущего симплекса не будут отличаться более, чем на
, и диаметр симплекса (в чебышевой норме) не будет превышать
. Алгоритм также останавливается при превышении максимально допустимого числа
вычислений значений функции или максимально допустимого числа
итераций (построенных симплексов).
- число переменных функции 
- указатель на функцию, вычисляющую 
- массив длины
, при
содержащий координаты начального приближения
- флаг, показывающий, передается ли функции одно начальное приближение
(при
) или целый симплекс
(при
)
-
-массив, при
содержащий координаты вершин исходного симплекса
- массив длины 
- допуск по значению функции
- допуск по 
- максимальное число вычислений значений функции
- максимальное число итераций
- найденная точка локального минимума
- значение функции в этой точке
- координаты вершин последнего найденного симплекса
- значения функции
в вершинах последнего симплекса
- код возврата:
: значения функции в вершинах текущего симплекса отличаются не более, чем на
, и диаметр симплекса (в чебышевой норме) не превышает
.
: количество вычислений значений функции превысило
или число итераций достигло 
- колчество вычислений значений функции
- число выполненных итераций
,
,
,
- массивы длины
1.4.7