~~~~~~~~~~~~~~~~~~~~ Arc.Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~ 
Номер скриншота №:
✰ 6DF2660396BE8D2759972AB0746FB285__1717893960 ✰
Заголовок документа оригинал.:
✰ atan2 - Wikipedia ✰
Заголовок документа перевод.:
✰ atan2 — Википедия ✰
Снимок документа находящегося по адресу (URL):
✰ https://en.wikipedia.org/wiki/Atan2 ✰
Адрес хранения снимка оригинал (URL):
✰ https://arc.ask3.ru/arc/aa/6d/85/6df2660396be8d2759972ab0746fb285.html ✰
Адрес хранения снимка перевод (URL):
✰ https://arc.ask3.ru/arc/aa/6d/85/6df2660396be8d2759972ab0746fb285__translat.html ✰
Дата и время сохранения документа:
✰ 16.06.2024 05:45:01 (GMT+3, MSK) ✰
Дата и время изменения документа (по данным источника):
✰ 9 June 2024, at 03:46 (UTC). ✰ 

~~~~~~~~~~~~~~~~~~~~~~ Ask3.Ru ~~~~~~~~~~~~~~~~~~~~~~ 
Сервисы Ask3.ru: 
 Архив документов (Снимки документов, в формате HTML, PDF, PNG - подписанные ЭЦП, доказывающие существование документа в момент подписи. Перевод сохраненных документов на русский язык.)https://arc.ask3.ruОтветы на вопросы (Сервис ответов на вопросы, в основном, научной направленности)https://ask3.ru/answer2questionТоварный сопоставитель (Сервис сравнения и выбора товаров) ✰✰
✰ https://ask3.ru/product2collationПартнерыhttps://comrades.ask3.ru


Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
Arc.Ask3.ru: далее начало оригинального документа

atan2 — Википедия Jump to content

Атан2

Из Википедии, бесплатной энциклопедии
atan2( y , x ) возвращает угол θ между положительной осью x и лучом от начала координат до точки ( x , y ) , ограниченный (− π , π ] .
График над

В вычислительной технике и математике функция представляет собой atan2 с двумя аргументами арктангенс . По определению, мера угла радианах , с ) между положительными -ось и луч от начала координат до точки в декартовой плоскости . Эквивалентно, аргумент (также называемый фазой или углом ) комплексного числа

The Функция впервые появилась в языке программирования Фортран в 1961 году. Изначально она предназначалась для возврата правильного и однозначного значения угла θ при преобразовании из декартовых координат ( x , y ) в полярные координаты ( r , θ ) . Если и , затем и

Если x > 0 , желаемая угловая мера равна Однако, когда x < 0 , угол диаметрально противоположен желаемому углу, и необходимо добавить ± π (полоборота ) , чтобы поместить точку в правильный квадрант . [1] Используя функция устраняет эту коррекцию, упрощая код и математические формулы.

Мотивация [ править ]

График касательной функции от − π до + π с соответствующими знаками y / x . Зеленые стрелки указывают на результаты atan2(−1, −1) и atan2(1, 1).

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

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

