(50g) Normal Distribution

12082018, 09:28 PM
Post: #21




RE: (50g) Normal Distribution
(12082018 08:15 PM)Albert Chan Wrote: Hi, John Keith Thanks, Albert. I realize that 12 digits of precision are overkill for any realworld application. After all, if you know that the chance of some outcome is 1 in 1E60 it hardly seems necessary to know it to 12 digits! Mainly, I just like the idea of a user function being as accurate as the builtin commands. I have also learned a lot about efficient programming and numerical accuracy from your and Dieter's posts, and those of many others as well. 

12152018, 03:03 PM
(This post was last modified: 12152018 04:44 PM by Albert Chan.)
Post: #22




RE: (50g) Normal Distribution
(12082018 07:13 PM)John Keith Wrote: ... the idea of using 1ln(sqrt(2*pi)) proved to be less accurate on the HP 50 so I stuck with dividing by sqrt(2*pi) instead. For 12digits calculator, this constant is better, relative error ~ 1.25e18 k = e^{0.88453} / √(2 Pi) = 0.164726 536723 000000 206 ... => 0.164726 536723 Z(x) = exp(0.88453  B) exp(B  I²/2  I F  F²/2) * k Examples: Z(20.33333 33333) = exp(0.88453  413/2) exp(0.222222 221544) * 0.164726 536723 = 6.64644 887123 e91 Z(16.4285 714286) = exp(0.88453  269/2) exp(0.448979 592306) * 0.164726 536723 = 9.84720 298683 e60 edit: 1  ln(sqrt(2*pi)) constant had a flaw I missed. exp(1B) term might underflow to 0.0 

12152018, 08:26 PM
(This post was last modified: 12172018 01:52 AM by Albert Chan.)
Post: #23




RE: (50g) Normal Distribution
(12152018 03:03 PM)Albert Chan Wrote: k = e^{0.88453} / √(2 Pi) = 0.164726 536723 000000 206 ... => 0.164726 536723 Combine above k with 1 Exp method, revision 2, calculate Z(z): B = z*z/2 D = exp(0.88453  B) * 0.164726 536723 x = z, rounded to 5 digits h = z  x y = B  x²/2  x h  h²/2 Z(z) = D + y D Examples: Z(20.33333 33333) = 6.64644 886819 e91 + 303 ULP = 6.64644 887122 e91 Z(16.4285 714286) = 9.84720 298984 e60 − 301 ULP = 9.84720 298683 e60 

01262019, 10:01 PM
Post: #24




RE: (50g) Normal Distribution
Update: It turns out I was wrong, the HP 50g (48G and 49 as well) does have a command for the normal PDF. It's called NDIST and its right there in the MATH/PROBABILITY menu, 2nd page, along with the other distributionrelated commands. DOH!
Still, we all learned a lot about numerical accuracy in this thread, right? 

01262019, 10:12 PM
Post: #25




RE: (50g) Normal Distribution
I think sharing alternative ways, even if solutions already exists, is always helpful.
 for discussions (see precision and so on)  to collect info that solutions already exist (see ndist) that may not be known to others.  to show examples how a problem can be solved, approach that is not easy to see in a compiled library (or even a library with difficult to read open source code) In the minimal case, at least the person sharing the "redundant" solution is now part of the club "I did it too". Same as the club of "I solved it too" when there is a problem to solve of which the solution is known. Therefore kudos. Wikis are great, Contribute :) 

« Next Oldest  Next Newest »

User(s) browsing this thread: 1 Guest(s)