View Single Post
  #8   Report Post  
Posted to microsoft.public.excel.worksheet.functions
Jerry W. Lewis Jerry W. Lewis is offline
external usenet poster
 
Posts: 837
Default inverse error function

You could avoid loss of precision for small erf values by using
SQRT(inv_gamma(erf_value,0.5,1))
where inv_gamma is the highly accurate equivalent of GAMMAINV from Ian
Smith's VBA library
http://members.aol.com/iandjmsmith/Examples.xls

Unfortunately, the native GAMMAINV function is very crude for the purpose.

Sorry to come so late to the party, but Google's indexing of newsgroups was
down for nearly half a month, so I just stumbled onto this thread.

Jerry

"Harlan Grove" wrote:

Someone's gotta ask, since ERF(x) = 2*NORMSDIST(x*SQRT(2))-1, then why not
use NORMSINV? That is, why not estimate InverseERF(y) as

=NORMSINV((y+1)/2)/SQRT(2)

..'InverseErf [0.1]
..'0.0888559904942577



=NORMSINV((0.1+1)/2)/SQRT(2) - 0.0888559904942577

..'InverseErf [0.5]
..'0.4769362762044698


=NORMSINV((0.5+1)/2)/SQRT(2) - 0.47693627620447

..'InverseErf [0.9]
..'1.163087153676674


=NORMSINV((0.9+1)/2)/SQRT(2) - 1.16308715367667