Алгебра и пакет Mathematica 5

ремонт холодильников балашиха


Разрядность и точность при выполнении операций над числами.



Давайте теперь посмотрим, что происходит с разрядностью и точностью при выполнении действий.

Как и следовало ожидать, разрядность больше точности, поскольку число больше 1 и, следовательно, некоторые значащие цифры стоят до десятичной точки. Передвинем теперь точку на 3 разряда вправо, для чего умножим число на 1000, и посмотрим, изменится ли точность и разрядность.

Как видим, разрядность не изменилась, точность уменьшилась на 3, поскольку фактически теперь в дробной части на 3 цифры меньше. А что получится, если мы точку передвинем вправо? Для этого исходное число нужно разделить на 1000.

Разрядность, как и прежде, не изменилась, зато точность увеличилась на 3, поскольку добавилось три значащих разряда после точки.

А теперь давайте в исходном числе передвинем десятичную точку на 6 разрядов вправо. Для этого разделим его на 1 000 000. Тогда целая часть числа будет равна 0. Изменится ли при этом разрядность?

Разрядность при этом, как видите, не изменилась, но точность увеличилась и даже превзошла разрядность!

Отсюда можем заключить, что в то время как разрядность (количество значащих цифр) не зависит от положения десятичной точки, точность изменяется при изменении положения точки и может быть как меньше, так и больше разрядности. Кстати, а как система Mathematica определяет разрядность и точность? Почему эти числа не обязательно целые?

Чтобы узнать ответ на этот вопрос, давайте разберемся, как система Mathematica подсчитывает эти величины. Пусть задано приближенное значение вещественного числа х с погрешностью 6. Само число х можно рассматривать как десятичную дробь, для которой известны лишь некоторые разряды. Система Mathematica по заданному приближению числа х может считать, что число х лежит в интервале (х-b/2, х+6/2), длина которого равна погрешности 5. Тогда разрядность числа х определяется как    а его точность — как  .

Теперь понятно, почему так часто получаются нецелые числа в качестве значений точности и разрядности. Таким образом, если точность числа х равна а, то его погрешность δ = 10-a. Если же число х# 0 и его разрядность равна р, то его погрешность δ = |x|10-p.

Если прибавить к числу (или отнять от него) величину, меньшую погрешности, визуально это не будет заметно.

Но информация о точности хранится.

10^26*(х-х2)
 О.х10i

Фактически это означает, что точность утеряна — нет ни одной верной значащей цифры результата, так как вычисления велись с недостаточной для этого точностью. Заранее же предвидеть, какая точность потребуется в дальнейшем, можно далеко не всегда. Поэтому ничуть не удивительно, что при вычислениях с вещественными числами иногда возникают ничего не значащие "хвосты", которые не имеют никакого физического смысла. Например, при вычислении выражения Exp[N[2 π I] ], которое равно 1, возникает мнимый "хвостик" -2.44921x10-16I. Такие хвосты можно отсечь.