Вычисления с плавающей точкой? Здравствуйте Хабровчане.
Вопрос может показаться странным но он меня приводит в тяжелое недоумение.
Я буду приводить вычисления, выполненные в MatLab:
Команда: sqrt(2) = 1.4142135623731 — 13 значащих цифр после запятой.
Команда: sqrt(98) = 9.89949493661167 — 14 значащих цифр после запятой.
Насколько я понимаю, после запятой в типе double может быть не больше 15 знаков после запятой.
И если вычислить по честному эти корни:
vpa(sqrt(2),16) = 1.414213562373095 — 15 значащих цифр.
vpa(sqrt(98),16) = 9.899494936611665 — 15 значащих цифр.
Заметим, что округление в случае 13 и 14 знаков осуществлено по всем правилам и верно.
Однако мне непонятна причина, почему функция sqrt выдает разное количество разрядов для разных цифр? Чем это вызвано и в чем логика такого поведения? Такое же я наблюдал и C-компиляторах.

21 Авг 2019 в 06:15
190 +1
0
Ответы
1

Привет! Разница в количестве значащих цифр после запятой может быть вызвана ограничениями точности вычислений с плавающей точкой и спецификой работы алгоритма нахождения квадратного корня.

Внутри компьютера числа с плавающей точкой представляются в виде двоичной дроби, что может вызвать небольшие ошибки в вычислениях из-за невозможности точного представления некоторых значений в бинарном виде. В данном случае, возможно, алгоритм нахождения квадратного корня для разных чисел работает с разной точностью, что приводит к разному количеству выводимых значащих цифр.

Кроме того, вычисления с плавающей точкой обычно проводятся с ограниченной точностью из-за наличия погрешностей округления, поэтому результаты могут незначительно различаться для разных входных значений.

В целом, различие в количестве значащих цифр после запятой в данном случае может быть обусловлено спецификой работы математических алгоритмов и ограничениями точности вычислений с плавающей точкой.

20 Апр в 13:21
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 028 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир