scipy.special.
gegenbauer#
- scipy.special.gegenbauer(n, alpha, monic=False)[source]#
Gegenbauer(超球面)多项式。
定义为
\[(1 - x^2)\frac{d^2}{dx^2}C_n^{(\alpha)} - (2\alpha + 1)x\frac{d}{dx}C_n^{(\alpha)} + n(n + 2\alpha)C_n^{(\alpha)} = 0\]对于 \(\alpha > -1/2\);\(C_n^{(\alpha)}\) 是 \(n\) 次多项式。
- 参数:
- nint
多项式的次数。
- alphafloat
参数,必须大于 -0.5。
- monicbool,可选项
如果为 True,将首项系数调整为 1。默认值为 False。
- 返回:
- Corthopoly1d
Gegenbauer 多项式。
注释
多项式 \(C_n^{(\alpha)}\) 在 \([-1,1]\) 上正交,且权重函数为 \((1 - x^2)^{(\alpha - 1/2)}\)。
示例
>>> import numpy as np >>> from scipy import special >>> import matplotlib.pyplot as plt
我们可以使用
gegenbauer
函数将变量p
初始化为Gegenbauer多项式并在点x = 1
处进行评估。>>> p = special.gegenbauer(3, 0.5, monic=False) >>> p poly1d([ 2.5, 0. , -1.5, 0. ]) >>> p(1) 1.0
要在间隔
(-3, 3)
中的各个点x
处评估p
,只需将数组x
传递给p
如下所示>>> x = np.linspace(-3, 3, 400) >>> y = p(x)
然后,我们可以使用
matplotlib.pyplot
可视化x, y
。>>> fig, ax = plt.subplots() >>> ax.plot(x, y) >>> ax.set_title("Gegenbauer (ultraspherical) polynomial of degree 3") >>> ax.set_xlabel("x") >>> ax.set_ylabel("G_3(x)") >>> plt.show()