用c++写出这个代码

img


怎么样用代码解出来啊,简单迭代和牛顿迭代法分开表示,最好是详细代码!

#include <bits/stdc++.h>

using namespace std;

// x^2 - 11 = 0

// 牛顿迭代法: x_{n+1} = x_n - f(x_n)/f'(x_n) 
double Newton(double x = 3.0) {
    cout << "牛顿迭代法:";
    while (abs(x*x - 11.0) > 0.00001) {
        x = x - (x*x - 11)/(2*x);
        cout << setprecision(8) << x << " ";
    }
    cout << endl;
    return x;
}


double GD(double x = 3.0) {
    double r = 4;
    cout << "二分迭代:";
    while (abs(x*x - 11.0) > 0.00001) {
        if (x*x < 11)   x = x + r;
        else    x -= r;
        r /= 2;   
        cout << setprecision(8) << x << " ";
    }
    cout << endl;
    return x;
}

int main() {
    GD(3.0);
    Newton(3.0); 

    return 0;
}

运行结果:

二分迭代:7 5 4 3.5 3.25 3.375 3.3125 3.34375 3.328125 3.3203125 3.3164062 3.3183594 3.3173828 3.3168945 3.3166504 3.3165283 3.3165894 3.3166199 3.3166351 3.3166275 3.3166237 
牛顿迭代法:3.3333333 3.3166667 3.3166248