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), просто передайте массив x to p следующим образом:

>>> 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()
../../_images/scipy-special-gegenbauer-1.png