Точная теорема о вычитании чисел с плавающей точкой
В арифметике с плавающей точкой лемма Стербенца или лемма Стербенца [1] — это теорема, дающая условия, при которых разности с плавающей точкой вычисляются точно. Она названа в честь Пэта Х. Стербенца, который опубликовал ее вариант в 1974 году. [2]
Лемма Стербенца — В системе счисления с плавающей точкой с субнормальными числами , если и являются числами с плавающей точкой такими, что
то также является числом с плавающей точкой. Таким образом, правильно округленное вычитание с плавающей точкой
вычисляется точно.
Лемма Стербенца применима к IEEE 754 , наиболее широко используемой системе чисел с плавающей точкой в компьютерах.
Доказательство
Пусть — основание системы счисления с плавающей точкой и точность.
Рассмотрим сначала несколько простых случаев:
- Если равно нулю , то , а если равно нулю, то , поэтому результат тривиален, поскольку отрицание с плавающей точкой всегда точное.
- Если результат равен нулю и, следовательно, точен.
- Если то мы также должны иметь так . В этом случае , так что результат следует из теоремы, ограниченной .
- Если , то мы можем записать с помощью , поэтому результат следует из теоремы, ограниченной .
Для остальной части доказательства предположим без потери общности.
Запишите их через положительные интегральные мантиссы и минимальные показатели степеней :
Обратите внимание, что и могут быть ниже нормы — мы не предполагаем .
Вычитание дает:
Пусть . Так как имеем:
- , поэтому , из чего мы можем сделать вывод, что является целым числом и, следовательно, является ; и
- , так .
Далее, поскольку , то имеем , так что
что подразумевает, что
Следовательно
так же как и число с плавающей точкой. ◻
Примечание: Даже если и являются нормальными, т. е . , , мы не можем доказать, что и, следовательно, не можем доказать, что также является нормальным. Например, разность двух наименьших положительных нормальных чисел с плавающей точкой и равна , что обязательно является субнормальным. В системах с плавающей точкой без субнормальных чисел , таких как процессоры в нестандартном режиме сброса в ноль вместо стандартного постепенного переполнения, лемма Стербенца не применяется.
Отношение к катастрофической отмене
Лемму Стербенца можно противопоставить явлению катастрофического погашения :
- Лемма Стербенца утверждает, что если и являются достаточно близкими числами с плавающей точкой, то их разность вычисляется точно с помощью арифметики с плавающей точкой , без необходимости округления.
- Феномен катастрофического сокращения заключается в том, что если и являются приближениями к истинным числам и —независимо от того, возникают ли приближения из-за ошибки округления или усечения ряда, или из-за физической неопределенности, или чего-либо еще — погрешность разницы от желаемой разницы обратно пропорциональна . Таким образом, чем ближе и , тем хуже может быть приближение к , даже если само вычитание вычисляется точно.
Другими словами, лемма Стербенца показывает, что вычитание соседних чисел с плавающей точкой является точным, но если имеющиеся числа являются приближенными, то даже их точная разность может быть далека от разности чисел, которые требуется вычесть.
Использование в численном анализе
Лемма Стербенца играет важную роль в доказательстве теорем о границах ошибок в численном анализе алгоритмов с плавающей точкой. Например, формула Герона
для площади треугольника со сторонами длиной , и , где — полупериметр, может давать плохую точность для длинных узких треугольников, если вычислять ее непосредственно в арифметике с плавающей точкой. Однако для можно доказать , что альтернативная формула
с помощью леммы Стербенца имеет низкую прямую ошибку для всех входных данных. [3] [4] [5]
Ссылки
- ^ Мюллер, Жан-Мишель; Бруни, Николас; де Динешен, Флоран; Жаннерод, Клод-Пьер; Джолдес, Миоара; Лефевр, Винсент; Мелькионд, Гийом; Револь, Натали ; Торрес, Серж (2018). Справочник по арифметике с плавающей запятой (2-е изд.). Gewerbestrasse 11, 6330 Хам, Швейцария: Биркхойзер. Лемма 4.1, с. 101. дои : 10.1007/978-3-319-76526-6. ISBN 978-3-319-76525-9.
{{cite book}}
: CS1 maint: местоположение ( ссылка ) - ^ Sterbenz, Pat H. (1974). Вычисления с плавающей точкой. Englewood Cliffs, NJ, США: Prentice-Hall. Теорема 4.3.1 и следствие, стр. 138. ISBN 0-13-322495-3.
- ^ Кахан, В. (2014-09-04). "Неверный расчет площади и углов игольчатого треугольника" (PDF) . Конспект лекций для вводных занятий по численному анализу . Получено 17 сентября 2020 г.
- ^ Голдберг, Дэвид (март 1991 г.). «Что каждый специалист по информатике должен знать об арифметике с плавающей точкой». ACM Computing Surveys . 23 (1). Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 5–48. doi :10.1145/103162.103163. ISSN 0360-0300. S2CID 222008826. Получено 17 сентября 2020 г.
- ^ Boldo, Sylvie (апрель 2013 г.). Nannarelli, Alberto; Seidel, Peter-Michael; Tang, Ping Tak Peter (ред.). How to Compute the Area of a Triangle: a Formal Revisit. 21st IEEE Symposium on Computer Arithmetic. IEEE Computer Society. стр. 91–98. doi :10.1109/ARITH.2013.29. ISBN 978-0-7695-4957-6. ISSN 1063-6889.