Решение уравнения 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; }
Объяснение кода листинга программы
- Включаем необходимые заголовочные файлы
- Определяем функцию near_equal для проверки условия близости чисел с заданной точностью
- Определяем функцию root для вычисления корня уравнения с использованием метода Ньютона
- В функции main вызываем функцию root с заданными аргументами и выводим результат на экран
- Функция root осуществляет рекурсивный вызов до тех пор, пока не будет выполнено условие остановки (near_equal)
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д