Sunday, May 31, 2020

HP12C: Rational Fractions and Horner's Method

HP12C: Rational Fractions and Horner's Method

Introduction

Here are three examples on how Horner's Method can be used to quickly calculate rational fractions with polynomials.   The program code is presented for the HP 12C.

Horner's rule involves repeated factoring until the polynomial is represented as a multiplication of polynomials.  The idea is to make it easier for some scientific calculators and four-function calculators to evaluate polynomials.  Using Horner's Method for the generic cubic polynomial:

a * t^3 + b * t^2 + c * t + d
t * (a * t^2 + b * t + c) + d
t * (t * (a * t + b) + c ) + d

On an RPN keystroke calculator, such as the HP 12C a possible code would look like:

STO  t   (from the X stack)
RCL a
*
RCL b
+
RCL t
*
RCL c
+
RCL t
*
RCL d
+
RTN

For the code below, the HP 12C uses the following registers:

R0 = x

R1 = a
R2 = b
R3 = c
R4 = d
R5 = e
R6 = f
R7 = g

All but x need to be stored ahead of time before running (you can change the code to suit your needs, of course).  x is entered before pressing [ R/S ].

For all of our numerical examples, I assigned the following values:

R0 = 1.72

R1 = 6
R2 = 3
R3 = 4
R4 = 5
R5 = 3
R6 = 1
R7 = 8

Example 1

(ax + b) / (cx^2 + dx + e) = (ax + b) / (x * (cx + d) + e)

Program  (key:  key code) - 16 steps

STO 0:  44, 0
RCL 1:  45,1
  *   :  20
RCL 2:  45, 2
  +  :  40
RCL 0:  45, 0
RCL 3:  45, 3
  *  :   20
RCL 4:  45, 4
  +  :  40
RCL 0:  45, 0
  *  :  20
RCL 5:  45, 5
  +  :  40
  ÷  :  10
GTO 00:  43, 33, 00

Result with variables stored above (FIX 4):  0.5684

Example 2

(ax + b) / (cx^3 + dx^ 2 + ex + f) = (ax + b) / (x * (x * (cx + d) + e) + f)

Program  (key:  key code) - 20 steps

STO 0:  44, 0
RCL 1:  45,1
  *   :  20
RCL 2:  45, 2
  +  :  40
RCL 0:  45, 0
RCL 3:  45, 3
  *  :   20
RCL 4:  45, 4
  +  :  40
RCL 0:  45, 0
  *  :  20
RCL 5:  45, 5
  +  :  40
RCL 0:  45, 0
  *  :  20
RCL 6:  45, 6
  +  :  40
  ÷  :  10
GTO 00:  43, 33, 00

Result with variables stored above (FIX 4):  0.3225

Example 3

(ax^2 + bx + c) / (dx^3 + ex^2 + fx + g)
= (x * (ax + b) + c) / (x * (x * (dx + e) + f) + g)

Program  (key:  key code) - 24 steps

STO 0:  44, 0
RCL 1:  45,1
  *   :  20
RCL 2:  45, 2
  +  :  40
RCL 0:  45, 0
RCL 3:  45, 3
  *  :   20
RCL 4:  45, 4
  +  :  40
RCL 0:  45, 0
  *  :  20
RCL 5:  45, 5
  +  :  40
RCL 0:  45, 0
  *  :  20
RCL 6:  45, 6
  +  :  40
RCL 0:  45, 0
  *   :  20
RCL 7:  45, 7
  +  :  40
  ÷  :  10
GTO 00:  43, 33, 00

Result with variables stored above (FIX 4):  0.6111


Eddie

All original content copyright, © 2011-2020.  Edward Shore.   Unauthorized use and/or unauthorized distribution for commercial purposes without express and written permission from the author is strictly prohibited.  This blog entry may be distributed for noncommercial purposes, provided that full credit is given to the author.