Evaluates the noncentral F probability density function (PDF).
float
imsls_f_non_central_F_pdf (float f, float df_numerator,
float df_denominator,
float lambda)
The type double function is imsls_d_non_central_F_pdf.
float f
(Input)
Argument
for which the noncentral F probability density function is to be
evaluated. f must be
non-negative.
float
df_numerator
(Input)
Numerator degrees of
freedom of the noncentral F distribution. df_numerator must be
positive.
float
df_denominator
(Input)
Denominator degrees of
freedom of the noncentral F distribution. df_denominator must be
positive.
float
lambda
(Input)
Noncentrality parameter.
lambda must be
non-negative.
The probability density associated with a noncentral F random variable with value f.
If X is a noncentral chi-square random variable with noncentrality parameter λ and ν1 degrees of freedom, and Y is a chi-square random variable with ν2 degrees of freedom which is statistically independent of X, then
is a noncentral F-distributed random variable whose PDF is given by
where
and G(.) is the
gamma function, n1 = df_numerator,
n2 = df_denominator,
l= lambda,
and f = f.
With a noncentrality parameter of zero, the noncentral F distribution is the same as the F distribution.
The efficiency of the calculation of the above series is enhanced by:
1. calculating each term Fk in the series recursively in terms of either the term Fk-1 preceding it or the term Fk+1 following it, and
2. initializing the sum with the largest series term and adding the subsequent terms in order of decreasing magnitude.
Special cases:
This example traces out a
portion of a noncentral F distribution with parameters
df_numerator = 100, df_denominator = 10, and lambda = 10.
#include <imsls.h>
#include <stdio.h>
int main()
{
int i;
float f[] = {0., .4, .8, 3.2, 5.6, 8.8, 14., 18.};
float df_numerator = 100., df_denominator = 10., lambda =10., pdfv;
printf ("df_numerator: %4.0f\n", df_numerator);
printf ("df_denominator: %4.0f\n", df_denominator);
printf ("lambda: %4.0f\n\n", lambda);
printf (" f pdf(f)\n");
for (i=0; i<8; i++) {
pdfv = imsls_f_non_central_F_pdf
(f[i], df_numerator, df_denominator, lambda);
printf (" %5.1f %12.4e\n", f[i], pdfv);
}
}
df_numerator: 100
df_denominator: 10
lambda: 10
f pdf(f)
0.0 0.0000e+000
0.4 9.7488e-002
0.8 8.1312e-001
3.2 3.6948e-002
5.6 2.8302e-003
8.8 2.7661e-004
14.0 2.1963e-005
18.0 5.3483e-006
Visual Numerics, Inc. PHONE: 713.784.3131 FAX:713.781.9260 |