이것은 이분법 루트 방법왜 내가 무한 루프에 있는지 알 수 있도록 도와 주시겠습니까?
double p1::root(double (*pf)(double k), int a, int b, double e) {
// void nrerror(char error_text[]);
double left = (double)a;
double right = (double)b;
double midpoint;
do
{
midpoint = ((right+left)/2);
if(pf(left) *pf(midpoint) <0){
right = midpoint;
}
else if(pf(right) * pf(midpoint) <0){
left = midpoint;
}
else{
break;
}
}while(abs(right-left) >2*e && abs(left-right)>e);
return midpoint;
}
'pf','a','b','e'의 값은 무엇입니까? – MSN
이것은 문제가 아니지만 while 비교는 약간 중복되어 있습니다. abs (right-left)> 2를 사용합니다. * e 트릭을 수행합니다 –
무한 루프가있는'pf' 함수를 전달하고 있습니까? –