DiscretePolynomialEnsembles

Documentation for DiscretePolynomialEnsembles.

Exported Functionality

DiscretePolynomialEnsembles.DiscretePolynomialEnsembleType
DiscretePolynomialEnsemble <: PolynomialEnsemble

Abstract type for discrete polynomial ensembles.

Interface

Subtypes must implement:

Optionally implement transform(ensemble, x) for coordinate transformations (default: identity).

source

Available Ensembles

DiscretePolynomialEnsembles.BesselJType
BesselJ(; θ)

Bessel J ensemble with parameter θ > 0. Construct the Bessel kernel via Kernel(ensemble).

Warning

Not an actual polynomial ensemble. Basis elements are Bessel functions, not polynomials.

source
DiscretePolynomialEnsembles.LanczosType
Lanczos(w, domain; ν = identity, simplify = identity)

Orthonormal polynomial ensemble via Lanczos algorithm with weight function w on domain. If a transformation ν is specified, the inner product used for orthonormalization is $⟨f, g⟩ = ∑_{x ∈ 𝒟} w(x) f(ν(x)) g(ν(x))$ and the polynomials will be over ν(x).

source
DiscretePolynomialEnsembles.LanczosMonicType
LanczosMonic(w, domain; ν = identity, simplify = identity)

Monic polynomial ensemble via Lanczos algorithm with weight function w on domain. If a transformation ν is specified, the inner product used for orthogonalization is $⟨f, g⟩ = ∑_{x ∈ 𝒟} w(x) f(ν(x)) g(ν(x))$ and the polynomials will be over ν(x).

source

Internal Functions

DiscretePolynomialEnsembles.grad_pfqFunction
grad_pFq(pfq_val, a, b, z, precision = 1.0e-14, max_steps = 10^6; prec)

Returns the gradient of the generalized hypergeometric function wrt to the input arguments:

\[ _pF_q(a_1,...,a_p;b_1,...,b_q;z)\]

Where:

\[ \frac{\partial }{\partial a_1} = \sum_{k=1}^{\infty}{ \frac {\left(1 + \sum_{m=0}^{k-1}\frac{1}{m+a_1}\right) * \left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k} {k!\prod_{j=1}^q\left(b_j\right)_k}} - {}_pF_q(a_1,...,a_p;b_1,...,b_q;z)\]

\[ \frac{\partial }{\partial b_1} = {}_pF_q(a_1,...,a_p;b_1,...,b_q;z) - \sum_{k=1}^{\infty}{ \frac {\left(1 + \sum_{m=0}^{k-1}\frac{1}{m+b_1}\right) * \left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k} {k!\prod_{j=1}^q\left(b_j\right)_k}}\]

\[ \frac{\partial }{\partial z} = \frac{\prod_{j=1}^{p}(a_j)}{\prod_{j=1}^{q} (b_j)}\ {}_pF_q(a_1+1,...,a_p+1;b_1+1,...,b_q+1;z)\]

Noting the the recurrence relation for the digamma function: $\psi(x + 1) = \psi(x) + \frac{1}{x}$, the gradients for the function with respect to a and b then simplify to:

\[ \frac{\partial }{\partial a_1} = \sum_{k=1}^{\infty}{ \frac {\left(1 + \sum_{m=0}^{k-1}\frac{1}{m+a_1}\right) * \left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k} {k!\prod_{j=1}^q\left(b_j\right)_k}} - {}_pF_q(a_1,...,a_p;b_1,...,b_q;z)\]

\[ \frac{\partial }{\partial b_1} = {}_pF_q(a_1,...,a_p;b_1,...,b_q;z) - \sum_{k=1}^{\infty}{ \frac {\left(1 + \sum_{m=0}^{k-1}\frac{1}{m+b_1}\right) * \left(\prod_{j=1}^p\left(a_j\right)_k\right)z^k} {k!\prod_{j=1}^q\left(b_j\right)_k}}\]

source