#!/usr/local/bin/tcc -run /* Newton method */ #include #include #define eps pow(10.0,-4) double f(double x) { return x*x*x-3.0*x*x+2.0; } double fd(double x) { return 3.0*x*x-6.0*x; } int main() { int k=0; double x0,x1,f0,fd0,diff; x0=1.5; do{ f0=f(x0);fd0=fd(x0); x1=x0-f0/fd0; diff=fabs(f(x1)); x0=x1; }while(diff >=eps); printf("%f %f \n",x0,diff); }