943,866 Members | Top Members by Rank

Ad:
  • C# Discussion Thread
  • Unsolved
  • Views: 7581
  • C# RSS
Aug 20th, 2009
0

normal distribution formula in c# ?

Expand Post »
Hi All,
I'm trying to implement the NORMSDIST function of MS excel in the C#. I found its implementation from the following link.
http://office.microsoft.com/en-us/ex...091941033.aspx

and I've written the following code for this i.e.

C# Syntax (Toggle Plain Text)
  1. static double NORMSDIST(double z_score)
  2. {
  3. double z_ = - ( (z_score * z_score) / 2 );
  4. double normDist = (1 / ((Math.Sqrt(2 * Math.PI)))) * ( Math.Exp(z_) );
  5.  
  6. return normDist;
  7. }

unfortunately this isn't giving me the correct result, can someone point out for me what m i missing in here?

thanks in advance.
Last edited by John A; Aug 21st, 2009 at 12:57 am. Reason: added code tags
Similar Threads
Reputation Points: 10
Solved Threads: 0
Newbie Poster
afr0 is offline Offline
2 posts
since Aug 2009
Aug 20th, 2009
0

Re: normal distribution formula in c# ?

Your code is correct but it gives the value if cumulative is false.
The excel example gives the value when cumulative is true.
I don't have your function in my Excel version, just simlated it with a similar function and setting mu to zero and sigma to one.
Hope this helps a bit.
Reputation Points: 2035
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,740 posts
since Oct 2008
Aug 20th, 2009
0

Re: normal distribution formula in c# ?

Forgot to notice this was your first post!
Welcome to Daniweb afr0!
Try to use code tags when you post code.
I use underscores sometimes but, I would never use them in math formulas. It is confusing, I did not notice your unary minus at first.
You also use a few parenthesis to many.
This code (with code tags!) shows it(I think it is much more clearer to read):
c# Syntax (Toggle Plain Text)
  1. static double NORMSDIST(double Zscore)
  2. {
  3. double Z = -(Zscore * Zscore) / 2;
  4. double normDist = (1 / Math.Sqrt(2 * Math.PI)) * (Math.Exp(Z));
  5.  
  6. return normDist;
  7. }
Reputation Points: 2035
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,740 posts
since Oct 2008
Aug 21st, 2009
0

Re: normal distribution formula in c# ?

I'm using 2007 office suite. but can you tell me how can i set cumulative to true. From the given formula that i provided the link i couldn't see any such flag. can provide that formula ?

thanks.
Reputation Points: 10
Solved Threads: 0
Newbie Poster
afr0 is offline Offline
2 posts
since Aug 2009
Aug 21st, 2009
0

Re: normal distribution formula in c# ?

I have a 2003 version of Excel with this : NORMDIST(x,mean,stddev,cumulative) Cumulative can be true or false.
Your C# function returns the y value for x under the bell curve, so it is not cumulative.
If you want a cumulative function, you have to calculate the area under the bell curve from minus infinity up to the value of x. Perhaps you already have an algoritm to do that?
Reputation Points: 2035
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,740 posts
since Oct 2008
Aug 22nd, 2009
0

Re: normal distribution formula in c# ?

Perhaps you can do something(as a start) with this snippet
Just plug in your function and play with some parameters to get the results you want.
Last edited by ddanbe; Aug 22nd, 2009 at 10:29 am.
Reputation Points: 2035
Solved Threads: 644
Senior Poster
ddanbe is offline Offline
3,740 posts
since Oct 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C# Forum Timeline: How to interact c# windows applicationwith flash?
Next Thread in C# Forum Timeline: Comma quirk in C#





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC