c语言编辑程序问题2

已知f(x)=cos(x)-x,使用牛顿迭代法求解方程法(x)=0的近似解,要求精确到10-6次方。
提示:自行估算迭代起始的x值,并且使用求出的x值代入fx)进行验证结果是否正确。
f'(x)=-sin(x)-1 ×0=1

img

#include <stdio.h>
#include <math.h>

double f(double x) {
    return cos(x) - x;
}

double df(double x) {
    return -sin(x) - 1;
}

double solve() {
    double x0 = 0.5, x1;
    while (1) {
        x1 = x0 - f(x0) / df(x0);
        if (fabs(x1 - x0) < 1e-6) {
            break;
        }
        x0 = x1;
    }
    return x1;
}

int main() {
    double x = solve();
    printf("The solution is: %lf\n", x);
    printf("Verification: %lf\n", f(x));
    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^