HP Forums
Bernoulli Num,ber using Series Approximation - Printable Version

+- HP Forums (https://www.hpmuseum.org/forum)
+-- Forum: HP Software Libraries (/forum-10.html)
+--- Forum: HP-65/67/97 Software Library (/forum-12.html)
+--- Thread: Bernoulli Num,ber using Series Approximation (/thread-147.html)



Bernoulli Num,ber using Series Approximation - Namir - 12-18-2013 05:57 AM

Bernoulli Numbers using Series Approximations

Algorithm

Given integer n and tolerance toler

Code:
IF n=1 THEN Return -0.5
IF n Mod 2 = 1 THEN Return 0 

IF n=1 THEN
  RETURN -0.5 
ELSE
  sum=1 
  i=2 
  term=2*toler 
  WHILE term>toler DO
    term=1/i^n 
    sum=sum+term 
    i=i+1 
  END 
  IF n MOD 4 == 0 THEN chs=-1 ELSE chs=1
  t=chs*(n!)/pi^n/2^(n-1) 
  Return t*sum 
END


HP-41C Implementation

Memory Map

R0 = n
R1 = toler
R2 = i
R3 = Sum
R4 = term
R6 = used in LBL 0

Implementation

Code:
1 LBL A            # toler Enter n and press [A]
2 STO 0
3 X<>Y
4 STO 1
5 1
6 RCL 0
7 X=Y?
8 GTO 8
9 2
10 GSB 0            # MOD
11 1
12 X=Y?
13 GTO 9
14 1
15 STO 3      # sum = 1
16 STO 2      # i = 1
17 LBL 1      # Start summation loop
18 1
19 STO+ 2     # i=i+1
20 RCL 2
21 RCL 0
22 Y^X       
23 1/X         # Calculate 1/i^n
24 STO+ 3      # sum = sum + 1/i^n
25 RCL 0
26 X<=Y?       # toler <= term?
27 GTO 1       # resume to the next iteration
28 CF 0        # start calculating other factor
29 RCL 0
30 4
31 GSB 0
32 X=0?
33 SF 0
34 RCL 0
35 N!            # n!
36 PI
37 RCL 0
38 Y^X         # pi^n
39 /
40 2
41 RCL 0
42 1
43 -
44 Y^X          # 2^(n-1)
45 /
46 RCL 03
47 *
48 F? 0             # change sign?
49 CHS
50 CF 0        
51 RTN
52 LBL 0                 # Implement MOD operator
53 STO 6
54 X<>Y
55 STO 7
56 X<>Y
57 /
58 INT
59 RCL 6
60 *
61 RCL 7
62 X<>Y
63 -
64 RTN
65 LBL 9
66 0
67 RTN
68 LBL 8
69 0
70 .
71 5
72 CHS
73 RTN