初始根为[1,2]用C++牛顿法求出一元非线性方程f(x)=x^3-sinx-4x+1的全部实根,精度为10^(-4),并输出每次运算的结果及误差,给出代码
时间: 2024-01-05 21:54:57 浏览: 119
用牛顿迭代法求f(x)在x=0附近的一个实根(C++)
#include <stdio.h>
#include <math.h>
double f(double x) {
return pow(x, 3) - sin(x) - 4 * x;
}
double df(double x) {
return 3 * pow(x, 2) - cos(x) - 4;
}
int main() {
double x0 = 1, x1, e = 1e-4, err = 1;
int i = 0;
printf("i x err\n");
while (err > e) {
x1 = x0 - f(x0) / df(x0);
err = fabs((x1 - x0) / x1);
printf("%d %.10f %.10f\n", i++, x1, err);
x0 = x1;
}
printf("The root is %.10f\n", x1);
return 0;
}
阅读全文