scipy.special.

chebyu#

scipy.special.chebyu(n, monic=False)[source]#

第二类切比雪夫多项式。

定义为以下方程的解:

\[(1 - x^2)\frac{d^2}{dx^2}U_n - 3x\frac{d}{dx}U_n + n(n + 2)U_n = 0;\]

\(U_n\) 是一个 \(n\) 阶多项式。

参数:
nint

多项式的阶数。

monicbool, optional

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

返回值:
Uorthopoly1d

第二类切比雪夫多项式。

另见

chebyt

第一类切比雪夫多项式。

注释

多项式 \(U_n\)\([-1, 1]\) 上关于权重函数 \((1 - x^2)^{1/2}\) 正交。

参考文献

[AS]

Milton Abramowitz 和 Irene A. Stegun, eds. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972.

示例

二阶切比雪夫多项式 \(n\) 可以作为特定 \(n \times n\) 矩阵的行列式获得。 例如,我们可以检查从以下 \(3 \times 3\) 矩阵的行列式获得的点如何精确地位于 \(U_3\)

>>> import numpy as np
>>> import matplotlib.pyplot as plt
>>> from scipy.linalg import det
>>> from scipy.special import chebyu
>>> x = np.arange(-1.0, 1.0, 0.01)
>>> fig, ax = plt.subplots()
>>> ax.set_ylim(-2.0, 2.0)
>>> ax.set_title(r'Chebyshev polynomial $U_3$')
>>> ax.plot(x, chebyu(3)(x), label=rf'$U_3$')
>>> for p in np.arange(-1.0, 1.0, 0.1):
...     ax.plot(p,
...             det(np.array([[2*p, 1, 0], [1, 2*p, 1], [0, 1, 2*p]])),
...             'rx')
>>> plt.legend(loc='best')
>>> plt.show()
../../_images/scipy-special-chebyu-1_00_00.png

它们满足递推关系

\[U_{2n-1}(x) = 2 T_n(x)U_{n-1}(x)\]

其中 \(T_n\) 是第一类切比雪夫多项式。 让我们为 \(n = 2\) 验证一下

>>> from scipy.special import chebyt
>>> x = np.arange(-1.0, 1.0, 0.01)
>>> np.allclose(chebyu(3)(x), 2 * chebyt(2)(x) * chebyu(1)(x))
True

我们可以绘制一些 \(n\) 值的切比雪夫多项式 \(U_n\)

>>> x = np.arange(-1.0, 1.0, 0.01)
>>> fig, ax = plt.subplots()
>>> ax.set_ylim(-1.5, 1.5)
>>> ax.set_title(r'Chebyshev polynomials $U_n$')
>>> for n in np.arange(1,5):
...     ax.plot(x, chebyu(n)(x), label=rf'$U_n={n}$')
>>> plt.legend(loc='best')
>>> plt.show()
../../_images/scipy-special-chebyu-1_01_00.png