scipy.special.
gegenbauer#
- scipy.special.gegenbauer(n, alpha, монический=False)[источник]#
Полином Гегенбауэра (ультрасферический).
Определяется как решение уравнения
\[(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.
- моническийbool, необязательно
Если True, масштабировать старший коэффициент до 1. По умолчанию False.
- Возвращает:
- Corthopoly1d
Полином Гегенбауэра.
Примечания
Полиномы \(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функцию и вычислить в точкеx = 1.>>> p = special.gegenbauer(3, 0.5, monic=False) >>> p poly1d([ 2.5, 0. , -1.5, 0. ]) >>> p(1) 1.0
Чтобы вычислить
pв различных точкахxв интервале(-3, 3), просто передайте массивxtopследующим образом:>>> x = np.linspace(-3, 3, 400) >>> y = p(x)
Затем мы можем визуализировать
x, yиспользуяmatplotlib.pyplot.>>> 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()