stringtranslate.com

Функция Фаддеева

Функция Фаддеева на комплексной плоскости

Функция Фаддеева или функция Крампа — это масштабированная комплексная дополнительная функция ошибок ,

Он связан с интегралом Френеля , интегралом Доусона и функцией Фойгта .

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

Характеристики

Действительная и мнимая части

Разложение на действительную и мнимую части обычно записывается

,

где V и L называются действительной и мнимой функциями Фойгта , поскольку V(x,y) является профилем Фойгта (с точностью до префакторов).

Инверсия знака

Для аргументов с инвертированным знаком применимы следующие условия:

и

где * обозначает комплексное сопряжение.

Связь с дополнительной функцией ошибок

Функция Фаддеева, вычисленная по мнимым аргументам, равна масштабированной дополнительной функции ошибок ( ):

,

где erfc — дополнительная функция ошибок . Для больших действительных x :

Производный

В некоторых приложениях необходимо знать не только исходные значения функции Фаддеева, но и ее производную (например, в нелинейной регрессии наименьших квадратов в спектроскопии ). Ее производная определяется по формуле: [6] [7]

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

      и      
      и      

Практический пример использования этих частных производных можно найти здесь .

Интегральное представление

Функция Фаддеева имеет вид

это означает, что это свертка гауссианы с простым полюсом.

История

Функция была табулирована Верой Фаддеевой и Н. Н. Терентьевым в 1954 году. [8] Она появляется как безымянная функция w(z) у Абрамовица и Стегуна (1964), формула 7.1.3. Функция имени Фаддеевой, очевидно, была введена GPM Poppe и CMJ Wijers в 1990 году; [9] [ нужен лучший источник ] ранее она была известна как функция Крампа (вероятно, в честь Кристиана Крампа ). [10]

Ранние реализации использовали методы Вальтера Гаучи (1969–70; ACM Algorithm 363) [11] или Дж. Хумличека (1982). [12] Более эффективный алгоритм был предложен Поппе и Виерсом (1990; ACM Algorithm 680). [13] Дж. А. К. Вейдеман (1994) предложил особенно короткий алгоритм, который занимает не более восьми строк кода MATLAB . [14] Заглул и Али указали на недостатки предыдущих алгоритмов и предложили новый (2011; ACM Algorithm 916). [2] Другой алгоритм был предложен М. Абраровым и Б. М. Куайном (2011/2012). [15]

Реализации

Две программные реализации, которые бесплатны только для некоммерческого использования, [16] были опубликованы в ACM Transactions on Mathematical Software (TOMS) как Algorithm 680 (на Fortran , [17] позже переведенный на C ) [18] и Algorithm 916 Заглулом и Али (в MATLAB ). [19]

Бесплатная и открытая реализация на C или C++, полученная из комбинации алгоритма 680 и алгоритма 916 (использующая разные алгоритмы для разных z ), также доступна по лицензии MIT [20] и поддерживается как библиотечный пакет libcerf [21] . Эта реализация также доступна как плагин для Matlab [20] , GNU Octave [20] и в Python через Scipy как scipy.special.wofz(который изначально был кодом TOMS 680, но был заменен из-за проблем с авторскими правами [22] ).

Для быстрого, но все же точного расчета функции дисперсии плазмы , приближение Паде с J-полюсом оказывается полезным, [23] т.е.,

Для J=8 можно использовать b1= -0,017340112270401 - 0,046306439626294i; b2= -0,739917811220052 + 0,839518284620274i; b3= 5,840632105105495 ​​+ 0,953602751322040i; b4= -5,583374181615043 -11,208550459628098i; c1= 2,237687725134293 - 1,625941024120362i; c2= 1,465234091939142 - 1,789620299603315i; c3= 0,839253966367922 - 1,891995211531426i; c4= 0,273936218055381 - 1,941787037576095i; b(5:8)=(b(1:4))*; c(5:8)=-(c(1:4))*,

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

Кодирование вышеуказанного подхода J-полюса и сравнение с точной функцией дисперсии плазмы можно найти здесь. [24] Также доступны комплексные коэффициенты для быстрого вычисления функции дисперсии плазмы с рациональным и многополюсным приближением. [25]

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

