scipy.special.airye#
-
scipy.special.airye(z, выход=None) =
'airye'> # Экспоненциально масштабированные функции Эйри и их производные.
Масштабирование:
eAi = Ai * exp(2.0/3.0*z*sqrt(z)) eAip = Aip * exp(2.0/3.0*z*sqrt(z)) eBi = Bi * exp(-abs(2.0/3.0*(z*sqrt(z)).real)) eBip = Bip * exp(-abs(2.0/3.0*(z*sqrt(z)).real))
- Параметры:
- zarray_like
Вещественный или комплексный аргумент.
- выходкортеж ndarray, опционально
Необязательные выходные массивы для значений функции
- Возвращает:
- eAi, eAip, eBi, eBip4-кортеж скаляра или ndarray
Экспоненциально масштабированные функции Эйри eAi и eBi, и их производные eAip и eBip
Смотрите также
Примечания
Обертка для AMOS [1] routines zairy и zbiry.
Ссылки
[1]Дональд Э. Амос, «AMOS, переносимый пакет для функций Бесселя комплексного аргумента и неотрицательного порядка», http://netlib.org/amos/
Примеры
Мы можем вычислять экспоненциально масштабированные функции Эйри и их производные:
>>> import numpy as np >>> from scipy.special import airye >>> import matplotlib.pyplot as plt >>> z = np.linspace(0, 50, 500) >>> eAi, eAip, eBi, eBip = airye(z) >>> f, ax = plt.subplots(2, 1, sharex=True) >>> for ind, data in enumerate([[eAi, eAip, ["eAi", "eAip"]], ... [eBi, eBip, ["eBi", "eBip"]]]): ... ax[ind].plot(z, data[0], "-r", z, data[1], "-b") ... ax[ind].legend(data[2]) ... ax[ind].grid(True) >>> plt.show()
Мы можем вычислить их, используя обычные немасштабированные функции Эйри:
>>> from scipy.special import airy >>> Ai, Aip, Bi, Bip = airy(z) >>> np.allclose(eAi, Ai * np.exp(2.0 / 3.0 * z * np.sqrt(z))) True >>> np.allclose(eAip, Aip * np.exp(2.0 / 3.0 * z * np.sqrt(z))) True >>> np.allclose(eBi, Bi * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z))))) True >>> np.allclose(eBip, Bip * np.exp(-abs(np.real(2.0 / 3.0 * z * np.sqrt(z))))) True
Сравнивая не масштабированные и экспоненциально масштабированные функции, обычная не масштабированная функция быстро становится меньше минимального представимого числа для больших значений, тогда как экспоненциально масштабированная функция этого не делает.
>>> airy(200) (0.0, 0.0, nan, nan) >>> airye(200) (0.07501041684381093, -1.0609012305109042, 0.15003188417418148, 2.1215836725571093)