CNLMath : Special Functions : bivariate_normal_cdf
bivariate_normal_cdf
Evaluates the bivariate normal distribution function.
Synopsis
#include <imsl.h>
float imsl_f_bivariate_normal_cdf (float x, float y, float rho)
The type double function is imsl_d_bivariate_normal_cdf.
Required Arguments
float x (Input)
The x-coordinate of the point for which the bivariate normal distribution function is to be evaluated.
float y (Input)
The y-coordinate of the point for which the bivariate normal distribution function is to be evaluated.
float rho (Input)
Correlation coefficient.
Return Value
The probability that a bivariate normal random variable with correlation rho takes a value less than or equal to x and less than or equal to y.
Description
Function imsl_f_bivariate_normal_cdf evaluates the distribution function F of a bivariate normal distribution with means of zero, variances of one, and correlation of rho; that is, with ρ =rho, and ∣ρ∣ < 1,
To determine the probability that U u0 and V v0, where (U, V)T is a bivariate normal random variable with mean μ =(μU, μV)T and variance-covariance matrix
transform (U, V)T to a vector with zero means and unit variances. The input to imsl_f_bivariate_normal_cdf would be X =(u0 - μU)/σU, Y =(v0 - μV)/σV, and ρ =σUV/(σUσV).
Function imsl_f_bivariate_normal_cdf uses the method of Owen (1962, 1965). Computation of Owen’s T-function is based on code by M. Patefield and D. Tandy (2000). For ∣ρ∣ =1, the distribution function is computed based on the univariate statistic, Z =min(x, y), and on the normal distribution function imsl_f_normal_cdf, which can be found in Chapter 11 of the IMSL C Numerical Stat Library, “Probablility Distribution Functions and Inverses.”
Example
Suppose (X, Y) is a bivariate normal random variable with mean (0, 0) and variance-covariance matrix
This example finds the probability that X is less than 2.0 and Y is less than 0.0.
 
#include <imsl.h>
#include <stdio.h>
 
int main()
{
float p, rho, x, y;
 
x = -2.0;
y = 0.0;
rho = 0.9;
p = imsl_f_bivariate_normal_cdf(x, y, rho);
printf(" The probability that X is less than -2.0"
" and Y is less than 0.0 is %6.4f\n", p);
}
Output
 
The probability that X is less than -2.0 and Y is less than 0.0 is 0.0228