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). Это может произойти, например, когда программное обеспечение выполняет арифметику в x86 80-бит с плавающей точкой , а затем округляет результат до IEEE 754 binary64 с плавающей точкой .

Система чисел с плавающей точкой

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

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

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

Любое имеет следующий вид: где — целое число, такое что для , а — целое число, такое что .

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

стандарт 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. ^ ab Chapra, Steven (2012). Прикладные численные методы с MATLAB для инженеров и ученых (3-е изд.). McGraw-Hill . ISBN 9780073401102.
  8. ^ Лаплант, Филип А. (2000). Словарь компьютерных наук, техники и технологий. CRC Press . стр. 420. ISBN 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. ^ ab Collins, Charles (2005). "Condition and Stability" (PDF) . Кафедра математики в Университете Теннесси . Получено 28.10.2018 .

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

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