Normal Quantile with Precision

computes the normal quantile function with high precision for extreme values in the tail
254 Downloads
Updated 27 Apr 2016

View License

computes the quantile function of the standard normal distribution, truncated to the interval [l,u].
Method designed for precision in the tails. Inf values for vectors 'l' and 'u' accepted;
%Example: Suppose you desire the median of Z~N(0,1), truncated to Z>9;
norminvp(0.5,9,Inf) %our method
% in contrast, Matlab's default norminv.m fails
pl=normcdf(9); norminv(0.5*(1-pl)+pl)

Reference:
Botev, Z. I. (2016). "The normal law under linear restrictions:
simulation and estimation via minimax tilting". Journal of the Royal Statistical Society: Series B (Statistical Methodology). doi:10.1111/rssb.12162

For more information, see: https://en.wikipedia.org/wiki/Normal_distribution#Quantile_function

Cite As

Zdravko Botev (2024). Normal Quantile with Precision (https://www.mathworks.com/matlabcentral/fileexchange/53605-normal-quantile-with-precision), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2015b
Compatible with any release
Platform Compatibility
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
2.0.0.0

- updated the Newton method in "newton(p,l,u)" so that now the exit condition uses
relative error; previous version used absolute error criterion.

1.1.0.0

Vectorized the last update of the function.
If abs(x)>10^6, then there is no need for Newton iteration and the code now bypassed the
iteration;
Faster convergence of Newton's method using
the better initial guess of the root of nonlinear equation:
x=sqrt(l-2*reallog(1+p.*expm1(l/2-u/2)));
Corrected spelling mistake in title
Forgot to suppress output by adding a semicolon.

1.0.0.0

Uploaded better cover picture.
Added more tags.

Added reference to article.
Updated title: "Normal Quantile Function with Precision"