#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 |