#include #include /* golden.c : 1999 3 27 by T.Oguni */ #define N 30 double f(double x){ return (x-1.0)*(x-1.0)*(x-1.0)*(x-1.0); } /* function */ golden(a,b,tol,result,itr) double a,b,tol,result[N]; int itr[2]; { double beta, gamma, x0,x1,x2,x3, d, f0,f1,f2,f3; int it; beta=0.5*(sqrt(5.0)-1.0); gamma=1.0-beta; x0=a; x3=b; if (a>b) { x0=b; x3=a; } d=x3-x0; x1=x0+gamma*d; x2=x3-gamma*d; f0=f(x0); f1=f(x1); f2=f(x2); f3=f(x3); it=0; while (it