Recommend root-finder for HP 67
11-29-2019, 06:19 PM
Post: #1
 Trond Member Posts: 123 Joined: Sep 2017
Recommend root-finder for HP 67
I don't particularly like the root finder from the HP 67 standard pac. I have to insert the program lines into the other code, and it gets stuck frequently it seems. Do you have a simple end elegant root finder that you would recommend? Thanks!
11-30-2019, 03:08 AM (This post was last modified: 11-30-2019 03:10 AM by Namir.)
Post: #2
 Namir Senior Member Posts: 810 Joined: Dec 2013
RE: Recommend root-finder for HP 67
Here is the code for Newton's method for the HP-67:

Code:
Memory Map ============ R0 = Torelance R1 = x R2 = h R3 = fx(x) Listing ======= LBL A STO 1    # Store x RDN STO 0    # Store tolerance LBL 0    # start iteration loop RCL 1 PAUSE     # View curent guess for root ABS 1 + EEX 2 CHS * STO 2     # Store h RCL 1 GSB E     # calculate fx(x) STO 3 RCL 1 RCL 2 + GSB E     # calculate fx(x+h) RCL 3 - 1/X RCL 3 * RCL 2 *         # Calculate difference STO- 1    # X = X - difference ABS RCL 0 X<=Y?     # |difference| >= tolerance? GTO 0     # resume iteration RCL 1     # display x RTN LBL E     # define f(x) EXP LASTX X^2 3 * - RTN

Load the above program. Edit the code in LBL E to implement the function you want to find the root for. Then:

1) Enter the tolerance value.
2) Press Enter.
3) Enter the guess for the root.
4) Press the A key.
5) The program will display the intermediate guesses for the solution using a PAUSE statement. Then the program displays the refined guess for the root, based on the tolerance value supplied.

You can calculate fx(x) values by entering a value for x and then pressing the E key.
11-30-2019, 04:44 AM (This post was last modified: 11-30-2019 05:25 AM by Trond.)
Post: #3
 Trond Member Posts: 123 Joined: Sep 2017
RE: Recommend root-finder for HP 67
(11-30-2019 03:08 AM)Namir Wrote:  Here is the code for Newton's method for the HP-67:

Code:
Memory Map ============ R0 = Torelance R1 = x R2 = h R3 = fx(x) Listing ======= LBL A STO 1    # Store x RDN STO 0    # Store tolerance LBL 0    # start iteration loop RCL 1 PAUSE     # View curent guess for root ABS 1 + EEX 2 CHS * STO 2     # Store h RCL 1 GSB E     # calculate fx(x) STO 3 RCL 1 RCL 2 + GSB E     # calculate fx(x+h) RCL 3 - 1/X RCL 3 * RCL 2 *         # Calculate difference STO- 1    # X = X - difference ABS RCL 0 X<=Y?     # |difference| >= tolerance? GTO 0     # resume iteration RCL 1     # display x RTN LBL E     # define f(x) EXP LASTX X^2 3 * - RTN

Load the above program. Edit the code in LBL E to implement the function you want to find the root for. Then:

1) Enter the tolerance value.
2) Press Enter.
3) Enter the guess for the root.
4) Press the A key.
5) The program will display the intermediate guesses for the solution using a PAUSE statement. Then the program displays the refined guess for the root, based on the tolerance value supplied.

You can calculate fx(x) values by entering a value for x and then pressing the E key.

Thanks! I am looking in vain for "RDN", do you mean "RND"?
EDIT: ah, I guess it's "roll down"

EDIT2: and "EXP" would be yX right?

EDIT3: What needs to remain in "E"? Should it always start with LASTX, and then put my function behind that?
11-30-2019, 06:14 AM
Post: #4
 Namir Senior Member Posts: 810 Joined: Dec 2013
RE: Recommend root-finder for HP 67
EXP is e^X.

LBL E ia the label you use to code f(x)=0. In my example, f(x)=e^x-3*x^2. You can start the code for f(x) by storing the value of x in an unused register, so you can reuse it to calculate x. I chose LASTX is recall X after calculate e^x.

Namir
11-30-2019, 05:17 PM
Post: #5
 Trond Member Posts: 123 Joined: Sep 2017
RE: Recommend root-finder for HP 67
(11-30-2019 06:14 AM)Namir Wrote:  EXP is e^X.

LBL E ia the label you use to code f(x)=0. In my example, f(x)=e^x-3*x^2. You can start the code for f(x) by storing the value of x in an unused register, so you can reuse it to calculate x. I chose LASTX is recall X after calculate e^x.

Namir

Ah that makes sense. Sorry, I was a bit tired yesterday. And it works! Thank you very much!
 « Next Oldest | Next Newest »