Пифагорейское дополнение

редактировать

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

а б знак равно а 2 + б 2 . {\ displaystyle a \ oplus b = {\ sqrt {a ^ {2} + b ^ {2}}}.}

Название напоминает теорему Пифагора, которая гласит, что длина гипотенузы в виде прямоугольного треугольника является ⊕ Ь, где и б -длины других сторон. В своих приложениях для обработки сигналов и распространения из неопределенности измерения, та же самая операция также называется добавление в квадратуре.

Эта операция обеспечивает простые обозначения и терминологию, когда слагаемые сложные; например, соотношение энергии-импульса в физике становится

E знак равно м c 2 п c . {\ displaystyle E = mc ^ {2} \ oplus pc.}

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

СОДЕРЖАНИЕ
  • 1 Приложения
  • 2 свойства
  • 3 Реализация
    • 3.1 Реализация
    • 3.2 Поддержка языков программирования
  • 4 См. Также
  • 5 ссылки
  • 6 Дальнейшее чтение
Приложения

Если измерения X, Y, Z,... имеют независимые ошибки ΔX, ΔY, ΔZ,... соответственно, квадратурный метод дает общую ошибку,

Δ о знак равно Δ Икс 2 + Δ Y 2 + Δ Z 2 + {\ displaystyle \ varDelta _ {o} = {\ sqrt {{\ varDelta _ {X}} ^ {2} + {\ varDelta _ {Y}} ^ {2} + {\ varDelta _ {Z}} ^ { 2} + \ cdots}}} тогда как верхний предел общей ошибки Δ ты знак равно Δ Икс + Δ Y + Δ Z + {\ displaystyle \ varDelta _ {u} = \ varDelta _ {X} + \ varDelta _ {Y} + \ varDelta _ {Z} + \ cdots} если бы ошибки не были независимыми.

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

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

σ знак равно 6 3 2 знак равно 6 2 + 3 2 + 2 2 знак равно 7 {\ displaystyle \ sigma = 6 \ oplus 3 \ oplus 2 = {\ sqrt {6 ^ {2} + 3 ^ {2} + 2 ^ {2}}} = 7} цифровые числа, показывающие преобладание более крупных источников шума.
Характеристики

Операция ⊕ ассоциативна и коммутативна, и

Икс 1 2 + Икс 2 2 + + Икс п 2 знак равно Икс 1 Икс 2 Икс п . {\ displaystyle {\ sqrt {x_ {1} ^ {2} + x_ {2} ^ {2} + \ cdots + x_ {n} ^ {2}}} = x_ {1} \ oplus x_ {2} \ oplus \ cdots \ oplus x_ {n}.} Этого достаточно, чтобы действительные числа образовали коммутативную полугруппу. Однако ⊕ не является групповой операцией по следующим причинам.

Единственный элемент, который потенциально может действовать как элемент идентичности, - это 0, поскольку идентичность e должна удовлетворять e ⊕ e  =  e. Это дает уравнение, но если e не равно нулю, это означает, что e может быть только нулем. К сожалению, 0 в конце концов не работает как элемент идентичности, поскольку 0⊕ (−1) = 1. Однако это указывает на то, что если операция ⊕ ограничена неотрицательными действительными числами, то 0 действительно действует как идентичность. Следовательно, операция ⊕, действующая на неотрицательные действительные числа, образует коммутативный моноид. 2 е знак равно е {\ displaystyle {\ sqrt {2}} е = е} 2 знак равно 1 {\ displaystyle {\ sqrt {2}} = 1}

Реализация

Гипотензия - это математическая функция, предназначенная для вычисления длины гипотенузы прямоугольного треугольника. Он был разработан, чтобы избежать ошибок, возникающих из-за вычислений с ограниченной точностью, выполняемых на компьютерах. Вычислить длину гипотенузы треугольника можно с помощью функции извлечения квадратного корня из суммы двух квадратов, но гипотеза ( x,  y) позволяет избежать проблем, возникающих при возведении в квадрат очень больших или очень малых чисел. Если рассчитано по естественной формуле,

р знак равно Икс 2 + у 2 , {\ displaystyle r = {\ sqrt {x ^ {2} + y ^ {2}}},} квадраты очень больших или малых значений х и у могут превышать диапазон машинной точности при расчете на компьютере, что приводит к неверному результату, вызванной арифметической сгущенного и / или арифметического переполнения. Функция гипотезы была разработана, чтобы вычислить результат, не вызывая этой проблемы.

Функция гипотезы часто используется вместе с функцией atan2 для преобразования декартовых координат в полярные координаты :

г = гипотеза ( х,  у), θ = atan2 ( y,  x).

Если любой вход бесконечен, результат будет бесконечным, т. Е.

гипотеза ( x, ± ∞) = гипотеза (± ∞, x) = + ∞

Поскольку это верно для всех возможных значений х, в том числе бесконечности, IEEE 754 стандарт с плавающей точкой требует, чтобы это определение также применимо, если х это не является числом (NaN).

Реализация

Сложность наивной реализации состоит в том, что x 2 или y 2 могут быть переполнены или опустошены, если промежуточный результат не вычисляется с повышенной точностью. Распространенным методом реализации является при необходимости обмен значениями, чтобы | х | ≥ | y |, а затем использовать эквивалентную форму

р знак равно Икс 2 + у 2 знак равно Икс 2 ( 1 + ( у Икс ) 2 ) знак равно | Икс | 1 + ( у Икс ) 2 ( знак равно | Икс | + у | Икс | у 1 + 1 + ( у Икс ) 2 ) . {\ displaystyle {\ begin {align} r amp; = {\ sqrt {x ^ {2} + y ^ {2}}} \\ amp; = {\ sqrt {x ^ {2} \ left (1+ \ left ({ \ tfrac {y} {x}} \ right) ^ {2} \ right)}} \\ amp; = | x | {\ sqrt {1+ \ left ({\ tfrac {y} {x}} \ right) ^ {2}}} \ left (= | x | + {\ frac {y} {| x |}} {\ frac {y} {1 + {\ sqrt {1+ \ left ({\ tfrac {y}) {x}} \ right) ^ {2}}}}} \ right). \ end {align}}}

Вычисление y / x не может быть переполнено, если и x, и y не равны 0. Если y / x не переполняется, окончательный результат будет равен | x |, что верно в пределах точности вычисления. Квадратный корень вычисляется из значения от 1 до 2. Наконец, умножение на | х | не может быть недостаточным и переполняется только тогда, когда результат слишком велик для представления.

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

Более сложные реализации избегают этого, разделяя входные данные на большее количество случаев:

  • x ≫ y: гипотеза ( x, y) = | x |, с точностью до машинной точности.
  • x 2 переполнения: умножьте и x, и y на небольшой коэффициент масштабирования (например, 2 −64 для одинарной точности IEEE), используйте наивный алгоритм, который теперь не будет переполняться, и умножьте результат на (большой) обратный (например, 2 64).
  • y 2 потери значимости: То же, что и выше, но обратные коэффициенты масштабирования для увеличения промежуточных значений.
  • В противном случае: наивный алгоритм безопасен.

Дополнительные методы позволяют вычислить результат более точно, например, до менее одного ulp.

Поддержка языков программирования

Функция присутствует на нескольких языках программирования:

Смотрите также
использованная литература
дальнейшее чтение
Последняя правка сделана 2024-01-05 12:29:25
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте