In this pull request I include the following upgrades and improvements:
Implementation of the method rvs of the classes within skrmt.ensemble.spectral_law to sample independent eigenvalues of the spectral distributions without using any random matrix. This is achieved in several ways depending on our knowledge about each particular distribution:
rvs of MarchenkoPasturDistributionis implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.
rvs of TracyWidomDistribution is implemented using scipy's rv_continous class, that automatically implements rvs if you provide the expression of the pdf or of the cdf.
rvs of ManovaSpectrumDistribution is implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.
Ensemble methods do not normalize eigenvalues by default. To normalize them, the argument normalize=True has to be set.
Ensemble spectrum histograms are not normalized to represent the PDF by default, so each bin is representing the absolute count of the sampled eigenvalues. To show the actual eigenvalue frequency (density), set the input argument density=True.
All plotting methods and functions now computes correctly and automatically the representation interval depending on the ensemble/law parameters.
Added input arg random_state of type int to all methods and functions that require random-number generation. This is useful to reproduce any experiment.
The input argument fig_path is now named savefig_path in all methods and functions to match matplotlib nomenclature.
New sub-module within skrmt.ensemble named utils containing useful functions:
plot_max_eigvals_tracy_widom: plots the histogram of the maximum eigenvalues of a random ensemble with the
Tracy-Widom PDF.
rand_mtx_max_eigvals: computes several times the maximum eigenvalue of different random matrix samples.
Complex plots of CircularEnsemble are now squared to highlight the actual axis proportions.
Renamed _base_ensemble to base_ensemble.
Moved general-purpose functions to a separate file called misc.py.
Updated version to 0.8.0 for the upcoming release.
In this pull request I include the following upgrades and improvements:
Implementation of the method
rvs
of the classes withinskrmt.ensemble.spectral_law
to sample independent eigenvalues of the spectral distributions without using any random matrix. This is achieved in several ways depending on our knowledge about each particular distribution:rvs
ofWignerSemicircleLaw
is implemented using the fact that Wigner's Semicircle law coincides with a scaled beta distribution.rvs
ofMarchenkoPasturDistribution
is implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.rvs
ofTracyWidomDistribution
is implemented using scipy's rv_continous class, that automatically implementsrvs
if you provide the expression of thepdf
or of thecdf
.rvs
ofManovaSpectrumDistribution
is implemented using the algorithm Inverve Transform Sampling to draw independent samples given a PDF.Ensemble methods do not normalize eigenvalues by default. To normalize them, the argument
normalize=True
has to be set.Ensemble spectrum histograms are not normalized to represent the PDF by default, so each bin is representing the absolute count of the sampled eigenvalues. To show the actual eigenvalue frequency (density), set the input argument
density=True
.All plotting methods and functions now computes correctly and automatically the representation interval depending on the ensemble/law parameters.
Added input arg
random_state
of typeint
to all methods and functions that require random-number generation. This is useful to reproduce any experiment.The input argument
fig_path
is now namedsavefig_path
in all methods and functions to matchmatplotlib
nomenclature.New sub-module within
skrmt.ensemble
namedutils
containing useful functions:plot_max_eigvals_tracy_widom
: plots the histogram of the maximum eigenvalues of a random ensemble with the Tracy-Widom PDF.rand_mtx_max_eigvals
: computes several times the maximum eigenvalue of different random matrix samples.Complex plots of
CircularEnsemble
are now squared to highlight the actual axis proportions.Renamed
_base_ensemble
tobase_ensemble
.Moved general-purpose functions to a separate file called
misc.py
.Updated version to 0.8.0 for the upcoming release.