User:Agalst/sandbox
Функция Фаддеевой, или Функция Крампа - это масштабированная комплексная дополнительная функция ошибок.
Связана с интегралом Френеля, интегралом Доусона и функцией Войта. It is related to the Fresnel integral, to Dawson's integral, and to the Voigt function. Функция часто возникает при решении задач с малыми волнами, распространяющимися через максвелловскую плазму, а именно она появляется при исследовании проводимости плазмы. Отсуда получаются выражения для дисперсии, откуда идет второе название как функция плазменной дисперсии [1][2] (однако это название иногда используется для функции , введенной Fried и Conte [1][3]).
Функция также используется для анализа электромагнитных волн типа используемых в АМ радиовещании. Groundwaves are verticaly polarised waves propagating over a lossy ground with finite resistivity and permittivity.
Свойства
[edit]Действительная и мнимая части
[edit]Обычно раскладывается на действительную и мнимые части как
- Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "http://localhost:6011/en.wikipedia.org/v1/":): {\displaystyle w(x+iy)=V(x,y)+iL(x,y)} ,
где V и L - так называемые действительная и мнимая функции Войта, так как с точностью до множителя V(x,y) - Voigt profile.
История
[edit]Функция была затабулирована Фаддеевой и Терентьевым в 1954. [4]. В Abramowitz and Stegun (1964), формула 7.1.3 появляется как безымянная функция w(z). Судя по всему, название функция Фаддеевой было введено Poppe и Wijers в 1990; [5] Ранее она была известна как функция Крампа (скорее всего в честь Christian Kramp).[6]
Самые первые расчеты использовали методы Gautschi (1969/70; ACM Algorithm 363)[7] или Humlicek (1982). [8] Более эффективный алгоритм был предложен Poppe и Wijers (1990; ACM Algorithm 680).[9] Weideman (1994) в свою очередь предложил особенно короткий алгоритм, занимающий не более 8 строк кода в Matlab.[10] Zaghloul и Ali указали на недостатки предыдущих алгоритмов и предложили новый (2011; ACM Algorithm 916).[2] Еще один алгоритм был предложен Abarov и Quine (2011/2012).[11]
Алгоритмы для расчета
[edit]Два программных кода, бесплатных для некоммерческого использования, [12] (и, следовательно, не Free and open-source software), были опубликованы в ACM Transactions on Mathematical Software (TOMS) как Algorithm 680 (на языке Fortran,[13] позднее портированного на C[14]) и Algorithm 916 Zaghloul и Ali (на MATLAB).[15]
Gnuplot вклюает в себя C-реализацию алгоритма Humlicek: быстрого, но с достаточно низкой точностью. Бесплатная/открытая C++ реализация, полученная комбинацией Algorithm 680 и Algorithm 916 (используюцая разные алгоритмы для разных z) также доступна под лицензией MIT License.[16] Эта реализация так же доступна как plug-in для Matlab,[16] GNU Octave,[16] и в Python через пакет Scipy как scipy.special.wofz
(который изначально был кодом TOMS 680, однако позднее заменен во избежание нарушений авторских прав [17]), и помещен в библиотеку на языке C libcerf.[18]
Используемая литература
[edit]- ^ a b http://nlpc.stanford.edu/nleht/Science/reference/errorfun.pdf
- ^ a b M. R. Zaghloul and A. N. Ali, ACM Transactions on Mathematical Software 38(2)15 (2011)
- ^ Richard Fitzpatrick, Plasma Dispersion Function, Plasma Physics записи лекций, University of Texas at Austin (2011/3/31).
- ^ V. N. Faddeeva and N. N. Terent'ev: Tables of values of the function Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "http://localhost:6011/en.wikipedia.org/v1/":): {\displaystyle w(z)=\exp(-z^2)(1+2i/\sqrt{\pi}\int_0^z\exp(t^2)\text{d}t)} for complex argument. Gosud. Izdat. Teh.-Teor. Lit., Moscow, 1954; English transl., Pergamon Press, New York, 1961. Непроверенная ссылка, скопирована из Poppe и Wijers (1990).
- ^ Самый первый результат в выдаче Google Scholar от октября 2012.
- ^ Например, в Al'pert, Space Science Reviews 6, 781 (1967), формула (3.13), со ссылкой на Фаддееву и Терентьева.
- ^ См ссылки 3 и 4 в Poppe и Wijers (1990).
- ^ J. Humlicek, J. Quant. Spectrosc. Radiat. Transfer 27, 437-444 (1982).
- ^ G. P. M. Poppe and C. M. J. Wijers, ACM Transactions on Mathematical Software 16, 38-46 (1990).
- ^ J. A. C. Weideman, SIAM J. Numer. Anal. 31, 1497-1518 (1994).
- ^ S. M. Abrarov and B. M. Quine, Appl. Math. Comp. 218, 1894-1902 (2011) and arXiv:1205.1768v1 (2012).
- ^ http://www.acm.org/publications/policies/softwarecrnotice
- ^ http://www.cs.kent.ac.uk/people/staff/trh/CALGO/680.gz
- ^ http://spec.jpl.nasa.gov/ftp/pub/calpgm/collisions/ZWOFZ.C
- ^ Mofreh R. Zaghloul and Ahmed N. Ali, "Algorithm 916: Computing the Faddeyeva and Voigt Functions," ACM Trans. Math. Soft. 38 (2), 15 (2011). Препринт доступен по адресу arXiv:1106.0151.
- ^ a b c Faddeeva Package, Бесплатная/открытая C++реализация, просмотрено 13 октября 2012.
- ^ https://github.com/scipy/scipy/issues/2260
- ^ http://apps.jcns.fz-juelich.de/libcerf