[ 簡単な説明 ] Nelder-Mead の滑降シンプレックス法による多次元関数の極小値求解プログラムです。 出力例は、3変数関数 f (x,y,z) = |(x-1)3|+(y-2)2 + |z-3| の極小値を求めています。(解は、x=1、y=2、z=3 で f( )=0 です。) 極小値求解プログラムは、与える関数の符号を変えれば、極大値求解に使用できます。 /* amoeba.c 多次元の滑降シンプレックス法 */ #include <stdio.h> #include <stdlib.h> #include <math.h> #define NMAX 5000 /* 関数評価回数の上限 */ #define SWAP(a, b) {swap = (a); (a) = (b); (b) = swap;} void amoeba(double **p, double y[], in