scipy.special.airy#

scipy.special.airy(z, out=None) = <ufunc 'airy'>#

艾里函数及其导数。

参数:
z数组式

实数或复数参数。

outndarray 元组, 可选

函数值的可选输出数组

返回:
Ai, Aip, Bi, Bip4元组 (标量或 ndarray)

艾里函数 Ai 和 Bi 及其导数 Aip 和 Bip。

另请参阅

airye

指数缩放的艾里函数。

注释

艾里函数 Ai 和 Bi 是以下方程的两个独立解:

\[y''(x) = x y(x).\]

对于 [-10, 10] 范围内的实数 z,计算通过调用 Cephes [1] airy 例程进行,该例程对小的 z 使用幂级数求和,对大的 z 使用有理极小极大近似。

在此范围之外,使用 AMOS [2]zairyzbiry 例程。它们对于 \(|z| < 1\) 使用幂级数计算,对于更大的 z 则使用与修正贝塞尔函数的关系(其中 \(t \equiv 2 z^{3/2}/3\)):

\[ \begin{align}\begin{aligned}Ai(z) = \frac{1}{\pi \sqrt{3}} K_{1/3}(t)\\Ai'(z) = -\frac{z}{\pi \sqrt{3}} K_{2/3}(t)\\Bi(z) = \sqrt{\frac{z}{3}} \left(I_{-1/3}(t) + I_{1/3}(t) \right)\\Bi'(z) = \frac{z}{\sqrt{3}} \left(I_{-2/3}(t) + I_{2/3}(t)\right)\end{aligned}\end{align} \]

参考文献

[1]

Cephes 数学函数库, http://www.netlib.org/cephes/

[2]

Donald E. Amos, “AMOS, 针对复数自变量和非负阶贝塞尔函数的便携式软件包”, http://netlib.org/amos/

示例

计算区间 [-15, 5] 上的艾里函数。

>>> import numpy as np
>>> from scipy import special
>>> x = np.linspace(-15, 5, 201)
>>> ai, aip, bi, bip = special.airy(x)

绘制 Ai(x) 和 Bi(x)。

>>> import matplotlib.pyplot as plt
>>> plt.plot(x, ai, 'r', label='Ai(x)')
>>> plt.plot(x, bi, 'b--', label='Bi(x)')
>>> plt.ylim(-0.5, 1.0)
>>> plt.grid()
>>> plt.legend(loc='upper left')
>>> plt.show()
../../_images/scipy-special-airy-1.png