This program is by Tizedes Csaba and is used here by permission.
This program is supplied without representation or warranty of any kind. Tizedes Csaba and The Museum of HP Calculators therefore assume no responsibility and shall have no liability, consequential or otherwise, of any kind arising from the use of this program material or any part thereof.
Only one problem with it, it's solve JUST REAL ROOTS...
An example:
Solve this polynom with this program:
-2*x^6 -6*x^5 +82*x^4 +174*x^3 -800*x^2 -888*x +1440 =0
A*X^6 +B*X^5 +C*X^4 +D*X^3 +E*X^2 +F*X +G =0
In the program the coefficients are A, B, C, ... The limit of order N=12, because the 14th variable is N, and we use this variable for the order of solved polynom. If you replace it with Z, you can solve the 24th order of polynomials (if the memory is not full). And it's not a joke...
Now, start the program: [XEQ S] the calc prompting for order of polynom:
N? type 6 [R/S].
Then the program prompts for all of coefficients, type it in decrease order:
A? -2 [R/S] B? -6 [R/S] C? 82 [R/S] D? 174 [R/S] E? -800 [R/S] F? -888 [R/S] G? 1440 [R/S]
Then you will see the 'RUNNING/SOLVING' message, and the program stops with one of six roots: for example X=1. Press [R/S], and you'll see N=5 this mean, the polynom's got 5 root yet. Press [R/S] and repeat this method until all of roots founded.
When N=0 press [R/S], the 'flag1' anunciator set and program end. 'flag1' set mean, all of roots was real.
This polynom got 6 real roots: 1, -2, 3, -4, 5, -6, and the simplyfied form is: -2*(x-1)*(x+2)*(x-3)*(x+4)*(x-5)*(x+6)
If the program stops and 'flag0' is set, that means, the polynom got non real root(s). Number of it's are equal the last displayed N.
E01 LBL E #prepare of 'i'
FIX 3
RCL N
1
add
1E3
div
1
add
RND
STO i
0
E13 RTN
P01 LBL P #the 'dinamical polynom'
XEQ E
H01 LBL H #Horner's method
RCL mul X
RCL add (i)
ISG i
GTO H
H06 RTN
X01 LBL X #polynom solver
SOLVE X
GTO R #if found root goto 'R'
SF 0 #no real root, set flag 0
X05 RTN
D01 LBL D #decrement polynom order,
XEQ E
J01 LBL J #use a little modified Horner method
RCL mul X
RCL add (i)
STO (i) #overwrite coefficients
ISG i #with decremented polyn.'s coefficients
GTO J
J07 GTO X
S01 LBL S #start-routine
CF 0
CF 1
INPUT N
S05 XEQ E
I01 LBL I #coefficient input-routine
INPUT (i)
ISG i
GTO I
FN= P
I06 GTO X
R01 LBL R #we found a root
VIEW X
1
STO sub N
VIEW N #number of roots, what we dont found yet
RCL N
x<>0? #more root?
GTO D #go decrement order, and solve again
SF 1 #no more root, and all was REAL: set flag 1
R10 RTN
'add', 'sub', 'mul' and 'div' mean 'add', 'substract', 'multiply' and 'divide' in this order.
The checksums:
E:CK=0BE8 27.5 byte
P:CK=E452 3.0 byte
H:CK=3E78 9.0 byte
X:CK=3894 7.5 byte
D:CK=11DF 3.0 byte
J:CK=C765 10.5 byte
S:CK=BB8E 7.5 byte
I:CK=32B5 9.0 byte
R:CK=E775 15.0 byte
Go back to the software library
Go
back to the main exhibit hall