LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Anyone have an inverse erf function VI?

I am looking to convert from the area under the normal (Gaussian) curve from -Z to +Z to obtain the value of Z. This is the inverse of the erf function, which is available in LabVIEW (except base package).

The only thoughts I have to solve this is either:
(1) interpolating a set of data obtained from use of the erf function, or
(2) doing a binary search / goal seek using the erf function until satisfied with the precision.
0 Kudos
Message 1 of 9
(4,366 Views)
I scratched my head and searched the internet for a few hours. I cannot think of a better solution that the two you posted. It looks like you are forced into the classic tradeoff of time or space.

The problem is that the error function (erf) is a "Special Function" which means that its derivative cannot be expressed with more elementary functions. Thus, there is no way to find the inverse by solving for the variable. This leaves us with numerical approximation methods.
0 Kudos
Message 2 of 9
(4,366 Views)
Thanks for your response, and your effort!
0 Kudos
Message 3 of 9
(4,366 Views)

See attached for a spin-off from altenbach's contribution here:

 

http://forums.ni.com/ni/board/message?board.id=170&requireLogin=False&thread.id=173012


Certified LabVIEW Architect
TestScript: Free Python/LabVIEW Connector

One global to rule them all,
One double-click to find them,
One interface to bring them all
and in the panel bind them.
0 Kudos
Message 4 of 9
(4,021 Views)

I've found the link to the erfinv function done in Fortran (from a Matlab file) and converted it in Labview.

The link is http://fnapcf.fnal.gov/~ron/p/matlab/v2006a/toolbox/matlab/specfun/erfcore.F

 

My own vi follows:

 

 

 

0 Kudos
Message 5 of 9
(3,926 Views)
Ok, here's the optimization of my last vi.  I also added the precision increase (from Newton's correction and Halley's step).  To do the erfcinv, you just need to call the erfinv since erfcinv(x)=erfinv(1-x).
0 Kudos
Message 6 of 9
(3,908 Views)

Hi,

 

Can you please help me realize the erf_inv VI in labview communication design please

 

Thanks

0 Kudos
Message 7 of 9
(2,918 Views)

emnajaoua wrote: 

Can you please help me realize the erf_inv VI in labview communication design please

 


You keep posting in the wrong forum. Almost nobody here will be able to open *.gvi files.

 

If you also have LabVIEW, you can look inside the inverse error function (it is plain LabVIEW code!) and duplicate it to your code. Long ago I also made a version that uses Newton-Raphson to invert the error function, have a look there too. It's just math! 😄

 

 

0 Kudos
Message 8 of 9
(2,898 Views)

Hi,

 

I have been trying to copy the math modules from the VI that you have posted there to another VI in labview communications design but as I said before there is a problem in implementing the "erf" function in the C node.I didn't resolve it so far.

Here you can find the VI and the GVI that I want to make.

 

I really need help!

 

Download All
0 Kudos
Message 9 of 9
(2,872 Views)