/*	Autor: Duran Rosique Alberto
	Objetivo: Encontrar el cero de la función mediante el método de newton	*/

#include
#include

float f(float x)
{
    return pow(M_E,-x)-x;
}

float f_(float x)
{
    return -(pow(M_E,-x)+1);
}

float ea(float a, float b)
{
    return (sqrt(((a-b)/a)*((a-b)/a)))*100;
}

int main()
{
    float x, xi, ee;
    int i;
    printf("\nValor inicial:\t");
    scanf("%f",&xi);
    printf("\nError de aproximacion:\t");
    scanf("%f",&ee);
    
    for(i=1; ;i++){

        x = xi - ( f(xi) / f_(xi) );
        printf("\n\nIteracion %d:", i);
        printf("\n%f = %f - ( %f / %f)", x, xi, f(xi), f_(xi));
        printf("\nx[%d] = %.4f;f(x) = %.10f", i, x, f(x));
        printf("\nError de aproximacion: %.2f%%", ea(x,xi));
        if ( ea(x,xi) < ee || f(x) == 0 ) break;
        xi = x;
    }
        
    printf("\n\nEl valor aproximado de la raiz es: %.4f;\tf(x) = %.10f\n",x,f(x));
        
    getchar(); getchar();
    return 0;
}

    Source: geocities.com/mx/print.unam

               ( geocities.com/mx)