Friday, July 5, 2013

Spherical Triangle Solver - TI-84+

Spherical Triangle Solver: Programmed on a TI-84+ C Silver Edition

This could easily be ported to other programming calculators given how basic the TI-84+ programming is.

Variables:
"Sides" (Subtending Angles): X, Y, Z
Corresponding Angles: A, B, C

I try to capture all possible traps. No guarantees by I try. This program is rather large, about 1,500 bytes. Ending quotes and parenthesis can be left out on the TI-84+ but I present them in the text for completeness.

PROGRAM: SPHTRI
: Lbl 0
: ClrHome
: Output(1,1,"ANGLE (θ),SIDE")
: Output(2,1,"A, X")
: Output(3,1,"B, Y")
: Output(4,1,"C, Z")
: Output(6,1,"PRESS ENTER TO GO ON")
: Pause
: ClrHome
: Menu("KNOWN:","3 SIDES",1,
"2 S,INT θ (X,Y,C)",2,
"2 S,EXT θ (Y,Z,B)",3,
"1 S,2 ADJ θ (Z,A,B)",4,
"2 θS, ADJ SIDE (X,A,B)",5,
"3 ANGLES", 6
"EXIT",7)

: Lbl 1
: Input "SIDE X:", X
: Input "SIDE Y:", Y
: Input "SIDE Z:", Z
: If X+Y+Z>360°
: Then
: Disp "NO SOLN"
: Pause
: Goto 0
: End
: cos^-1 (( cos(X) - cos(Y) cos(Z) )/( sin(Y) sin(Z) )→ A
: cos^-1 (( cos(Y) - cos(X) cos(Z) )/( sin(X) sin(Z) )→ B
: cos^-1 (( cos(Z) - cos(X) cos(Y) )/( sin(X) sin (Y) )→ C
: Disp "A,B,C:",A,B,C
: Pause
: Goto 0

: Lbl 2
: Input "SIDE X:", X
: Input "SIDE Y:", Y
: Input "θ BETWEEN C:", C
: cos^-1 ( cos(X) cos(Y) + sin(X) sin(Y) cos(C) ) → Z
: sin^-1 ( sin(C) sin(X) / sin(Z) ) → A
: sin^-1 ( sin(C) sin(Y) / sin(Z) ) → B
: Disp "Z,A,B:",Z,A,B
: Pause
: Goto 0

: Lbl 3
: Input "SIDE Y:", Y
: Input "CORR. θ B:", B
: Input "ADJ. SIDE Z:", Z
: If Y < sin^-1 (sin(Z) sin(B) )
: Then
: Disp "NO SOLN."
: Pause
: Goto 0
: End
: sin^-1 ( sin(Z) sin(B) / sin(Y) ) → C
: 2 tan^-1 ( tan(.5Y - .5Z) sin(.5B + .5C) / sin(.5B - .5C) ) → X
: 2 tan^-1 ( sin(.5Y - .5Z) / tan(.5B - .5C) / sin(.5Y + .5Z) ) → A
: Disp "C,X,A:",C,X,A
: Pause
: If Y: Then
: 180° - C → S
: 2 tan^-1 (tan(.5Y - .5Z) sin(.5B + .5C) / sin(.5B - .5C) ) → T
: 2 tan^-1 (sin(.5Y - .5Z) / tan(.5B - .5S) / sin(.5Y + .5Z) ) → U
: Disp "ALT C,X,A:",S,T,U
: Pause
: End
: Goto 0

: Lbl 4
: Input "θ A:", A
: Input "θ B:", B
: Input "SIDE BETWEEN Z:", Z
: cos^-1 ( sin(A) sin(B) cos(Z) - cos(A) cos(B) ) → C
: cos^-1 ( (cos(A) + cos(B) cos(C)) / (sin(B) sin(C)) → X
: cos^-1 ( (cos(B) + cos(A) cos(C)) / (sin(A) sin(C)) → Y
: Disp "C,X,Y:",C,X,Y
: Pause
: Goto 0

: Lbl 5
: Input "θ A:", A
: Input "CORR. SIDE X:", X
: Input "ADJ θ B:", B
: sin^-1 (sin(X) sin(B) / sin(A) ) → Y
: 2 tan^-1 (tan(.5X-.5Y) sin(.5A+.5B) / sin(.5A-.5B)) → Z
: 2 tan^-1 (sin(.5X-.5Y) / tan(.5A-.5B) / sin(.5X+.5Y)) → C
: Disp "Y,C,Z:", Y,C,Z
: Pause
: Goto 0

: Lbl 6
: Input "θ A:", A
: Input "θ B:", B
: Input "θ C:", C
: If A+B+C<180° or A+B+C>540°
: Then
: Disp "NO SOLN."
: Goto 0
: Pause
: End
: Prompt A,B,C
: cos^-1 ((cos(A) + cos(B) cos(C))/(sin(B) sin(C)) → X
: cos^-1 ((cos(B) + cos(A) cos(C))/(sin(A) sin(C))→ Y
: cos^-1 ((cos(C) + cos(A) cos(B))/(sin(A) sin(B)) → Z
: Disp "X,Y,Z:",X,Y,Z
: Pause
: Goto 0

: Lbl 7

Sources:

Wikipedia: Solutions of Triangles
http://en.wikipedia.org/wiki/Solution_of_triangles#Solving_spherical_triangles

Had To Know: Spherical Trigonometry Calculator
http://www.had2know.com/academics/spherical-trigonometry-calculator.html

Examples - in Degrees Mode:

1. Given 3 Sides:
X: 34.49°
Y: 28.11°
Z: 29.00°
Solutions:
A: 76.64274255°
B: 54.05239674°
C: 56.40782913°

2. Given 2 Side with Interior Angle
X: 5.58°
Y: 7.24°
C: 164°
Solutions:
Z: 12.69684035°
A: 7.004143971°
B: 9.093527785°

3. Given 2 Sides with Exterior (Adjacent) Angle:
Y: 14.41°
B: 77.97°
Z: 18.00°
No Solution

Y: 7.09°
B: 44.8°
Z: 6.36°
Solutions:
C: 39.22735167°
X: 10.02551866°
A: 96.36477875°

4. Given 1 side and 2 adjacent angles
A: 75°
B: 88°
Z: 4.53°
Solutions:
C: 17.58132838°
X: 14.62939892°
Y: 15.14817154°


5. Given 2 Angles and 1 adjacent side
A: 103°
X: 2.66°
B: 71°
Solutions:
Y: 2.581182188°
C: 6.006268443°
Z: .2855550692°

6. Given 3 interior angles
A: 89°
B: 66°
C: 70°
Solutions:
X: 79.49157643°
Y: 63.94337829°
Z: 67.52897419°



This blog is property of Edward Shore. 2013

Solving Simple Arcsine and Arccosine Equations

  Solving Simple Arcsine and Arccosine Equations Angle Measure This document will focus on angle measurement in degrees. For radia...