#include #include /* halley.c : 1999 5 2 */ double halley(f, f1, f2, x0, itr, tol) double (*f)(), (*f1)(), (*f2)(), x0, tol; int itr; { double x; int i; for(i=1; i<=itr; i++){ x=x0-f(x0)/(f1(x0)-f(x0)*f2(x0)/(2.0*f1(x0))); if (fabs(x-x0)<=tol) break; x0=x; } /* printf("%d\n",i); */ return x; } double f(double x) { return x*x-2.0; } double f1(double x) { return 2.0*x; } double f2(double x) { return 2.0; } /* main */ main(){ double x; x=halley(f,f1,f2,2.0,10,0.0001); printf("•½•ûª‚Í %f\n", x); }