/* Program pro minimalizaci funkce vice promennych pomoci metody sdruzenych gradientu. Vola proceduru E04DGF z NAG Fortran Library. */ #include #include #include "nagopt.h" #define MAXN 5000 /* maximalni pocet promennych */ extern double f(long int ndim, double x[], double grad[]); /* f pocita funkcni hodnotu a gradient minimalizovane funkce v bode x */ static void objfun(long int *mode, long int *n, double x[], double *objf, double objgrd[], long int *nstate, long int iuser[], double user[]); /* ucelova funkce ve tvaru vyzadovanem procedurou E04DGF */ main() { long int n; /* skutecny pocet promennych */ double objf, objgrd[MAXN], x[MAXN], work[13*MAXN], user[1]; long int iter, iwork[MAXN+1], iuser[1], ifail, i; printf("Zadej pocet promennych a pocatecni odhad minima:\n"); scanf("%ld", &n); for (i=0; i