Метод Ньютона. Из итерации в рекурсию (Java)

Задание состоит в том, чтобы написать код, который будет применять метод Ньютона, используя рекурсию, и дан этот кусок кода, как пример использования метода Ньютона с итерацией. Не могу понять, как перевести данный код в рекурсию. Язык начала изучать недавно, поэтому была бы очень благодарна, если бы ответ был наглядным. Спасибо!

public static double f(double x) { 
     return x * x * x - 3.5 * x * x + 0.5 * x + 5;
}

public static double prf(double x) { 
    return 3 * x * x - 7 * x + 0.5;
}

// ВЫЧИСЛЕНИЕ КОРНЯ МЕТОДОМ НЬЮТОНА
public static double x_newton(double a, double e) {
    double x = a; 
    double razn;
    do {
        double xn = x - f(x) / prf(x); 
        razn = Math.abs(xn - x); 
        x = xn; 
    } while (razn > e); 

    return x - f(x) / prf(x); 
}

Ответы (1 шт):

Автор решения: Alex Rudenko

Известная рекуррентная формула метода Ньютона:

введите сюда описание изображения

Условие выхода из рекурсии в коде также указано:

введите сюда описание изображения

и оно может быть упрощено:

введите сюда описание изображения

Соответственно рекурсивный код может выглядеть так:

// обычная формула
public static double x_newton(double x, double e) {
    double xn = x - f(x) / prf(x);

    if (Math.abs(xn - x) < e) {
        return xn;
    }
    return x_newton(xn, e);
}

// упрощённая формула
public static double x_newton_simple(double x, double e) {
    double v = f(x) / prf(x);

    if (Math.abs(v) < e) {
        return x - v;
    }
    return x_newton_simple(x - v, e);
}
→ Ссылка