stringtranslate.com

Лемма Стербенца

В арифметике с плавающей точкой лемма Стербенца или лемма Стербенца [1] — это теорема, дающая условия, при которых разности с плавающей точкой вычисляются точно. Она названа в честь Пэта Х. Стербенца, который опубликовал ее вариант в 1974 году. [2]

Лемма Стербенца  —  В системе счисления с плавающей точкой с субнормальными числами , если и являются числами с плавающей точкой такими, что

то также является числом с плавающей точкой. Таким образом, правильно округленное вычитание с плавающей точкой

вычисляется точно.

Лемма Стербенца применима к IEEE 754 , наиболее широко используемой системе чисел с плавающей точкой в ​​компьютерах.

Доказательство

Пусть — основание системы счисления с плавающей точкой и точность.

Рассмотрим сначала несколько простых случаев:

Для остальной части доказательства предположим без потери общности.

Запишите их через положительные интегральные мантиссы и минимальные показатели степеней :

Обратите внимание, что и могут быть ниже нормы — мы не предполагаем .

Вычитание дает:

Пусть . Так как имеем:

Далее, поскольку , то имеем , так что

что подразумевает, что

Следовательно

так же как и число с плавающей точкой. ◻

Примечание: Даже если и являются нормальными, т. е . , , мы не можем доказать, что и, следовательно, не можем доказать, что также является нормальным. Например, разность двух наименьших положительных нормальных чисел с плавающей точкой и равна , что обязательно является субнормальным. В системах с плавающей точкой без субнормальных чисел , таких как процессоры в нестандартном режиме сброса в ноль вместо стандартного постепенного переполнения, лемма Стербенца не применяется.

Отношение к катастрофической отмене

Лемму Стербенца можно противопоставить явлению катастрофического погашения :

Другими словами, лемма Стербенца показывает, что вычитание соседних чисел с плавающей точкой является точным, но если имеющиеся числа являются приближенными, то даже их точная разность может быть далека от разности чисел, которые требуется вычесть.

Использование в численном анализе

Лемма Стербенца играет важную роль в доказательстве теорем о границах ошибок в численном анализе алгоритмов с плавающей точкой. Например, формула Герона для площади треугольника со сторонами длиной , и , где — полупериметр, может давать плохую точность для длинных узких треугольников, если вычислять ее непосредственно в арифметике с плавающей точкой. Однако для можно доказать , что альтернативная формула с помощью леммы Стербенца имеет низкую прямую ошибку для всех входных данных. [3] [4] [5]

Ссылки

  1. ^ Мюллер, Жан-Мишель; Бруни, Николас; де Динешен, Флоран; Жаннерод, Клод-Пьер; Джолдес, Миоара; Лефевр, Винсент; Мелькионд, Гийом; Револь, Натали ; Торрес, Серж (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: местоположение ( ссылка )
  2. ^ Sterbenz, Pat H. (1974). Вычисления с плавающей точкой. Englewood Cliffs, NJ, США: Prentice-Hall. Теорема 4.3.1 и следствие, стр. 138. ISBN 0-13-322495-3.
  3. ^ Кахан, В. (2014-09-04). "Неверный расчет площади и углов игольчатого треугольника" (PDF) . Конспект лекций для вводных занятий по численному анализу . Получено 17 сентября 2020 г.
  4. ^ Голдберг, Дэвид (март 1991 г.). «Что каждый специалист по информатике должен знать об арифметике с плавающей точкой». ACM Computing Surveys . 23 (1). Нью-Йорк, штат Нью-Йорк, США: Ассоциация вычислительной техники: 5–48. doi :10.1145/103162.103163. ISSN  0360-0300. S2CID  222008826. Получено 17 сентября 2020 г.
  5. ^ 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.