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.