Решение уравнения 0.7х = 2 с использованием рекурсии - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! Возникла такая вот проблемка: как решить уравнение 0.7х = 2 с помощью рекурсии. Вот код, который не работает верно:
#include <stdio.h>
 
double recursiya(double x){
    double rez;
    rez=0.3*x+2.0;
    if (rez<(20./7)) 
        rez=recursiya(rez);
    else 
        return rez;
}
int main(){
    double koren;
    koren=recursiya(1.0);
    printf("%lf ",koren);
    return 0;
}
Поможете исправить?

Решение задачи: «Решение уравнения 0.7х = 2 с использованием рекурсии»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
int near_equal (double x, double y, double eps) {
    return x - y < eps && y - x < eps;
}
 
/* описание функции root:
 * x - число, корень которого необходимо вычислить
 * y - начальное число иетрации
 * eps - точность
 * */
 
double root (double x, double y, double eps) {
 
    y = 0.5 * (y + x / y);
 
    if (near_equal (x, y * y, eps) )
        return y;
    else
        return root (x, y, eps);
}
 
int main () {
 
    printf ("%lf\n", root(2., 1., 0.000001));
 
    return 0;
}

Объяснение кода листинга программы

  1. Включаем необходимые заголовочные файлы
  2. Определяем функцию near_equal для проверки условия близости чисел с заданной точностью
  3. Определяем функцию root для вычисления корня уравнения с использованием метода Ньютона
  4. В функции main вызываем функцию root с заданными аргументами и выводим результат на экран
  5. Функция root осуществляет рекурсивный вызов до тех пор, пока не будет выполнено условие остановки (near_equal)

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5