Newton Raphson Method

언어/Coding 2015. 12. 21. 00:54

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define e 2.7182818284590452354

#define th 0.0001


double f(double num1) {

        double num2;

        num2=pow(num1,3)-num1-1.344;

        return num2;

} //definition of f(x)


double f2(double num1) {

        double num2;

        num2=3*pow(num1,2)-1;

        return num2;

} //differential of f(x)


int main() {

        double x0,x1,n1,n2;

        int i;

        printf("Input first number:");

        scanf("%lf",&x0);

for(i=0;i<=999;i++){

                x1=x0-f(x0)/f2(x0);

                printf("\nx1 value is %lf\n",x1);

                n1=f(x0);

                printf("f(x0) value is %lf\n",n1);

                n2=f2(x0);

                x0=x1;

                //printf("f2(x0) value is %lf\n",n2);

                if (fabs(n1) <= th){

                        printf("\n%lf is root\n",x0);

                        printf("x:%lf \t f(x):%lf\n",x0,n1);

                        break;

                }

                else if ((fabs(n2) <= th) && (i=999)){

                        printf("no root value\n");

                        printf("x:%lf \t f(x):%lf\n",x0,n1);

                }

        }

        printf("첫 x일 때 나오는 f(x)는 근이 아님\n x1에 해당하는 f(x)는 f(x2)임

\n x2에 해당하는 f(x)는 f(x3)~~~ 이런 식으로 됨\n");

} //end of main

'언어 > Coding' 카테고리의 다른 글

Jacobi  (0) 2015.12.21
GaussN  (0) 2015.12.21
Least(최소 제곱법)  (0) 2015.12.21
Thomas(Tridia)  (0) 2015.12.21
LUCrout (LU분해,해 구하기, 역행렬 구하기)  (0) 2015.12.21
Posted by 知彼知己百戰不殆
,