뉴턴메소드와 고정점반복법에 대해 질문드려요
들빛
질문 제목 : 뉴턴매소드와 고정점반복법고정점반복법의 해가 이상한것같아요질문 내용 :
#include stdio.h
#include math.h
#define pi 3.141592
#define f(x) (2*x*cos(2*x*(pi/180))-pow(x-2,2))
#define df(x) (2*cos(x*(pi/180))-4*x*sin(2*x*(pi/180))-2*(x-2))
#define g(x) (sqrt(2*x*cos(2*x*(pi/180)))+2)
void main()
{
int n;
double x0=2;
double x;
for(n=1;n100;n++)
{
if(df(x0)==0)
{
printf(해를 찾을 수 없습니다.\n);
goto fixedpointiteration;
}
x=x0-f(x0)/df(x0);
if(fabs(f(x))10e-8)
{
printf(the newton-rapson method\n);
printf(solution of 2xcos(2x)-pow(x-2,2) = %lf\n, x);
printf(연산횟수 = %d\n, n);
printf(\n\n);
goto fixedpointiteration;
}
x0=x;
}
fixedpointiteration:
x0=2;
for(n=1;n100;n++)
{
x=g(x0);
if(fabs(f(x))10e-8)
{
printf(fixed-point iteration\n);
printf(solution of 2xcos(2x)-pow(x-2,2) = %lf\n, x);
printf(연산횟수 = %d\n, n);
return 0;
}
x0=x;
}
return 0;
}이렇게 해봤는데 에러는 안뜨는데 초기값에 따라 해가 달라지네요...
뉴턴메소드는 2~2.4까지는 해가 0.764054가 나오고 2.5~3까지는 5.197585가 나오네요
고정점반복법은 2~3까지 전부 5.197585만 나오네요
어디가 문제인건가요?
그리고 초기값은 2~3 사이에서 정하면 되는데 초기값 상관없이 해는 같아야 되는거 아닌가요?