Ссылки

  1. ^ ab Lehtinen, Николай Г. (23 апреля 2010 г.). "Error functions" (PDF) . Веб-страница Lehtinen - Стэнфордский университет . Получено 8 октября 2019 г. .
  2. ^ ab MR Zaghloul и AN Ali, ACM Transactions on Mathematical Software 38(2)15 (2011)
  3. ^ Ричард Фицпатрик, Функция дисперсии плазмы, заметки лекций по физике плазмы , Техасский университет в Остине (31.03.2011).
  4. ^ Брендель, Р.; Борман, Д. (1992). "Модель инфракрасной диэлектрической функции для аморфных твердых тел". Журнал прикладной физики . 71 (1): 1. Bibcode : 1992JAP....71....1B. doi : 10.1063/1.350737. ISSN  0021-8979.
  5. ^ "OpenMC Windowed Multipole". 2020-06-01 . Получено 2020-12-20 .
  6. ^ Аветисов, Слава (1995). Метод наименьших квадратов для спектрального анализа прямых и частотно-модулированных линейных форм (PDF) (Отчет). Физический факультет, Лундский университет.
  7. ^ "Функция Фаддеевой (или Фаддеевой) - 7.10 Производные". Цифровая библиотека математических функций . Национальный институт стандартов и технологий. 2010. Получено 23 июня 2022 г.
  8. В. Н. Фаддеева и Н. Н. Терентьев: Таблицы значений функции комплексного аргумента. Гос. изд-во Тех.-Теор. лит. , М., 1954; англ. пер., Pergamon Press, Нью-Йорк, 1961. Непроверенная цитата, скопирована из Poppe and Wijers (1990).
  9. ^ Самый ранний результат поиска в Google Scholar по состоянию на октябрь 2012 г.
  10. ^ Например, в Al'pert, Space Science Reviews 6, 781 (1967), формула (3.13), со ссылкой на Фаддееву и Терентьева.
  11. ^ См. ссылки 3 и 4 в Poppe and Wijers (1990).
  12. ^ J. Humlicek, J. Quant. Spectrosc. Radiat. Transfer 27, 437-444 (1982).
  13. ^ GPM Poppe и CMJ Wijers, ACM Transactions on Mathematical Software 16, 38-46 (1990).
  14. ^ JAC Weideman, SIAM J. Numer. Анальный. 31, 1497–1518 (1994).
  15. ^ SM Abrarov и BM Quine, Appl. Math. Comp. 218, 1894-1902 (2011) и arXiv:1205.1768v1 (2012).
  16. ^ «Уведомление об авторских правах на программное обеспечение».; следовательно, они не являются свободными в смысле свободного и открытого программного обеспечения
  17. ^ http://www.cs.kent.ac.uk/people/staff/trh/CALGO/680.gz [ мертвая ссылка ]
  18. ^ "Формулы столкновений". NASA . Получено 10 апреля 2023 г.
  19. ^ Mofreh R. Zaghloul и Ahmed N. Ali, "Algorithm 916: Computing the Faddeyeva and Voigt Functions," ACM Trans. Math. Soft. 38 (2), 15 (2011). Препринт доступен по адресу arXiv:1106.0151.
  20. ^ Пакет abc Faddeeva, бесплатная/открытая реализация C++, доступ 13 октября 2012 г.
  21. ^ "Libcerf [MLZ Scientific Computing Group]".
  22. ^ «Сложный код erf в SciPy не является бесплатным/не имеет открытого исходного кода? (Trac #1741) · Issue #2260 · scipy/scipy». GitHub .
  23. ^ Xie, Hua-sheng (ноябрь 2019 г.). «BO: унифицированный инструмент для анализа плазменных волн и неустойчивостей». Computer Physics Communications . 244 : 343–371. arXiv : 1901.06902 . doi : 10.1016/j.cpc.2019.06.014. ISSN  0010-4655.
  24. ^ Се, Хуа-шэн (14 апреля 2024 г.), hsxie/gpdf , получено 15 апреля 2024 г.
  25. ^ Xie, Huasheng (2024-07-01). "Быстрое вычисление функции дисперсии плазмы: рациональное и многополюсное приближение и улучшенная точность". AIP Advances . 14 (7). arXiv : 2404.18719 . doi : 10.1063/5.0216433. ISSN  2158-3226.