/* * NEWTON-RAPHSON ALGORITHM 2.3 * * To find a solution to f(x) = 0 given an * initial approximation p0: * * INPUT: initial approximation p0; tolerance TOL; * maximum number of iterations NO. * * OUTPUT: approximate solution p or a message of failure */ #include #include #include #include #define true 1 #define false 0 #define PI 3.1415926535897932384626433832795 static double F(double); static double FP(double); static void OUTPUT(int *); using namespace std; int main() { double TOL,P0,D,F0,FP0; int OK,I,NO,FLAG; P0 = PI/4.0; TOL = 1.0e-12; NO = 200; OUTPUT(&FLAG); F0 = F(P0); /* STEP 1 */ I = 1; OK = true; /* STEP 2 */ while ((I<=NO) && true == OK) { /* STEP 3 */ /* compute P(I) */ FP0 = FP(P0); D = F0/FP0; /* STEP 6 */ P0 = P0 - D; F0 = F(P0); if (FLAG == 2) cout<