freealg.distributions.DeformedMarchenkoPastur#

class freealg.distributions.DeformedMarchenkoPastur(t, w, c=1.0)#

Deformed Marchenko-Pastur distribution

Parameters:
tarray_like

Atom locations (jump sizes). For PSD-like support, keep them >= 0.

warray_like

Weights for atoms. Must have same length as t, each entry must be nonnegative, and their sum must be 1.

cfloat

Ratio parameter of Marchenko-Pastur distribution, must be >= 0.

Notes

Silverstein / companion Stieltjes variable

For sample-covariance, free multiplicative convolution with \(MP_c\): Let \(u(z)\) be the companion Stieltjes transform (often denoted \(\underline{m})\). It satisfies the Silverstein equation:

\[z = -1/u + c * \mathbb{E}_H [ t / (1 + t u) ].\]

For \(H = \sum_i w_i \delta_{t_i}\):

\[z = -1/u + c \sum_i \frac{w_i*t_i}{1+t_i u}.\]

Then the (ordinary) Stieltjes transform m(z) of \(\mu = H \boxtimes \mathrm{MP}_c\) is

\[u = -(1-c)/z + c m\]

(equivalently \(m = (u + (1-c)/z)/c\) for \(c>0\)).

This module solves for u (degree r+1 when H has r atoms), then maps to m.

Reference for the Silverstein equation form:

\[z = -1/u + c \int t/(1 + t u) dH(t).\]

Methods

density([x, eta, ac_only, plot, latex, ...])

Density of distribution.

roots(z)

Roots of polynomial implicitly representing Stieltjes transform

stieltjes(z[, max_iter, tol])

Stieltjes transform

support([eta, n_probe, thr, x_max, x_pad, ...])

Support intervals of distribution

sample(size[, x_min, x_max, method, seed, ...])

Sample from distribution.

matrix(size[, seed])

Generate matrix with the spectral density of the distribution.

poly()

Polynomial coefficients implicitly representing the Stieltjes