/**
* Methode de Newton : f(x) = cos(x) - x^4/4
* Laurent HATIER
* 6/10/10
*/

//librairie
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double fonctionInitiale(double x);
double fonctionFirstDerive(double x);
double fonctionSecondDerive(double x);

double fonctionInitiale(double x){
    return sin(x) - (pow(x,4))/4.0;
}

double fonctionFirstDerive(double x){
    return cos(x) -pow(x,3);
}

double fonctionSecondDerive(double x){
    return -sin(x) -3*pow(x,2);
}

double fonctionCalculXn(double x){
    double x1 = 1;
    double epsilon=0.0000000000000000000000001;
    int k = 0;

    do{
        if(k=0){
            x1 = x - fonctionFirstDerive(x)/fonctionSecondDerive(x);
            printf("x_n+1 : %f\n",x1);
            printf("x_n : %f\n",x);
            k++;
        }else{
            x = x1;
            x1 = x - fonctionFirstDerive(x)/fonctionSecondDerive(x);
            printf("x_n+1 : %f\n",x1);
            printf("x_n : %f\n",x);
        }

    }while(fabs(x1 - x)>epsilon);
}

//main
int main()
{
    float a;
    double x;
    printf("Saississez votre x : ");
    scanf("%f",&a);
    x = (double)a;
    printf("Fonction de base : %f\n",fonctionInitiale(x));
    printf("1er dérivee : %f\n",fonctionFirstDerive(x));
    printf("2e dérivee : %f\n",fonctionSecondDerive(x));
    fonctionCalculXn(x);
}
