stringtranslate.com

Ошибка округления

В вычислениях ошибка округления , [1] также называемая ошибкой округления , [2] представляет собой разницу между результатом, полученным данным алгоритмом с использованием точной арифметики , и результатом, полученным тем же алгоритмом с использованием округленной арифметики конечной точности . [3] Ошибки округления возникают из-за неточности представления действительных чисел и арифметических операций, выполняемых с ними. Это разновидность ошибки квантования . [4] При использовании аппроксимационных уравнений или алгоритмов, особенно при использовании конечного числа цифр для представления действительных чисел (которые теоретически имеют бесконечное количество цифр), одной из целей численного анализа является оценка ошибок вычислений. [5] Ошибки вычислений, также называемые числовыми ошибками , включают в себя как ошибки усечения , так и ошибки округления.

Когда выполняется последовательность вычислений с входными данными, содержащими любую ошибку округления, ошибки могут накапливаться, иногда доминируя в расчете. В плохо обусловленных задачах может накапливаться значительная ошибка. [6]

Короче говоря, есть два основных аспекта ошибок округления, связанных с численными расчетами: [7]

  1. Способность компьютеров отображать как величину, так и точность чисел по своей сути ограничена.
  2. Некоторые числовые манипуляции очень чувствительны к ошибкам округления. Это может быть результатом как математических соображений, так и того, как компьютеры выполняют арифметические операции.

Ошибка представления

Ошибка, возникающая при попытке представить число с помощью конечной строки цифр, представляет собой разновидность ошибки округления, называемую ошибкой представления . [8] Вот несколько примеров ошибок представления в десятичных представлениях:

Увеличение количества цифр, допустимых в представлении, уменьшает величину возможных ошибок округления, но любое представление, ограниченное конечным числом цифр, все равно будет вызывать некоторую степень ошибки округления для несчетного числа действительных чисел. Дополнительные цифры, используемые на промежуточных этапах расчета, называются защитными цифрами . [9]

Многократное округление может привести к накоплению ошибок. [10] Например, если 9,945309 округлить до двух знаков после запятой (9,95), а затем снова округлить до одного знака после запятой (10,0), общая ошибка составит 0,054691. Округление 9,945309 до одного десятичного знака (9,9) за один шаг приводит к меньшей ошибке (0,045309). Это может произойти, например, когда программное обеспечение выполняет арифметические действия в 80-битном формате с плавающей запятой x86, а затем округляет результат до IEEE 754binary64 с плавающей запятой .

Система счисления с плавающей запятой

По сравнению с системой счисления с фиксированной запятой , система счисления с плавающей запятой более эффективна для представления действительных чисел, поэтому она широко используется в современных компьютерах. В то время как действительные числа бесконечны и непрерывны, система счисления с плавающей запятой конечна и дискретна. Таким образом, в системе счисления с плавающей запятой возникает ошибка представления, приводящая к ошибке округления.

Обозначение системы счисления с плавающей запятой

Система счисления с плавающей запятой характеризуется целыми числами:

Любой имеет следующий вид:

Нормализованная система с плавающими числами

стандарт IEEE

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

Машина эпсилон

Машинный эпсилон можно использовать для измерения уровня ошибки округления в системе счисления с плавающей запятой. Вот два разных определения. [3]

Ошибка округления при разных правилах округления

Существует два общих правила округления: по частям и округление до ближайшего. Стандарт IEEE использует округление до ближайшего.

Вычисление ошибки округления в стандарте IEEE

Предположим, что используется округление до ближайшего значения и двойная точность IEEE.

Поскольку 53-й бит справа от двоичной точки равен 1, а за ним следуют другие ненулевые биты, правило округления до ближайшего требует округления в большую сторону, то есть добавления 1 бита к 52-му биту. Таким образом, нормализованное представление с плавающей запятой в стандарте IEEE 9.4 имеет вид

Это представление получается путем отбрасывания бесконечного хвоста.

Затем .
Таким образом, ошибка округления равна .

Измерение ошибки округления с использованием машинного эпсилона

Машинный эпсилон можно использовать для измерения уровня ошибки округления при использовании двух приведенных выше правил округления. Ниже приведены формулы и соответствующие доказательства. [3] Здесь используется первое определение машинного эпсилона.

Теорема

  1. По кругу:
  2. Округление до ближайшего:

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

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

Ошибка округления, вызванная арифметикой с плавающей запятой

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

Добавление

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

