C/C++の宿題片付けます 129代目
■ このスレッドは過去ログ倉庫に格納されています
0423デフォルトの名無しさん
2009/07/22(水) 22:52:39ググったら「ブレント法」なるものがあったのでやってみた。
#include <stdio.h>
#include <math.h>
#define E 1.0e-11
double f(double x) { return 1 / x - tan(x); }
int main(void)
{
double x = 0.5, dx = 0.1, x1, zx;
int i;
do { zx = x; x = x + dx; } while (f(x) * f(zx) > 0);
i = 0;
do {
printf("%4d: x = %.16f, f(x) = %.16f\n", ++i, x, f(x));
x1 = x - f(x) / (f(x) - f(zx)) * (x - zx);
zx = x;
x = x1;
} while (fabs(f(x)) > E);
printf("ans: %20.16f\n", x);
return 0;
}
■ このスレッドは過去ログ倉庫に格納されています