Post Reply 
Finding Min/Max of a function for HP-41C
03-10-2014, 05:56 PM
Post: #1
Finding Min/Max of a function for HP-41C
Finding the minimum/maximum of a function using Newton's method.

Memory Map

R00 = tolerance
R01 = x
R02 = h
R03 = f(x), f''(x)
R04 = f(x+h)
R05 = f(x-h)

HP-41C Implementation

Code:
1 LBL "MINMAX"
2 LBL A
3 "X?"
4 PROMPT
5 STO 01
6 "TOLER?"
7 CF 22
8 PROMPT
9 FC? 22
10 1E-6
11 STO 00
12 LBL 00
13 RCL 01
14 PSE
15 ABS
16 +
17 0.001
18 *
19 STO 02     # calculate and store h
20 RCL 01
21 XEQ E
22 STO 03     # Calculate and store f(x)
23 RCL 01
24 RCL 02
25 +
26 XEQ E
27 STO 04     # Calculate and store f(x+h)
28 RCL 01
29 RCL 02
30 -
31 XEQ E
32 STO 05     # Calculate and store f(x-h)
33 RCL 04
34 +
35 RCL 03
36 2
37 *
38 -
39 RCL 02
40 X^2
41 /
42 STO 03     # calculate and store f''(x)
43 RCL 04
44 RCL 05
45 -
46 RCL 02
47 /
48 2         
49 /         # calculate f'(x)
50 RCL 03
51 /         # calculate diff
52 STO- 01    # x = x - diff
53 ABS
54 RCL 00
55 X<=Y?
56 GTO 00
57 RCL 01
58 "X="
59 ARCL X
60 PROMPT
61 RTN
62 LBL E
63 EXP
64 LASTX
65 X^2
66 3
67 *
68 -
69 RTN

Usage

LBL E has the code for the function whose minimum or maximum you seek.

1) Start the program by pressing [A].
2) The program prompts you for a guess using "X?". Enter a guess for the minimum/maximum and press [R/S].
3) The program prompts you for he tolerance using "TOLER?". Enter the tolerance and press [R/S].
4) The program pauses showing intermediate values for the refined min/max values. When the program has reached the tolerance level it displays the value of the X for the min/max value.
Find all posts by this user
Quote this message in a reply
Post Reply 




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