Answered by:
Normal Distribution Function
Question

Answers

Found the answer:
Public Function NormDist(ByVal x As Double) As Double
Dim t As Double
Const b1 = 0.31938153
Const b2 = 0.356563782
Const b3 = 1.781477937
Const b4 = 1.821255978
Const b5 = 1.330274429
Const p = 0.2316419
Const c = 0.39894228
If x >=0 Then
t = 1.0# / (1.0# + p * x)
NormDist = (1.0#  c * Math.Exp(x * x / 2.0#) * t * (t * (t * (t * (t * b5 +b4) + b3) + b2) + b1))
Else
t = 1.0# / (1.0#  p * x)
NormDist = (c * Math.Exp(x * x / 2.0#) * t * (t * (t * (t * (t * b5 +b4) + b3) + b2) + b1))
End If
End Function
'All one needs to do then Is
ValueNeeded = NormDist(Value) Marked as answer by Sunspot9393 Tuesday, January 5, 2010 5:16 AM
All replies

 Proposed as answer by Cor Ligthert Saturday, December 26, 2009 10:21 AM
 Marked as answer by Martin_XieModerator Thursday, December 31, 2009 4:43 AM
 Unmarked as answer by Sunspot9393 Tuesday, January 5, 2010 5:16 AM

Hello sunspot9393,
You may want to try the below freeware libraries :
http://www.codeplex.com/dnAnalytics
http://numerics.mathdotnet.com/
Cheers
Waleed ElBadry ,Teaching Assistant, Faculty of Engineering , Misr University for Science & Technology Proposed as answer by Cor Ligthert Saturday, December 26, 2009 10:21 AM
 Marked as answer by Martin_XieModerator Thursday, December 31, 2009 4:43 AM
 Unmarked as answer by Sunspot9393 Tuesday, January 5, 2010 5:15 AM

Found the answer:
Public Function NormDist(ByVal x As Double) As Double
Dim t As Double
Const b1 = 0.31938153
Const b2 = 0.356563782
Const b3 = 1.781477937
Const b4 = 1.821255978
Const b5 = 1.330274429
Const p = 0.2316419
Const c = 0.39894228
If x >=0 Then
t = 1.0# / (1.0# + p * x)
NormDist = (1.0#  c * Math.Exp(x * x / 2.0#) * t * (t * (t * (t * (t * b5 +b4) + b3) + b2) + b1))
Else
t = 1.0# / (1.0#  p * x)
NormDist = (c * Math.Exp(x * x / 2.0#) * t * (t * (t * (t * (t * b5 +b4) + b3) + b2) + b1))
End If
End Function
'All one needs to do then Is
ValueNeeded = NormDist(Value) Marked as answer by Sunspot9393 Tuesday, January 5, 2010 5:16 AM

Calculation of "cumulative Distribution Function" and "Normal Distribution Function" in vb.net:
Imports System.Math Module Module1 Sub Main() Dim cumulative_distribution, Normal_distribution As Double 'CDF(x, mean, standard_dev,True/False) cumulative_distribution = CDF(42, 40, 1.5, True) 'Example, Excel command for checking: =NORM.DIST(4,10,4,TRUE) Console.WriteLine("cumulative distribution: {0}", cumulative_distribution) Normal_distribution = CDF(42, 40, 1.5, False) 'Example, Excel command for checking: =NORM.DIST(4,10,4,FALSE) Console.WriteLine("Normal distribution: {0}", Normal_distribution) Console.ReadKey() End Sub Private Function CDF(ByVal x As Double, ByVal mean As Double, ByVal standard_dev As Double, ByVal cumulative As Boolean) Dim result, b, a, n, k, sigma As Double a = 0 b = x n = 100 sigma = 0 For k = 1 To n  1 sigma = sigma + f_func(a + k * (b  a) / n, mean, standard_dev) Next result = ((b  a) / n) * ((f_func(a, mean, standard_dev) / 2) + sigma + (f_func(b, mean, standard_dev) / 2)) If cumulative = False Then Return (f_func(x, mean, standard_dev)) Else Return (result) End If End Function Private Function f_func(ByVal u As Double, ByVal mean As Double, ByVal standard_dev As Double) Return ((1 / (standard_dev * Sqrt(2 * PI))) * Exp(((u  mean) ^ 2) / (2 * (standard_dev ^ 2)))) End Function End Module