Чтобы исправить это, в языках программирования была введена функция atan2 , по крайней мере, еще в языке Fortran IV 1960-х годов. [2] Величина atan2( y , x ) является мерой угла между осью x и лучом от начала координат до точки ( x , y ) в любом месте декартовой плоскости. Знаки x y ) и / используются для определения результата и выбора правильной ветви функции Arctan( y многозначной x . квадранта

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

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

Порядок аргументов [ править ]

В 1961 году Фортран представил функцию atan2 с порядком аргументов. так что аргумент (фазовый угол) комплексного числа равен Это соответствует порядку дроби слева направо, записанному так что для положительных значений Однако это противоположно обычному порядку компонентов для комплексных чисел: или как координаты См. раздел Определение и расчет .

Некоторые другие языки программирования (см. § Реализации функции в распространенных компьютерных языках ) вместо этого выбрали противоположный порядок. Например, Microsoft Excel использует OpenOffice Calc использует и Mathematica использует по умолчанию используется арктангенс с одним аргументом, если вызывается с одним аргументом.

Определение и расчет [ править ]

Функция atan2 вычисляет главное значение функции аргумента , примененной к комплексному числу x + i y . То есть atan2( y , x ) = Pr arg( x + i y ) = Arg( x + i y ) . Аргумент можно изменить на произвольное число, кратное (что соответствует полному повороту вокруг начала координат), без какого-либо изменения угла, но для однозначного определения atan2 используется главное значение в диапазоне , то есть - π < atan2( y , x ) ≤ π .

С точки зрения стандартной функции арктанга , диапазон которой равен (−π/2, π/2) , ее можно выразить следующим образом, чтобы определить поверхность, которая не имеет разрывов, за исключением полубесконечной линии x<0 y=0:

Компактное выражение с четырьмя перекрывающимися полуплоскостями:

позволяет Обозначение скобок Айверсона получить еще более компактное выражение: [примечание 1]

Формула без явной условной конструкции :

Следующее выражение, полученное из формулы касательного полуугла, также можно использовать для определения atan2 :

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

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

Вывод главного значения аргумента относится к этой цифре.

Примечания:

  • Это дает результаты в диапазоне (−π, π] . [заметка 2]
  • Как упоминалось выше, главное значение аргумента atan2( y , x ) может быть связано с arctan( y / x ) посредством тригонометрии. Вывод происходит следующим образом:
    Если ( Икс , у ) = ( р потому что θ , р грех θ ) , то tan( θ /2) = y / ( р + x ) . Следует, что
    Обратите внимание, что x 2 + и 2 + x ≠ 0 в рассматриваемой области.

Производная [ править ]

Поскольку функция atan2 является функцией двух переменных, она имеет две частные производные . В точках, где эти производные существуют, atan2 , за исключением константы, равен arctan( y / x ) . Следовательно, для x > 0 или y ≠ 0 ,

Таким образом, градиент atan2 определяется выражением

Неформальное представление функции atan2 как угловой функции θ ( x , y ) = atan2( y , x ) (которая определена только с точностью до константы) дает следующую формулу для полного дифференциала :

Хотя функция atan2 является разрывной вдоль отрицательной оси x , что отражает тот факт, что угол не может быть определен непрерывно, эта производная определена непрерывно, за исключением начала координат, что отражает тот факт, что бесконечно малые (и даже локальные) изменения угла могут быть определены везде. кроме происхождения. Интегрирование этой производной по пути дает общее изменение угла по пути, а интегрирование по замкнутому контуру дает число витков .

На языке дифференциальной геометрии эта производная есть одноформа , причем она замкнута (ее производная равна нулю), но не точна (она не является производной 0-формы, т. е. функцией), и фактически она порождает первые когомологии де Рама плоскости проколотой . Это самый простой пример такой формы, и он является фундаментальным в дифференциальной геометрии.

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

Иллюстрации [ править ]

atan2 для выбранных лучей

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

Сравнение функций arctan и atan2

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

На двух рисунках ниже показаны 3D-изображения соответственно atan2( y , x ) и arctan( y / x ) над областью плоскости. Обратите внимание, что для atan2( y , x ) -плоскости , лучи в X / Y исходящие из начала координат, имеют постоянные значения, а для arctan( y / x ) линии в X / Y -плоскости, проходящие через начало координат, имеют постоянные значения. При x > 0 две диаграммы дают одинаковые значения.

Тождество суммы и разности углов [ править ]

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

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

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

восток против часовой стрелки, север часовой стрелки, юг часовой стрелки и т. д. Условные обозначения :

The Функция изначально была разработана для соглашения в чистой математике, которое можно назвать восток-против часовой стрелки . Однако в практических приложениях по северной и южной часовой стрелке часто нормой являются соглашения . Например, в науках об атмосфере направление ветра можно рассчитать с помощью функция с восточным и северным компонентами вектора ветра в качестве аргументов; [4] можно Угол азимута Солнца рассчитать аналогичным образом, используя в качестве аргументов восточную и северную компоненты солнечного вектора. Направление ветра обычно определяется по направлению на север по часовой стрелке, а угол азимута Солнца широко использует соглашения как по северной, так и по южной часовой стрелке. [5] Эти различные соглашения можно реализовать, поменяв местами позиции и изменив знаки аргументов x и y следующим образом:

  • (Восточная конвенция против часовой стрелки)
  • (Конвенция по северной часовой стрелке)
  • . (Конвенция по южной часовой стрелке)

В качестве примера позвольте и , то формат восток-против часовой стрелки дает , формат по северной часовой стрелке дает , а формат по южной часовой стрелке дает .

Изменение знака аргументов x и/или y и/или замена их позиций может создать 8 возможных вариантов функции и они, что интересно, соответствуют 8 возможным определениям угла, а именно, по часовой стрелке или против часовой стрелки, начиная с каждого из 4 сторон света : севера, востока, юга и запада.

функции на распространенных языках Реализации компьютерных

Реализация функции отличается от одного компьютерного языка к другому:

  • В Microsoft Excel , [6] OpenOffice.org Calc , LibreOffice Calc , [7] таблицы Google , [8] и номера iWork , [9] функция арктангенса с двумя аргументами имеет два аргумента в стандартной последовательности (перевернуто по сравнению с соглашением, использованным в обсуждении выше).
  • В системе Mathematica форма ArcTan[x, y]используется там, где форма с одним параметром предоставляет нормальный арктангенс. Система Mathematica классифицирует ArcTan[0, 0] как неопределенное выражение.
  • На большинстве графических калькуляторов TI (за исключением TI-85 и TI-86 ) эквивалентная функция называется R►Pθ и имеет аргументы .
  • В TI-85 функция arg называется angle(x,y) и хотя кажется, что он принимает два аргумента, на самом деле у него есть только один комплексный аргумент, который обозначается парой чисел: x + i y = ( x , y ) .

The соглашение используется:

  • Функция С atan2и большинство других компьютерных реализаций предназначены для уменьшения усилий по преобразованию декартовых координат в полярные и поэтому всегда определяют atan2(0, 0). В реализациях без знакового нуля или при наличии положительных нулевых аргументов он обычно определяется как 0. Он всегда будет возвращать значение в диапазоне [-π, π] , а не вызывать ошибку или возвращать NaN (не число).
  • В Common Lisp , где существуют необязательные аргументы, atan функция позволяет опционально указать координату x : (atan y x). [10]
  • В Julia ситуация аналогична Common Lisp: вместо atan2, язык имеет однопараметрическую и двухпараметрическую форму для atan. [11] Однако у него гораздо больше двух методов, позволяющих проводить агрессивную оптимизацию во время компиляции (см. раздел «Почему бы вам не скомпилировать код Matlab/Python/R/… в Julia?» [12] ).
  • Для систем, реализующих знаковый ноль , бесконечность или Not a Number (например, IEEE с плавающей запятой ), обычно реализуются разумные расширения, которые могут расширить диапазон создаваемых значений, включив в него − π и −0, когда y = −0. Они также могут возвращать NaN или вызывать исключение при получении аргумента NaN.
  • В архитектуры Intel x86 ассемблерном коде : atan2 известен как FPATAN (частичный арктангенс с плавающей запятой). [13] Он может иметь дело с бесконечностями, и результаты лежат в замкнутом интервале [−π, π] , например atan2(∞, x)= + π /2 для конечного x . Особенно, FPATAN определяется, когда оба аргумента равны нулю:
    atan2(+0, +0) = +0;
    atan2(+0, −0) = + π ;
    atan2(−0, +0) = −0;
    atan2(−0, −0) знак равно - π .
Это определение связано с понятием знакового нуля .
  • В математических трудах, кроме исходного кода, например, в книгах и статьях, обозначения Arctan [14] и Тан −1 [15] были использованы; это варианты обычного арктана и коричневого с заглавной буквы. −1 . Такое использование согласуется с обозначением комплексного аргумента , например, Atan( y , x ) = Arg( x + i y ) .
  • В калькуляторах HP рассматривайте координаты как комплексное число, а затем принимайте ARG. Или << C->R ARG >> 'ATAN2' STO.
  • В научных калькуляторах функцию часто можно рассчитать как угол, полученный при ( x , y ) преобразовании из прямоугольных координат в полярные координаты .
  • Системы, поддерживающие символьную математику, обычно возвращают неопределенное значение для atan2(0, 0) или иным образом сигнализируют о возникновении ненормального состояния.
  • Бесплатная математическая библиотека FDLIBM (Свободно распространяемая LIBM), доступная на сайте netlib, имеет исходный код, показывающий, как она реализуется. atan2 включая обработку различных исключительных значений IEEE.
  • Для систем без аппаратного умножителя функция atan2 может быть реализована численно надежным способом с помощью метода CORDIC . Таким образом, реализации atan( y ) , вероятно, предпочтут вычислить atan2( y , 1) .

См. также [ править ]

Ссылки [ править ]

  1. ^ «Аргумент комплексного числа» (PDF) . Институт физики элементарных частиц Санта-Крус. Зима 2011.
  2. ^ Органик, Эллиот И. (1966). Букварь по Фортрану IV . Аддисон-Уэсли. п. 42. Некоторые процессоры также предлагают библиотечную функцию ATAN2, функцию двух аргументов (противоположного и соседнего).
  3. ^ «Вольф Юнг: Мандель, программное обеспечение для сложной динамики» . www.mndynamics.com . Проверено 20 апреля 2018 г.
  4. ^ «Краткий справочник по направлению ветра» . Лаборатория наблюдения Земли NCAR UCAR.
  5. ^ Чжан, Тайпин; Стэкхаус, Пол В.; Макферсон, Брэдли; Миковиц, Дж. Коллин (2021). «Формула солнечного азимута, которая делает ненужным подробное рассмотрение без ущерба для математической строгости: математическая установка, применение и расширение формулы, основанной на подсолнечной точке и функции atan2» . Возобновляемая энергия . 172 : 1333–1340. doi : 10.1016/j.renene.2021.03.047 . S2CID   233631040 .
  6. ^ «Метод Microsoft Excel Atan2» . Майкрософт.
  7. ^ «LibreOffice Calc ATAN2» . LibreOffice.org.
  8. ^ «Функции и формулы – Помощь редакторам документации» . support.google.com .
  9. ^ «Список тригонометрических функций чисел» . Яблоко.
  10. ^ «CLHS: Функция ASIN, ACOS, ATAN» . Лиспворкс.
  11. ^ «Математика · Язык Джулии» . docs.julialang.org .
  12. ^ «Часто задаваемые вопросы · Язык Джулии» . docs.julialang.org .
  13. ^ IA-32 Руководство разработчика программного обеспечения для архитектуры Intel. Том 2A: Справочник по набору команд, AM, 2004 г.
  14. ^ Бургер, Вильгельм; Бердж, Марк Дж. (7 июля 2010 г.). Принципы цифровой обработки изображений: фундаментальные методы . Springer Science & Business Media. ISBN  978-1-84800-191-6 . Проверено 20 апреля 2018 г. - через Google Книги.
  15. ^ Глиссон, Тилдон Х. (18 февраля 2011 г.). Введение в анализ и проектирование цепей . Springer Science & Business Media. ISBN  9789048194438 . Проверено 20 апреля 2018 г. - через Google Книги.

Внешние ссылки [ править ]

Другие реализации/код для atan2

Примечания [ править ]

  1. ^ Предполагая определения и для любого
  2. ^ Можно применить периодичность результата для сопоставления с другим желаемым диапазоном, например, сопоставления с [0, 2π), добавив к отрицательным результатам.
Arc.Ask3.Ru: конец оригинального документа.
Arc.Ask3.Ru
Номер скриншота №: 6DF2660396BE8D2759972AB0746FB285__1717893960
URL1:https://en.wikipedia.org/wiki/Atan2
Заголовок, (Title) документа по адресу, URL1:
atan2 - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть, любые претензии не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, денежную единицу можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)