⁻1,⁻.342242088547,⁻1,⁻.322232431 088},t)/polyeval({.38560700634⁻2,.10353775285,
.531103462366,.588581570495,.99348462606⁻1},t)))+m)
Endfunc
cndi() uses nSolve() to find x, with an initial guess found by Odeh & Evans' expression. However, if p >
0.999999713348, cndi() just uses Odeh & Evan's expression. This value of p corresponds to a
standard deviation of 5. Above this limit, nSolve() does not improve the accuracy, and takes much
longer.
cndi() typically executes in a few seconds. While not extremely impressive, this is faster than simply
using nSolve() with no initial guess.
These are the references I used to develop the functions:
Handbook of Mathematical Functions, Abramowitz and Stegun, Dover, 1965. The standard normal
probability distribution, and the transformation to the general normal distribution, are described on
p931. The relation to the error function is shown on p934.
Statistical Computing, Kennedy and Gentle, Marcel Dekker, 1980. Odeh and Evans' approximation for
the inverse cumulative normal distribution is shown on p95.
[6.36] Integration may return 'undef' for identical integration limits
By definition,
¶
a
a
f(x)dx = 0
for any a and f(x). The TI-89/92+ evaluate such 'zero-width' integrals correctly with either nInt() or á(),
unless f(x) cannot be evaluated at a. For example, these functions all return zero:
á(1,x,0,0) or nInt(1,x,0,0)
á(x,x,0,0) or nInt(x,x,0,0)
á(sin(x),x,0,0) or nInt(sin(x),x,0,0)
However, if f(a) is undefined, then these expressions return undef:
á(1/x,x,0,0) or nInt(1,x,0,0)
á(sin(x),x,0,0) or nInt(1,x,0,0)
If the integration limits are specified symbolically instead of numerically, then á() correctly returns
zero, but nInt() returns itself:
á(1/x,x,0,0) returns 0
nInt(1/x,x,0,0) returns nInt(1/x,x,0,0)
This behavior is not a problem for manual calculations because you would never bother to evaluate an
integral with identical limits. However, it could be a problem if you evaluate integrals within a program
or function. If so, test the integration limits for equality before evaluating the integral. If they are equal,
return zero. One method is
6 - 70