sh_jacobi#
- scipy.special.sh_jacobi(n, p, q, monic=False)[source]#
Shifted Jacobi polynomial.
Defined by
\[G_n^{(p, q)}(x) = \frac{n!\Gamma(n+p)}{\Gamma(2n+p)} P_n^{(p - q, q - 1)}(2x - 1),\]where \(P_n^{(\cdot, \cdot)}\) is the n-th Jacobi polynomial. Note that here, in contrast to
sh_legendre,sh_chebyt, andsh_chebyu, more than just the argument is shifted. See 22.2.2 in [AS] for details.- Parameters:
- nint
Degree of the polynomial.
- pfloat
Parameter, must satisfy \(p - q > -1\).
- qfloat
Parameter, must be greater than 0.
- monicbool, optional
If True, scale the leading coefficient to be 1. Default is False.
- Returns:
- Gorthopoly1d
Shifted Jacobi polynomial.
Notes
For fixed \(p, q\), the polynomials \(G_n^{(p, q)}\) are orthogonal over \([0, 1]\) with weight function \((1 - x)^{p - q}x^{q - 1}\).
References
[AS]Milton Abramowitz and Irene A. Stegun, eds. Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. New York: Dover, 1972.
Examples
Evaluate the shifted Jacobi polynomial \(G_3^{(2, 1)}\) at \(x = 0.5\):
>>> import numpy as np >>> from scipy.special import binom, jacobi, sh_jacobi >>> np.isclose(sh_jacobi(3, 2, 1)(0.5), -3/280) True
The polynomial is related to the Jacobi polynomial \(P_n^{(p - q, q - 1)}\):
>>> x = np.linspace(0, 1, 5) >>> n, p, q = 3, 2, 1 >>> scale = 1 / binom(2*n + p - 1, n) >>> np.allclose(sh_jacobi(n, p, q)(x), ... scale * jacobi(n, p - q, q - 1)(2*x - 1)) True
Plot \(G_3^{(p, 1)}\) for several values of \(p\):
>>> import matplotlib.pyplot as plt >>> x = np.linspace(0, 1, 400) >>> fig, ax = plt.subplots() >>> for p in [1, 2, 3]: ... ax.plot(x, sh_jacobi(3, p, 1)(x), label=rf"$p={p}$") >>> ax.set_title(r"Shifted Jacobi polynomials $G_3^{(p, 1)}$") >>> ax.set_xlabel("x") >>> ax.legend(loc="best") >>> plt.show()