Естественные науки

Существует ли формула, по которой можно найти приближённый квадратный корень числа?

ПРЕДИСЛОВИЕ
x² - 2x*dx + dx² = (x - dx)²
При x >> dx, значением dx² можно пренебречь и считать его равным нулю.
Тогда x² - 2x*dx = (x - dx)²

АЛГОРИТМ использующий указанное округление

например посчитаем корень квадратный числа 563453.
1. Найдём квадрат больше 563453. Нам подойдёт 640000 = 800²
2. 640000 - 563453 = 76547
3. 76547 / (800*2) = 47.84 ~ 48
4. 800 - 48 = 752

Проверяем 752 * 752 = 565504

Если нужно более точное значение, то можем повторить предыдущих 4 шага, но вместо 800² уже можем взять 752² (ведь оно ближе к исходному)

1. 752² = 565504 больше, чем 563453 (подходит)
2. 565504 - 563453 = 2051
3. 2051 / (752 * 2) = 1.36
4. 752 - 1.36 = 750,64

750.64 * 750.64 = 563460.4096

Как видим результат стал значительно точнее, а уже на следующей итерации получится число
750.635065² = 563453.000808

Как видим точность, которой могли бы позавидовать некоторые калькуляторы :)
Анна Серова
Анна Серова
42 958
Лучший ответ
1. есть алгоритм вычисления "уголком", не знаю, как сейчас, раньше в школе проходили, 8-й класс, не сложнее деления уголком.

2. есть древний сверхбыстрый алгоритм (в самом деле - метод Ньютона, он же - касательных).

Хотим извлечь корень из А, обозначим точный корень как r.

Возьмем какое-то начальное приближение r0. Вообще-то можно взять какое попало положительное число, но быстрее будет, если мы возьмем r0 больше, чем r, но не намного больше.
Например, если надо извлечь из А=123456, можно взять 400 - знаков вдвое меньше, первая цифра 4 в начале - что-то около корня из 12. Если лень - можно взять просто r0=A.

А теперь посмотрим на число A/r0: если у нас r0 < r, то A/r0 > r, и наоборот, если у нас r0 > r, то A/r0 < r.
Значит неизвестный нам точный корень r лежит где-то между r0 и A/r0. Давайте возьмем в качестве нового приближения середину этого отрезка, то есть r1=(r0 + A/r0) / 2. Потом так же получим следующее приближение итд.

Такой метод удваивает число точных знаков на каждом шаге, так что долго считать не придется.

Например:
400.00000000000000
354.32000000000000
351.37539850982200
351.36306031259300
351.36306009596400
351.36306009596400
- все сошлось на 15 знаков точности
Дмитрий П
Дмитрий П
94 806
a^b=e^b*ln(a)
где b любое чилсо в данном случае 1/2
экспонента и натуральный логарифм можно найти в таблице
или расчитать через сумму ряда Тейлора но это слишком трудозатратно будет
Другой способ это Метод Хорд
Денис Ишмухаметов нафиг метод хорд, когда есть более простой и понятный метод касательных, сходящийся несравнимо быстрее!
sqrt(1 + a) примерно равно 1 + a/2. если а намного меньше 1
пользование поясню на примере.
предположим нужно оценить квадратный корень из 5. выносим 4 за скобки и получаем, что 2*sqrt(1 + 1/4) что примерно равно 2*1.125 = 2.25
точное значение: 2,236067977...
Не так плохо. Согласитесь.
есть-такая!

Похожие вопросы