scipy.special.
gegenbauer#
- scipy.special.gegenbauer(n, alpha, monic=False)[原始碼]#
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
我們可以將變數
p
初始化為 Gegenbauer 多項式,使用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()