scipy.special.

jacobi#

scipy.special.jacobi(n, alpha, beta, monic=False)[源代码]#

雅可比多项式。

定义为以下方程的解

\[(1 - x^2)\frac{d^2}{dx^2}P_n^{(\alpha, \beta)} + (\beta - \alpha - (\alpha + \beta + 2)x) \frac{d}{dx}P_n^{(\alpha, \beta)} + n(n + \alpha + \beta + 1)P_n^{(\alpha, \beta)} = 0\]

对于 \(\alpha, \beta > -1\); \(P_n^{(\alpha, \beta)}\) 是一个 \(n\) 次多项式。

参数:
nint

多项式的次数。

alphafloat

参数,必须大于 -1。

betafloat

参数,必须大于 -1。

monicbool, 可选

如果 True,则将前导系数缩放到 1。默认为 False

返回:
Porthopoly1d

雅可比多项式。

注释

对于固定的 \(\alpha, \beta\),多项式 \(P_n^{(\alpha, \beta)}\) 在区间 \([-1, 1]\) 上关于权重函数 \((1 - x)^\alpha(1 + x)^\beta\) 正交。

参考文献

[AS]

Milton Abramowitz 和 Irene A. Stegun,编辑。《数学函数手册,包含公式、图表和数学表格》。纽约:多佛出版社,1972 年。

示例

雅可比多项式满足以下递推关系

\[P_n^{(\alpha, \beta-1)}(x) - P_n^{(\alpha-1, \beta)}(x) = P_{n-1}^{(\alpha, \beta)}(x)\]

例如,可以验证 \(\alpha = \beta = 2\)\(n = 1\) 在区间 \([-1, 1]\) 上的情况

>>> import numpy as np
>>> from scipy.special import jacobi
>>> x = np.arange(-1.0, 1.0, 0.01)
>>> np.allclose(jacobi(0, 2, 2)(x),
...             jacobi(1, 2, 1)(x) - jacobi(1, 1, 2)(x))
True

对于不同的 \(\alpha\) 值,雅可比多项式 \(P_5^{(\alpha, -0.5)}\) 的图

>>> import matplotlib.pyplot as plt
>>> x = np.arange(-1.0, 1.0, 0.01)
>>> fig, ax = plt.subplots()
>>> ax.set_ylim(-2.0, 2.0)
>>> ax.set_title(r'Jacobi polynomials $P_5^{(\alpha, -0.5)}$')
>>> for alpha in np.arange(0, 4, 1):
...     ax.plot(x, jacobi(5, alpha, -0.5)(x), label=rf'$\alpha={alpha}$')
>>> plt.legend(loc='best')
>>> plt.show()
../../_images/scipy-special-jacobi-1.png