f(x) = x^3-e^x
위 함수식의 근을 뉴튼법을 이용해 구해야되는데 어렵네용
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
#define e 2.718 // 자연상수 e를 근사값으로 정의
#define f(x) x*x*x-(pow(e,x))
#define fp(x) 3*x*x-x*(pow(e,x-1)) // f'(x)
#define o 0.00001 //분모 0을 방지
main(){
float x1,x2,d;
int knt = 0;
printf("key in x1\n");
scanf("%f",&x1);
do{
knt++;
if(abs(fp(x1)) <= o)
x1 += 0.001;
x2=x1-f(x1)/fp(x1);
d = x1-x2;
x1=x2;
}while(fabs(d) > o || fabs(f(x1)) > o);
printf("\nafter %2d, x1= %7.4f, f(x1)= %6.4f \n",knt,x1,f(x1));
system("pause");
}
결과에 after에 반복수는 나오는데 x1, f1값이 -1.#IND가 나와요..
올바른 프로그래밍 팁좀 부탁해요 ㅠㅠ