Friday, April 19, 2019

TI-74: Five Stencil Derivative, Vertical Height on a Hill, Solving Cubic Equations

TI-74:  Five Stencil Derivative, Vertical Height on a Hill, Solving Cubic Equations

TI-74 Program: Five Stencil Derivative

This program estimates the numerical derivative of f(x) at x0 by the formula:

f'(x0) ≈ ( -f(x0+2h) + 8*f(x0+h) - 8*f(x0-h) + f(x0-2h) )/(12h)

Source:  "Five Stencil Method"  Wikipedia.  Page last edited November 8, 2018.  https://en.wikipedia.org/wiki/Five-point_stencil  Retrieved April 14, 2019

Note:  comments (after !) are for notes, and do not need to be typed. 


500 PRINT "F(X) IS ON LINE 550.": PAUSE 1: RAD  ! RAD sets radians mode
502 INPU T "X: ";A
504 INPUT "H: ";H
506 D=0: X=A+2*H: GOSUB 550
508 D=-F: X =A+H: GOSUB 550
510 D=8*F+D: X=A-H: GOSUB 550
512 D=D-8*F: X=A-2*H: GOSUB 550
514 D=(D+F)/(12*H)
516 PRINT "DF/DX =";D: PAUSE 
518 END
550 F=5.2^X  ! Insert F(X) here
552 END

Examples:

550  F=5.2^X
x0 = 1.2, h = 0.001, Result:  11.92160564

550 F=EXP(X)*SIN(X)
x0 = PI/3, h = PI/24, Result: 3.892851849

TI-74 Program:  Vertical Height on a Hill

Variables:
H = height of the observer
L = horizontal length
V = vertical angle (entered in degrees-minutes-seconds, DD.MMSSSS)
G = ground slope (entered in degrees-minutes-seconds, DD.MMSSSS)

If G>0, the hill is at an elevation.  If G<), the hill is at an depression.

T = total height = vertical difference + observer's height
T = L * (tan V - tan G) + H

Since there is no DMS to decimal conversion function in TI-74's basic, a conversion is necessary. The following is sample code where A is DMS format needed to be converted:

T = ABS(A)
D = INT(T)
M = INT((T-D)*100)
S = ((T-D)*100-M)*100
A = (D+M/60+S/3600)*SGN(A)

The program code is shown below:

600 INPUT "LENGTH: ";L
602 INPUT "OBSERVER'S HEIGHT: ";H   ! ' is SHIFT + SPACE

604 DEG: PRINT "ANGELS IN DD.MMSSSS": PAUSE 1.5
606 INPUT "VERTICAL ANGLE: ";V: A=ABS(V)
608 D=INT(A): M=INT((A-D)*100): S=((A-D)*100-M)*100
612  V=(D+M/60+S/3600)*SGN(V)

614 INPUT "GROUND SLOPE: ";G: A=ABS(G)
616 D=INT(A): M=INT((A-D)*100): S=((A-D)*100-M)*100
618 G=(D+M/60+S/3600)*SGN(G)

620 T=L*(TAN(V)-TAN(G))+H
622 PRINT "TOTAL HEIGHT =";T: PAUSE
624 END

Examples:

Input:  L: 10 m, V: 30°14'33", G: 10°30'00", H = 1.7780 m
Result:  T = 5.754638129 m

Input:  L: 10 m, V: 30°14'33", G: -10°30'00", H = 1.7780 m
Result:  T = 9.461464028 m

Source: 

F.A. Shepherd "Engineering Surveying: Problems and Solutions" 2nd Edition  Edward Arnold Publishers Ltd.  London, UK  1983 ISBN 0-7131-3478-X

TI-74 Program:  Solving Cubic Equations

This program solves the cubic equation:

A*X^3 + B*X^2 + C*X + D = 0

This program uses Newton's method to get the first root, then divides the polynomial by (x - root).  Finally the quadratic formula is used to find the other two roots.  This program assumes the coefficients A, B, C, and D are real.  An initial guess of 1 is used (can be changed, see line 710).

700 PRINT "A*X^3+B*X^2+C*X+D=0, REAL COEFS.": PAUSE 1.5
702 INPUT "A: ";A
704 INPUT "B: ";B
706 INPUT "C: ";C
708 INPUT "D: ";D

710 X=1
712 XN=X-(A*X^3+B*X^2+C*X+D)/(3*A*X^2+2*B*X+C)
714 IF ABS(XN-N)<1e-9 718="" font="" then="">
716 X=XN: GOTO 712

718 X1=XN
720 PRINT "X1 =";X1: PAUSE
722 J=-(A*X1+B)
724 K=(A*X1+B)^2-4*A*(A*X1^2+B*X1+C)
726 IF K<0 750="" font="" then="">
728 X2=(J+SQR(K))/(2*A): X3=(J-SQR(K))/(2*A)
730 PRINT "X2 =";X2: PAUSE
732 PRINT "X3 =";X3: PAUSE
734 END

750 XR=J/(2*A): XI=SQR(ABS(K))/(2*A)
752 PRINT XR;"+- ";XI;"I": PAUSE
754 END

Example:
A: 1, B: 1, C: -9, D: -9
Roots: -3, 3, 1
Eddie

All original content copyright, © 2011-2019.  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.