牛顿迭代
用于一元高次方程求解
例如: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;
}
该代码实现了一种利用牛顿迭代法求解一元高次方程的方法,以寻找方程y=x*x-n=0的根。程序中定义了目标函数F(x,n)和其导数f(x),通过不断迭代更新x的值,直到满足精度要求(误差小于1e-6)。在main函数中,用户可以输入n的值,程序将输出对应的方程根。

被折叠的 条评论
为什么被折叠?



