2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 А правильно ли считает вычислительная техника ?
Сообщение07.12.2014, 01:30 
Как-то я решал задачу на 10-ти разрядном карманном калькуляторе.
Требовалось извлечь корень кубический из дроби:
В числителе 10 в 11 степени, в знаменателе 9. Получил: 2231,443167
Но поскольку калькулятор выводит на экран только 10 цифр, а фактически вычисляет с бОльшей точностью,
то я из полученного результата 2231,443167 вычел 2231 и получил 0,44316694 , т.е. получается ответ: 2231,44316694.
Обратите внимание, что если отбросив запятую, в законченном результате, разделить запись ответа по 4 знака, то получится 3 числа: 2231 4431 6694.
Если 94 в конце числа списать на техническую неточность, то предыдущие "66" "намекает", что при бОльшей точности вычисления калькулятора,
результат можно представить как сумму чисел представляющую арифметическую прогрессию со смещением на 4 разряда:
$2231 + 0,4431 + 0,00006631 + 0,000000008831 + 0,0000000000011031 + 0,00000000000000013231+ $и т.д.
т.е. $(0[*]2200+2231)(0,0001^0) + (1[*]2200+2231)(0,0001^1) + (2[*]2200+2231)(0,0001^2) + 
+ (3[*]2200+2231)(0,0001^3) + (4[*]2200+2231)(0,0001^4) + (5[*]2200+2231)(0,0001^5)$ и т.д.
Таким образом законченный результат с точностью до 32 знаков должен выглядеть так:
2231,4431'6631'8832'1032'3232'5432'6732
а компьютор, решая эту задачу, выдаёт результат:
2231,4431'6694'0565'0729'4219'7748'7998
Так где же ошибка?

 
 
 
 Re: А правильно ли считает вычислительная техника ?
Сообщение07.12.2014, 01:38 
Аватара пользователя
Вы делаете совершенно произвольные и ни чем не обоснованные предположения, что две шестерки вам на что-то "намекают". Прав компьютер.

 
 
 
 Re: А правильно ли считает вычислительная техника ?
Сообщение07.12.2014, 09:50 
Конечно не правильно.Поскольку для того, чтобы представить одно действительное число в машинном виде необходимо бесконечное время, бесконечное пространство, бесконечная масса и бесконечная энергия. Так что запасов указанных ресурсов всей вселенной не хватит, чтобы представить одно завалящее действительное число. А уж, чтобы перемножить два числа!..

 
 
 
 Re: А правильно ли считает вычислительная техника ?
Сообщение07.12.2014, 15:17 
FORSIK в сообщении #941553 писал(а):
Но поскольку калькулятор выводит на экран только 10 цифр, а фактически вычисляет с бОльшей точностью,
Это правильно, но вот насколько эта точность больше - уже предположение. С одной стороны, можно предположить, что она специально подобрана таким образом, чтобы гарантировать правильность только последней высвечиваемой цифры ответа (и тогда правильность следующих цифр под сомнением), с другой - сказать, что процессор калькулятора ведет вычисления в двоичной системе и обладает некоторой "круглой" стандартной разрядностью (и тогда точность фактически получаемого ответа может быть заметно выше, чем высвечиваемого - это дешевле, чем подгоднять друг к другу размеры индикатора и разрядность процессора).

FORSIK в сообщении #941553 писал(а):
Если 94 в конце числа списать на техническую неточность, то предыдущие "66" "намекает", что при бОльшей точности вычисления калькулятора,
А вот тут Вы опираетесь на одно из возможных предположений, поэтому правильность полученного итогового результата ниоткуда не следует. Отсюда и ошибка.

 
 
 
 Re: А правильно ли считает вычислительная техника ?
Сообщение07.12.2014, 17:58 
Аватара пользователя
Вы смешиваете "правильно" и "точно".
Точный результат возможен не всегда. Для сложения возможен, уже умножение может приводить к потере младших знаков, а уж деление - элементарная 0.1 на любой (нынешней, исторически были электромеханические компы с 10-чной системой счисления, на которых десятичные дроби могли быть представлены точно) двоичной ЭВМ точно не представима, а реализуете десятичную программно - посчитайте 1/3. Можно использовать арифметику рациональных чисел, ценой потери времени, но с делением так получится - останутся корни. И т.д.
Так что требовать можно только "правильности". В смысле, что операции с одними и теми же аргументами дадут тот же результат (воспроизводимость) - не такое тривиальное требование, на АВМ результат мог зависеть от, скажем, температуры, и что отклонение результата операции от точного (которое можно оценить, не имея знания точного значения) было бы меньше некоторой заранее выбранной величины.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group