Алгоритм нахождения квадратного корня - C (СИ)

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

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

Алгоритм нахождения квадратного корня из положительного числа x можно представить следующей рекуррентной последовательностью: y0 = x yi = yi-1 + ( x/yi-1 – yi-1 )/2 При заданном x определить n-ое приближение его квадратного корня. Помогите пожалуйста

Решение задачи: «Алгоритм нахождения квадратного корня»

textual
Листинг программы
double my_sqrt(double x)
{
    static const double eps = 1e-10;
    
    double prev;
    double next = x;
 
    do
    {
        prev = next;
        next = (prev + x / prev) / 2;
    }
    while (fabs(prev - next) > eps);
 
    return next;
}

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

  1. В функции my_sqrt реализован алгоритм нахождения квадратного корня числа x.
  2. Статическое значение eps используется для контроля за точностью вычислений.
  3. Переменная prev инициализируется значением next, которое в свою очередь инициализируется значением x.
  4. В цикле do-while происходит последовательное улучшение приближенного значения next до достижения заданной точности eps.
  5. Значение prev сохраняется в переменной prev перед каждой итерацией цикла.
  6. Значение next улучшается на каждой итерации цикла путем вычисления среднего арифметического между prev и next.
  7. Вычисляемое значение next используется в качестве нового приближенного значения prev на каждой итерации цикла.
  8. Цикл завершается, когда разница между prev и next меньше или равна eps.
  9. Функция возвращает значение next как результат вычисления квадратного корня числа x.

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

13   голосов , оценка 4.077 из 5
Похожие ответы