레포트 마감 45분전!!!!!!!!!!!!!!!!!ㅜㅜ뭐가안되욧
모아
newton raphson방정식을 이용해서
근사치 구하는건데...
#include stdio.h
#include math.h
double Function(double x);
double D_Function(double x);
int main()
{
long double x1,x2; // 근사값 x를 귀하기 위한 변수
long double e1,e2,e3;
int i=0;
e1=0.001;
e2=0.00001;
e3=0.0000001;
x1=0.0; // 초기값
// epsilon=0.001 일때
while(1)
{
x2=x1-(Function(x1)/D_Function(x1)); // x2의 값을 구하는 식
if(fabs(x2-x1)e1) // 조건식을 만족할때, while문을 빠져 나옴
break;
x1=x2;
i++; // 몇번 반복 되었는지 확인하기 위한 변수
}
printf(%d번째 수행후\n,i);
printf(epsilon=%.3lf일 경우: x=%.14lf\n,e1,x2);
// epsilon=0.00001 일때
while(1)
{
x2=x1-Function(x1)/D_Function(x1); // x2의 값을 구하는 식
if(fabs(x2-x1)e2) // 조건식을 만족할때, while문을 빠져 나옴
break;
x1=x2;
i++; // 몇번 반복 되었는지 확인하기 위한 변수
}
printf(%d번째 수행후\n,i);
printf(epsilon=%.5lf일 경우: x=%.14lf\n,e2,x2);
// epsilon=0.0000001 일때
while(1)
{
x2=x1-Function(x1)/D_Function(x1); // x2의 값을 구하는 식
if(fabs(x2-x1)e3) // 조건식을 만족할때, while문을 빠져 나옴
break;
x1=x2;
i++; // 몇번 반복 되었는지 확인하기 위한 변수
}
printf(%d번째 수행후\n,i);
printf(epsilon=%.7lf일 경우: x=%.14lf\n,e3,x2);return 0;}
double Function(double x)
{
double f_x;
f_x=pow(x, 2) - x + 3;
return f_x;
}
double D_Function(double x)
{
double df_x;
df_x=(2*x) - 1;
return df_x;
}이렇게 하면 무한루프를 도는지, 에러는 0인데, 값이 안뜨네요.........
무엇이 문제죠 ㅜㅜㅜ;ㅣ
초기값은 학교에서 하란대로 x1 = 0.0 을 주었습니다.
-
떠나간그놈
C++ Q&A 게시판에서 C언어 Q&A 게시판으로 이동시켰습니다.
-
하예라
while문에서 무한루프를 도는 경우에는 break를 만나지 못했을 경우입니다.
if문에서 break하는 조건이 항상 거짓이라는 얘기가 됩니다.