Этот пример показывает, что ошибка округления может возникнуть при сложении большого и малого числа. Смещение десятичных знаков в значащих числах для обеспечения совпадения показателей степени приводит к потере некоторых менее значащих цифр. Утрату точности можно охарактеризовать как поглощение . [11]

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

Ошибка такого рода может возникать наряду с ошибкой поглощения в одной операции.

Умножение

Как правило, произведение двух мантисс p-цифр содержит до 2p цифр, поэтому результат может не поместиться в мантиссу. [3] Таким образом, в результате будет присутствовать ошибка округления.

Разделение

В общем, частное 2p-значных чисел может содержать более p-цифр. Таким образом, в результате будет присутствовать ошибка округления.

Вычитание

Поглощение также применимо к вычитанию.

Вычитание двух почти равных чисел называется вычитающим сокращением . [3] Если первые цифры удалены, результат может оказаться слишком маленьким для точного представления, и он будет представлен просто как .

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

Это тесно связано с явлением катастрофического сокращения , в котором эти два числа, как известно , являются приближениями.

Накопление ошибки округления

Ошибки могут увеличиваться или накапливаться, если к исходным входным данным применяется последовательность вычислений с ошибкой округления из-за неточного представления.

Нестабильные алгоритмы

Алгоритм или численный процесс называется стабильным , если небольшие изменения входных данных приводят лишь к небольшим изменениям выходных данных, и нестабильным , если происходят большие изменения выходных данных. [12] Например, вычисление с использованием «очевидного» метода вблизи неустойчиво из-за большой ошибки, вносимой при вычитании двух одинаковых величин, тогда как эквивалентное выражение устойчиво. [12]

Плохо обусловленные проблемы

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

Число обусловленности задачи — это отношение относительного изменения решения к относительному изменению входных данных. [3] Задача считается хорошо обусловленной, если небольшие относительные изменения входных данных приводят к небольшим относительным изменениям в решении. В противном случае проблема плохо обусловлена . [3] Другими словами, проблема является плохо обусловленной , если ее число обусловленности «намного больше» 1.

Число обусловленности вводится как мера ошибок округления, которые могут возникнуть при решении плохо обусловленных задач. [7]

Смотрите также

Рекомендации

  1. ^ Батт, Ризван (2009), Введение в численный анализ с использованием MATLAB, Jones & Bartlett Learning, стр. 11–18, ISBN 978-0-76377376-2
  2. ^ Юберхубер, Кристоф В. (1997), Численные вычисления 1: методы, программное обеспечение и анализ, Springer, стр. 139–146, ISBN 978-3-54062058-7
  3. ^ abcdefghij Форрестер, Дик (2018). Math/Comp241 Численные методы (конспекты лекций) . Дикинсон Колледж .
  4. ^ Аксой, Пелин; ДеНардис, Лаура (2007), Информационные технологии в теории, Cengage Learning, стр. 134, ISBN 978-1-42390140-2
  5. ^ Ралстон, Энтони; Рабиновиц, Филип (2012), Первый курс численного анализа, Dover Books on Mathematics (2-е изд.), Courier Dover Publications, стр. 2–4, ISBN 978-0-48614029-2
  6. ^ Чепмен, Стивен (2012), Программирование MATLAB с приложениями для инженеров, Cengage Learning, стр. 454, ISBN 978-1-28540279-6
  7. ^ Аб Чапра, Стивен (2012). Прикладные численные методы с MATLAB для инженеров и ученых (3-е изд.). МакГроу-Хилл . ISBN 9780073401102.
  8. ^ Лаплант, Филип А. (2000). Словарь информатики, техники и технологий. ЦРК Пресс . п. 420. ИСБН 978-0-84932691-2.
  9. ^ Хайэм, Николас Джон (2002). Точность и устойчивость численных алгоритмов (2-е изд.). Общество промышленной и прикладной математики (SIAM). стр. 43–44. ISBN 978-0-89871521-7.
  10. ^ Волков, Е.А. (1990). Численные методы. Тейлор и Фрэнсис . п. 24. ISBN 978-1-56032011-1.
  11. ^ Биран, Адриан Б.; Брейнер, Моше (2010). «5». Что должен знать каждый инженер о MATLAB и Simulink . Бока-Ратон , Флорида : CRC Press . стр. 193–194. ISBN 978-1-4398-1023-1.
  12. ^ Аб Коллинз, Чарльз (2005). «Состояние и стабильность» (PDF) . Кафедра математики в Университете Теннесси . Проверено 28 октября 2018 г.

дальнейшее чтение

Внешние ссылки