(Updated 7/1/12  thanks everyone!)
Edited: 1 July 2012, 4:49 p.m. after one or more responses were posted
Cubic Formula: HP 71B


« Next Oldest  Next Newest »

▼
06302012, 04:34 PM
(Updated 7/1/12  thanks everyone!) Edited: 1 July 2012, 4:49 p.m. after one or more responses were posted ▼
07012012, 12:22 PM
Hi Eddie, Thanks for sharing this interesting approach. Just for sake of precision, in your program listing, line 36 seems truncated and merged with line 38; and line 54 can be removed. Hope this helps. Best wishes. Diego. ▼
07012012, 02:17 PM
Also, there's a typo in line 30. It should be 30 P = 2*B^3  9*A*B*C + 27*A^2*D.If line 36 is changed to 36 IF A1 < 0 THEN 48it will work for his first and last examples. Assuming line 36 is correct, there's still one typo left because of the byte count (547 bytes instead of 549). There is another typo in X1 in the second example (an extra zero between 4 and 6). This will be a nice program to convert to RPN when Eddie fixes the typos. Regards, Gerson.
▼
07012012, 04:44 PM
Quote: Diego and Gerson: Thank you so much. I made the corrections. In addition to deleting line 54, I also deleted line 100. I also had to make corrections on one of the examples. The program is now 533 bytes. The link on the original post is updated. I appreciate that you pointed my errors to me. :) ▼
07012012, 06:51 PM
Eddie, Would you please doublecheck the lines 48, 50 and 52? It still doesn't work when A1<0 (your second and fourth examples). Two bytes are still missing. X1 in the second example should be 3.46050487001, not 3.406050487001. Thank you, Gerson. ▼
07022012, 08:03 AM
For Example 2 B = 4, C = 1, D = 3 I get:
A = 1 B = 2 C = 5 D = 6 I get: P = 56 Q = 19 A1 = 6075
Edited: 2 July 2012, 8:54 a.m.
07022012, 09:07 AM
Quote: Line 52 should be 52 X1 = B/(3*A)  2/(3*A) * (P1^(1/3)*COS(P2/3)) On a separate note, I edited line 68 to: 68 IF K>=0 THEN 70 ELSE 90 This corrects the display for repeated roots (Example 5) I edited the blog too.
Edited: 2 July 2012, 9:40 a.m. ▼
07022012, 12:57 PM
Hello Eddie, Thanks for the program! The algorithm will be perfect for calculators that don't have native complex numbers. Thanks also for your prompt fixing of the typos. All examples work fine now:
_{ >RUN CUBIC A,B,C,D 3,3,3,6 X1=1.99999999999 REAL= .499999999995 IMAG= .866025403772 >RUN CUBIC A,B,C,D 1,4,1,3 X1=3.46050487001 X2= .699628148275 X3=1.23912327826 >RUN CUBIC A,B,C,D 2,0,1,5 X1= 1.23477282504 REAL=.61738641252 IMAG=1.28198983892 >RUN CUBIC A,B,C,D 1,2,5,6 X1=1.99999999999 X2= 3 X3= .999999999985 >RUN CUBIC A,B,C,D 1,3,3,1 X1= 1 X2= 1 X3= 1 }
Have you considered using JeanFrançois Garnier's 68 IF K<0 THEN 90 Best regards, Gerson.
