BC/NW 2015 № 1 (26) 2:5
ПРИМЕНЕНИЕ УНИВЕРСАЛЬНЫХ ПРЕДСТАВЛЕНИЙ ЧИСЕЛ ДЛЯ ПОВЫШЕНИЯ ДОСТОВЕРНОСТИ ВЫЧИСЛЕНИЙ
Ермилов С.И.
В современном мире проблема точности и достоверности вычислений приобретает четко выраженный прикладной аспект. При решении различных научных и инженерных задач высокой сложности необходимо быть уверенным, что результаты будут корректными[1]. В основном, численные методы работают с полем вещественных чисел, представляемых числами с плавающей запятой. Вследствие такой аппроксимации возникают различные ошибки округления, влияющие на конечную точность и достоверность результата.
Существует много методов повышения точности и достоверности вычислений, как арифметика длинных чисел, интервальная и символьные вычисления, модулярная арифметика. Каждый из этих способов имеет свои достоинства и недостатки, поэтому поиск новых подходов к вычислениям является актуальной задачей.
В 2014 году был предложен такой подход к вычислениям, основанный на универсальном представлении чисел (УПЧ) или universal numbers[2].
Определение. УПЧ – это множество объектов {s,e,m,u,es,fs}, где s – знак числа, равный нулю или единицу, e – порядок числа со знаком, m – мантисса без знака, u – бит неопределённости, es – размер экспоненты в битах, fs - размер мантиссы в битах.
Определение. Подмножество {s,e,m} называется значением УПЧ.
Определение. Подмножество {es,fs} называется метаданными УПЧ, т.е. данными, содержащими информацию о самом числе. Данные поля позволяют повысить гибкость вычислений, например, увеличить точность вычисления в случае необходимости.
УПЧ с битом неопределённости u, равным нулю, представляет собой точное рациональное число.
УПЧ с битом неопределенности u, равным единице, представляет собой открытый интервал между двумя ближайшими точными значениями. Нужно отметить, что такое УПЧ это не то же самое, что и округлённое число с плавающей точкой.
Подробное описание УПЧ приведено в [2]
Рассмотрим пример использования УПЧ для нахождения скалярного произведения векторов.
Пусть есть два вектора X и Y.
,
Вычислим скалярное произведение векторов с помощью чисел с одинарной точностью, чисел с двойной точностью и УПЧ (es = 8; fs = 25) при alpha = 0. В табл. 1 представлена зависимость результата от коэффициента betta
Табл.1
Результаты эксперимента
|
Число с одинарной точностью |
Число с двойной точностью |
УПЧ |
0….8 |
8779 |
8779 |
(8778; 8778) |
9 |
8781 |
8779 |
(8778; 8778) |
10 |
8765 |
8779 |
(8776; 8781) |
11 |
8392 |
8779 |
(8778; 8778) |
12 |
6272 |
8779 |
(8748; 8797) |
13 |
6144 |
8778 |
(8630; 9026) |
14 |
8192 |
8778 |
(6240; 12512) |
15 |
65536 |
8780 |
(6240; 8778) |
Из табл. 1 видно при повышении betta результаты начинают откланяться от исходного значения при использовании чисел с одинарной и двойной точностью, и также нельзя иметь уверенность в достоверности результата. При использовании УПЧ видно, что результат вычисления представляет собой интервал между двумя значениями, причем точный результат вычисления всегда лежит в получаемых интервалах. Нужно отметить, что в данном эксперименте максимальный размер мантиссы и экспоненты УПЧ гораздо меньше соответствующего размера чисел с двойной точностью. Если увеличить размеры УПЧ длина достоверного интервала будет соответственно уменьшаться.
Перспективным направлением развития УПЧ является разработка аппаратной платформы данного типа вычислений.
1) Bailey D. H. High-precision floating-point arithmetic in scientific computation //Computing in science & engineering. – 2005. – Т. 7. – №. 3. – С. 54-61.
2) Gustafson J.L. The End of Error. Unum Computing — 2015.— ISBN 9781482239867.