Ю3.22

Задача.

Для заданного [latex]x>1[/latex] вычислить [latex]y=\sqrt{x}[/latex] по итерационной формуле: [latex]y_{i}=\frac{1}{2}(y_{i-1}+\frac{x}{y_{i-1}})[/latex] c заданной погрешностью ε, задав начальное приближение [latex]y_{0}=x[/latex]. Сравнить с результатом использования встроенной функции. Сколько итераций пришлось выполнить?

Тесты.

x ε [latex]y_{i}[/latex] [latex]\left|\sqrt{x}-y_{i} \right|[/latex] i Комментарий
5 1e-2 2.236069 9.18e-07 4 Пройден
100 1e-1 10.000053 5.29e-05 6 Пройден
100 1e-2 10.000000 1.40e-10 7 Пройден
100 1e-6 10.000000 0.00e+00 8 Пройден
100 1e-10 10.000000 0.00e+00 9 Пройден

Решение.

C++

Java

Для подсчета значения квадратного корня для заданного числа создадим цикл. Цикл выполняется пока [latex]\left|y_{i}-y_{i-1}>=\varepsilon\right|[/latex].

С повышением точности растёт количество итераций, но из-за того что, начиная с [latex]\varepsilon=10^{-5}[/latex], погрешность не вычисляется, зависимость оценить нельзя.

Для выполнения программы и проверки тестов можно воспользоваться следующей ссылкой(C++) или другой(Java).

Related Images:

7 thoughts on “Ю3.22

Добавить комментарий