GAMMA and BETA on the 17BII+



#4

One very annoying feature of the 17BII+ is that at some point in length of programs, the Solver just returns 0. A straight forward example can be seen using Viktor T. Toth's Calculators and the Gamma Function:


GAMMA:
(75122.6331530+80916.6278952×Z+36308.2951477×Z^2+8687.24529705×Z^3
+1168.92649479×Z^4+83.8676043424×Z^5+2.50662827511×Z^6)
÷Z÷(Z+1)÷(Z+2)÷(Z+3)÷(Z+4)÷(Z+5)÷(Z+6)
×(Z+5.5)^(Z+.5)×EXP(-(Z+5.5))
-GAMMA

Calculated GAMMA Values
1 1.0000000001
2 1
3 2
4 6.0000000002
5 23.9999999999
6 120
7 720
8 5,039.99999998
9 40,320
10 362,880


BETA:
0×L(R:P+Q-1)×L(A:75122.6331530)×L(B:80916.6278952)×L(C:36308.2951477)
×L(D:8687.24529705)×L(E:1168.92649479)×L(F:83.8676043424)×L(G:2.50662827511)
+(G(A)+G(B)×P+G(C)×P^2+G(D)×P^3+G(E)×P^4+G(F)×P^5+G(G)×P^6)
÷P÷(P+1)÷(P+2)÷(P+3)÷(P+4)÷(P+5)÷(P+6)
×(P+5.5)^(P+.5)×EXP(-(P+5.5))
×(G(A)+G(B)×Q+G(C)×Q^2+G(D)×Q^3+G(E)×Q^4+G(F)×Q^5+G(G)×Q^6)
÷Q÷(Q+1)÷(Q+2)÷(Q+3)÷(Q+4)÷(Q+5)÷(Q+6)
×(Q+5.5)^(Q+.5)×EXP(-(Q+5.5))
÷(G(A)+G(B)×G(R)+G(C)×G(R)^2+G(D)×G(R)^3+G(E)×G(R)^4+G(F)×G(R)^5+G(G)×G(R)^6)
×G(R)×(G(R)+1)×(G(R)+2)×(G(R)+3)×(G(R)+4)×(G(R)+5)×(G(R)+6)
÷((G(R)+5.5)^(G(R)+.5))÷EXP(-(G(R)+5.5))
-BETA

p = 4,
q = 5,
Exact beta = 1÷35 = .028571428571
Calculated beta = .0285714273948 (15 seconds on 19B)
Error = 1.177E-9

beta = 0 on the 17BII+


Bob


P.S. Of course, in defense of the 17BII+, one could ask "WHY would ANYONE need these on a financial calculator?" ;-)


#5

Hi Bob,

You can more than halve the size of your GAMMA and BETA Solver
equations by using the *original* Lanczos formula given in
Victor's article, rather than the form given as suitable for
programmable calculators.

Use a SUM list called GAMP, comprising the P1-P6 factors:

Item   Value
1 76.1800917295
2 -86.5053203294
3 24.0140982408
4 -1.23173957245
5 1.20865097387E-3
6 -5.39523938495E-6
Note the GAMP list totals 12.4583333242. Hopefully these
equations will work in the 17BII+ Solver:

GAMMA:
SQRT(2*PI)/Z*(Z+5.5)^(Z+.5)/EXP(Z+5.5)
*(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)/(Z+N)))
-GAMMA

BETA:
SQRT(2*PI)*(P+Q)/P/Q*EXP(-5.5)
*(P+5.5)^(P+.5)*(Q+5.5)^(Q+.5)/(P+Q+5.5)^(P+Q+.5)
*(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)/(P+N)))
*(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)/(Q+N)))
/(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)/(P+Q+N)))
-BETA

The 1+19E-11=1.00000000019 - the Lanczos P0.
Note, BETA(4,5)=3!*4!/8!=1/280.
The HP19BII solves BETA(4,5) in 4 seconds, giving
3.57142857143E-3 (exact), so it works a lot faster for the
shorter formula.

Cheers,
Tony


#6

The following GAMMA and BETA functions are based on Tony Hutchins' excellent suggestions.


Smaller, faster, AND more accurate!


Who says there's no free lunch.


Use a SUM list called GAMP, comprising the P1-P6 factors:


Item Value
1 76.1800917295
2 -86.5053203294
3 24.0140982408
4 -1.23173957245
5 1.20865097387E-3
6 -5.39523938495E-6

Note the GAMP list totals 12.4583333242.

GAMMA:
SQRT(2×PI)÷Z×(Z+5.5)^(Z+.5)÷EXP(Z+5.5)
×(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)÷(Z+N)))
-GAMMA


Calculated GAMMA Values (17BII+)
1 1.0000000001
2 .999999999986
3 2
4 5.99999999998
5 23.9999999999
6 120
7 720.000000002
8 5,039.99999999
9 40,319.9999999
10 362,880.000001

BETA:
SQRT(2×PI)×(P+Q)÷P÷Q×EXP(-5.5)
×(P+5.5)^(P+.5)×(Q+5.5)^(Q+.5)÷(P+Q+5.5)^(P+Q+.5)
×(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)÷(P+N)))
×(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)÷(Q+N)))
÷(1+19E-11+SIGMA(N:1:6:1:ITEM(GAMP:N)÷(P+Q+N)))
-BETA

p = 4
q = 5

Exact Beta = 3!×4!÷8! = 1÷280
Exact Beta = 0.00357142857142857
Calculated = 0.00357142857143 (2.8 seconds on 17BII+)
Error = 0

Bob


Possibly Related Threads…
Thread Author Replies Views Last Post
  17BII & 17BII+ Discounted Payback Period Revisited Tom Neudorfl 8 2,873 11-25-2013, 10:28 AM
Last Post: Don Shepherd
  HP15c continued fraction for Ln(Gamma) Tom Grydeland 0 1,111 09-30-2013, 05:48 AM
Last Post: Tom Grydeland
  HP Prime emulator: Gamma function Stephan Matthys 28 7,964 08-21-2013, 04:52 PM
Last Post: Namir
  What is the Gamma approximation you use? Namir 21 5,305 08-05-2013, 07:14 AM
Last Post: Namir
  SandMath routine of the week: Inverse Gamma Function Ángel Martin 39 9,500 03-24-2013, 08:19 AM
Last Post: peacecalc
  OT: Beta testers for the dark side of the universe Joerg Woerner 7 2,163 01-28-2013, 12:20 PM
Last Post: Geoff Quickfall
  CAS beta testers wanted Oliver Unter Ecker 5 2,123 07-30-2012, 07:11 AM
Last Post: Oliver Unter Ecker
  Beta 41CL --> Best CL UTILs to burn in NoVRAM 64? Gene Wright 5 2,147 07-01-2012, 03:06 PM
Last Post: Matt Kernal
  OT: Pockemul 0.9.4 Beta is out Bill (Smithville, NJ) 3 1,317 03-31-2012, 09:35 PM
Last Post: Namir
  Seeking Beta Testers... Tim Wessman 0 785 03-15-2012, 12:55 PM
Last Post: Tim Wessman

Forum Jump: