C言語質問スレ【激初心者】
■ このスレッドは過去ログ倉庫に格納されています
0817デフォルトの名無しさん
2005/11/26(土) 10:18:00ニュートン法が使えないって事はないが、二分法で。
#include <stdio.h>
#include <math.h>
double fn(double x){
return x*pow(x+0.01214,2)*pow(0.98786-x,2)*(0.0000000000667*1.0123)\
- pow(0.98786-x,2)*0.0000000000667*1 \
+ pow(0.01214+x,2)*0.0000000000667*0.0123;
}
int main(){
double x1=0.5, x3=1.0, x2,y;
double eps=0.000000000000001;
for(;;){
x2=(x1+x3)/2.0;
y=fn(x2);
if ((y==0) || fabs(x1-x3)<eps)
break;
else if (y < 0)
x1 = x2;
else
x3 = x2;
}
printf("%.15f\n",x2);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています