牛顿迭代
用于一元高次方程求解
例
如
:
y
=
x
∗
x
−
5
=
0
例如: y = x * x - 5 = 0
例如:y=x∗x−5=0
#include <stdio.h>
#include <math.h>
double F(double x, double n) {
return (x * x - n);
}
double f(double x) {
return 2 * x;
}
double newton(double (*F)(double, double), double (*f)(double), double n) {
double x = n / 2;
#define EPSL 1e-6
while (fabs(F(x, n)) > EPSL) {
x -= F(x, n) / f(x);
}
#undef EPSL
return x;
}
int main() {
double n;
while(~scanf("%lf", &n)) {
printf("%g\n", newton(F, f, n));
}
return 0;
}