Thursday, February 28, 2019

HP 12C: ARM Term if Renewed

HP 12C:  ARM Term if Renewed

Introduction

Situation:  An ARM Mortgage has one rate adjustment.  The mortgage calls for the payment to remain the same for the entire mortgage, even after the rate adjustment.  How long will it take to pay off the mortgage?  Specifically, how long will it take after the rate is adjusted (ARM term)? 

Example 1:

Original term: 30 years ( n = 360 )
Interest rate: 6%  ( i = 6/12 )
The interest rate scheduled to increase 0.25% in 4 years.

HP 12C Procedure

Any loan amount will do for this problem.  We'll use $1 for the loan amount in this example since we're only concerned with the ARM term.

Keystrokes:

(FIX 4 is set)

1.  Find the payment of the original mortgage.

Clear Finance Registers:   [ f ] [ x<>y ] (CLEAR FIN)
1 [ PV ]
30 [ g ] (12x) [ n ]
6 [ g ] (12÷) [ i ]
[PMT]   (Result:  -0.0060)

2.  Determine the balance of the mortgage at the date when the mortgage is adjusted (4 years).

4 [ g ] (12x) [ n ]
[ FV ]  (Result:  -0.9461)

3.  Transfer the balance to the new mortgage amount and enter the adjusted mortgage rate.

[CHS] [ PV ]
0 [ FV ]
[RCL] [ i ] 0.25 [ENTER] 12 [ ÷ ] [ + ] [ i ]
[ n ] (Result:  333.0000)

If the payment is kept the same, it would take another 333 payments to pay off the mortgage.  The ARM Term is 333.

The total time it takes to pay the mortgage is:

Pre-Adjustment Term + ARM Term

In this case, 381 payments (48 + 333).

The program presented here will calculate the ARM term.  This makes the assumption that the mortgage is only adjusted one time during its entire life.  This is similar to looking up the financial table ARM Term If Renewed Table (refer to source).

HP 12C Program:  ARM Term if Renewed

Keys:

01  1      
02  PV
03  0
04  FV
05  PMT
06  RCL 1 
07  n
08  FV
09  CHS
10  PV
11  0
12  FV
13  RCL i
14  RCL 2
15  +
16  i 
17  n
18 GTO 00   (HP 12C Platinum: GTO 000)

Key Codes:

01  1
02  13
03  0
04  15
05  14
06  45, 1
07  11
08  15
09  16
10  13
11  0
12  15
13  45, 12
14  45, 2
15  40
16  12
17  11
18  43, 33, 00  (HP 12C Platinum:  43, 33, 000)

Instructions:

Store the original number of periods in [ n ]
Store the original periodic interest rate in [ i ]
Store the number of months before the rate adjusts in R1.
Store the periodic adjustment (±r%) in R2.
Press [ R/S ]

Example:

Original term: 35 years
Original rate: 4.5%
The rate is adjusts +0.3% in 5 years.

35 [ g ] [ n ] (12x)
4.5 [ g ] [ i ] (12÷)
5 [ENTER] 12 [ x ] [STO] 1
0.3 [ENTER] 12 [ ÷ ] [STO] 2
[ R/S ]

Result:  391

The ARM term is 391 months.

Source:

Lincoln Title Company "Financial Conventional and ARM Payment Tables" Publication No. 493. Special Edition.  Financial Publishing Company: Boston, MA. May 1985 ISBN 0-87600-493-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.

Tuesday, February 26, 2019

HP Prime and HP 42S: Mathematical Pixel Art

HP Prime and HP 42S: Mathematical Pixel Art

HP Prime 

Blue Diamond
Lake

Prime Pixel - Tree Trunk
Yin Yang

HP 42S/DM 42/Free42

Printouts

Screenshots from Free42:

Cat Pixel

Dog Pixel

Pisces Pixel

Question Block Pixel

The code for these files are here:  https://drive.google.com/file/d/14IyWsNZWY0ptxen-lLIFvOvzRHjhJuyA/view?usp=sharing

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.


Saturday, February 23, 2019

HP Prime: Determining the Date For a Phase of Earth's Moon

HP Prime:  Determining the Date For a Phase of Earth's Moon

Introduction

The program MOONDATE determines when a desired phase of Earth's moon given month and year.  The four phases of the moon available are:

New Moon  (0.00)
1st Quarter (0.25)
Full Moon (0.50)
3rd Quarter (0.75)

The following equations are used:

Let  y = year, m = month, t = type (see the above)

y' = y + (m -1)/12
k = integer( (y - 2000) * 12.3685) + t/4
t = k/1236.85

J = 2451550.09765 + 29.530588853 * k + (1.337 * 10^-4) * t^2 - (1.5 * 10^-7) *t^3 + (7.3 * 10^-10) * t^4

J is the Julian Date and will need to be converted to the Gregorian Date.  With the DATE+ function, the HP Prime makes this easy.  Look to Dieter's post on this thread for details, link:  http://www.hpmuseum.org/forum/thread-12184.html?highlight=julian+date

Caution:  This program is designed to work with all dates after January 1, 2000.  If you choose any dates before, you may have to adjust the month

HP Prime Program MOONDATE

EXPORT MOONDATE()
BEGIN
// EWS 2019-02-19
LOCAL P,Y,K,M,T,l,c,s;
LOCAL J,D,N,R;
l:={"New","First Qtr","Full",
"Third Qtr"};
INPUT(
{Y,
{M,{1,2,3,4,5,6,7,8,9,10,11,12}}
,{c,l}},
"Moon Phase Date",
{"Year: ","Month:","Stage:"});
s:=(c-1)/4;
N:=M;

REPEAT 
R:=Y+(N-1)/12;
K:=IP((R-2000)*12.3685)+s;
T:=K/1236.85;
J:=2451550.09765+29.530588853*K
+1.337ᴇ−4*T^2-1.5ᴇ−7*T^3
+7.3ᴇ−10*T^4;
J:=IP(J)-2451545;
D:=DATEADD(2000.0101,J);
N:=N+1;
UNTIL D≥(Y+M/100);

RETURN D;
END;

Note:  You can use an alternate of 1/1/2000 (date code 2000.0101) with corresponding Julian Date 2451545.

Example:

January 2019:
New:  2019.0105 (1/5/2019)
1st Qtr: 2019.0113 (1/13/2019)
Full: 2019.0120 (1/20/2019)
3rd Qtr: 2019.0127 (1/27/2019)

Source:
Meeus, Jean.  "Astronomical Algorithms"  Willmann-Bell, Inc.:  Richmond, VA  1991  ISBN 0-943396-35-2

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.


Sunday, February 17, 2019

HP 42S/DM 42/Free42: Function Table


HP 42S/DM 42/Free42: Function Table

Introduction

The program FTAB uses the function defined in FX, with variable “X” to generate a 2 column matrix of f(X). The matrix is stored in variable MATS. The program ends with MATS in edit mode, so you see all the points generated. Use the soft key [ → ] to view the entries.

Setting up FX

To set up the function FX, the program needs to be in the following format:

00 {nnn-Byte Prgm}
01 LBL “FX”
02 MVAR “X”
03 f(X) starts here, use RCL “X” for X
nn-1 RTN
nn END

HP 42S Program FTAB
HP 42S, DM 42, Free42

00 { 99-Byte Prgm }
01▸LBL "FTAB"
02 "X Start:"
03 PROMPT
04 STO 01
05 "X Step:"
06 PROMPT
07 STO 02
08 "# Steps:"
09 PROMPT
10 STO 03
11 1
12 -
13 1ᴇ3
14 ÷
15 STO 04
16 RCL 03
17 2
18 DIM "MATF"
19 INDEX "MATF"
20▸LBL 00
21 RCL 01
22 RCL 04
23 IP
24 RCL× 02
25 +
26 STO "X"
27 STOEL
28 J+
29 XEQ "FX"
30 STOEL
31 J-
32 I+
33 ISG 04
34 GTO 00
35 EDITN "MATF"
36 .END.

Example

f(x) = x^2 * e^x

FX:
00 { 18-Byte Prgm }
01▸LBL "FX"
02 MVAR "X"
03 RCL "X"
04 ENTER
05 X↑2
06 X<>Y
07 E↑X
08 ×
09 RTN
10 .END.


Input:
X Start: 0
X Step: 0.1
# Steps: 10

Result Matrix MATS:

MATF= [ 10x2 Matrix ]
1:1= 0.0000
1:2= 0.0000
2:1= 0.1000
2:2= 0.0111
3:1= 0.2000
3:2= 0.0489
4:1= 0.3000
4:2= 0.1215
5:1= 0.4000
5:2= 0.2387
6:1= 0.5000
6:2= 0.4122
7:1= 0.6000
7:2= 0.6560
8:1= 0.7000
8:2= 0.9867
9:1= 0.8000
9:2= 1.4243
10:1= 0.9000
10:2= 1.9923

Matrix (row:column)

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.

HP Prime and TI-86: Minimum Vertical Curve Length


HP Prime and TI-86: Minimum Vertical Curve Length

Introduction

The program MVCL calculates the minimum vertical curve length for sight distances for crest curves (curve that rises then falls) and sag curves (curves that falls than rises). The equations used were determined by the AASHTO (American Association of Highway and Transportation Officials of Washington, D.C.).

HP Prime Program MVCL

EXPORT MVCL()
BEGIN
// Minimum stop speed
LOCAL g1,g2,a,c,l,s,g;

MSGBOX("Break = 2.5 s,
 Decel = 11.2 ft/s^2");

LOCAL l1:={15,20,25,30,35,40,45,
50,55,60,65,70,75,80};

LOCAL l2:={80,115,155,200,250,
305,360,425,495,570,645,730,
820,910};

INPUT({g1,g2,{c,l1}},"MVCL",
{"Grade1%:","Grade2%:",
"Speed:"});

s:=l2(c);
a:=ABS(g1-g2);

l:=2*s-2158/a;
IF s < l
l:=a*s^2/2158;
END;

g:=2*s-(400+3.5*s)/a;
IF s < g
g:=(a*s^2)/(400+3.5*s);
END;

PRINT();
PRINT("Stop speed (ft)");
PRINT("Crest curve: "+l);
PRINT("Sag curve: "+g);


END;

TI-86 Program MVCL
(744 bytes)

Input “GRADE %1:”, G1
Input “GRADE %2:”, G2
abs(G2-G1) → A
Disp “Break time = 2.5s”, “Decl. = 11.2 ft/s²”,
Car Speed?”,”(mph)”

Menu(1,”15”,A,2,”20”,B,
3,”25”,C,4,”30”,D,
5,”35”,E,6,”40”,F,
7,”45”,G,8,”50”,H,
9,”55”,I,10,”60”,J,
11,”65”,K,12,”70”,L,
13,”75”,M,14,”80”,N)

Lbl A : 80 → S : Goto Z
Lbl B : 115 → S : Goto Z
Lbl C : 155 → S : Goto Z
Lbl D : 200 → S : Goto Z
Lbl E : 250 → S : Goto Z
Lbl F : 305 → S : Goto Z
Lbl G : 360 → S : Goto Z
Lbl H : 425 → S : Goto Z
Lbl I : 495 → S : Goto Z
Lbl J : 570 → S : Goto Z
Lbl K : 645 → S : Goto Z
Lbl L : 730 → S : Goto Z
Lbl M : 820 → S : Goto Z
Lbl N : 910 → S : Goto Z

Lbl Z
Disp “Stop speed (ft)”, “crest curve:”
2 * S – 2158 / A → L
If S > L
Then
Disp L
Else
A * S² / 2158 → L
Disp L
End
Disp “sag curve:”
2 * S – (400 + 3.5 * S) / A → G
If S > G
Then
Disp G
Else
(A * S²) / (400 + 3.5 * S) → G
Disp G
End

Examples:

Example 1:
Grade 1: -1.75%
Grade 2: 2.25%
Design Speed: 40 mph

Result:
Minimum Vertical Curve Length
Crest Curve: 70.5 ft
Sag Curve: 243.125 ft

Example 2:
Grade 1: -1%
Grade 2: 1.7%
Design Speed: 50 mph

Result:
Minimum Vertical Curve Length
Crest Curve: 50.740740741 ft
Sag Curve: 150.925925926 ft

Source:

Michael R. Lindberg, PE “Civil Engineering Reference Manual for the PE Exam” 11th Ed. Professional Publications, Inc: Belmont, CA. 2008. ISBN 13-978-1-59126-192-2

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.


Friday, February 15, 2019

TI-86: Sequence Graphing


TI-86: Sequence Graphing

The program Sequen86 plots one recursive sequence with one initial condition. The function is stored in variable y1, with x presenting y1(n-1). The initial condition is assumed to be y1(1).

This program was originally posted on ticalc.org on April 28, 2001. Link: https://www.ticalc.org/archives/files/fileinfo/186/18667.html

18 years, wow, how time flies.

TI-86 Program Sequen86
(354 bytes)

Func
FnOff
PlOff
ClLCD
DelVar(L1)
DelVar(L2)
Outpt(6,1,”Let y1 = u”)
Outpt(7,1,”Let x = n-1”)
InpSt “y1 =”, Y
St>Eq(Y,y1)
Input “Initial Cond: “,I
Input “# of Steps: “,S
{I} → U
For(N, dimL U+1, S+1, 1)
y1(U(N-1)) → U(N)
End
seq(x,x,1,S+1) → L1
U → L2
0 → xMin
S+1 → xMax
min(U) – 1 → yMin
max(U) + 1 → yMax
Plot1(1,L1,L2)
FnOff 1
Disp “L1 = n”
Pause “L2 = u”
DispG


Example:

u(n) = u(n-1)/3 + 1/4
Initial condition, u(1) = 1/5
Number of Steps: 10

Set up for Sequen86:
y1 = x/3 + 1/4




The 2019 Version

Here is an alternate version, SEQGRAPH. Use U for U(n-1) and N for n. The program allows the initial condition for any value of N.

TI-86 Program SEQGRAPH
(277 bytes)

InpSt “U1(U,N) = “,S1
St>Eq(S1,U1)
Input “N Start = “,N
Input “U0 = “,U
Input “Steps: “,S
S + 1 → dimL xList
S + 1 → dimL yList
N → xList(1)
U → yList(1)
For(I, 2, S+1)
xList(I-1) + 1 → N
N → xList(I)
yList(I-1) → U
U1 → yList(I)
End
FnOff
PlOff
PlOn 1
Plot1(1,xList,yList)
ZData

Example:

u(n) = u(n-1)/3 + 1/4
Initial condition, u(1) = 1/5
Number of Steps: 10

Set up for SEQGRAPH:
U1 = U/3 + 1/4
N Start: 1
U0 = 1/5 (initial condition)



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.

Thursday, February 14, 2019

TI-86: Angle Between Vectors, Vandermonde Matrix, Least Squares Algorithm, Chebyshev Polynomials (1st Kind)


TI-86: Angle Between Vectors, Vandermonde Matrix, Least Squares Algorithm, Chebyshev Polynomials (1st Kind)

The TI-86 has one of the best interfaces for a graphing calculator I ever had the joy to work with. The TI-86 is an update of the TI-85. Here are some programs for the TI-86.

Angle Between Vectors

The program vangle calculates the angle between two angles. The angle is calculated in degrees.



TI-86 Program vangle
(75 bytes)

Prompt V1
Prompt V2
Disp cos⁻¹ (dot(V1,V2)/(norm V1*V2))

Example: [2, -3, 4] and [8, 1, -2]
Angle: 83.5823268926°

Vandermonde Matrix

The program vander creates a matrix based on a list of coefficients.

Example: {x, y, z} produces the matrix

[ [x^0, x^1, x^2], [y^0, y^1, y^2], [z^0, z^1, z^2] ]



TI-86 Program vander
(125 bytes)

Input “List: “, L1
dimL L1 → N
{N, N} → dimL MA
For(R, 1, N)
For(C, 1, N)
L1(R)^(C-1) → MA(R,C)
End
End
Disp “MA=”
Pause MA

Example: {2, 4, 7}
Result: [ [1, 2, 4], [1, 4, 16], [1, 7, 49] ]

Least Square Algorithm

The program LSQ taxes the matrices X and Y (Y is a one-column matrix), and calculates
(X^T X)^-1 (X^T Y).

LSQ is used to fit statistical fits with least squares.



TI-86 Program LSQ
(118 bytes)

Disp “Least Squares”
Input “Matrix X: “,MX
Input “Matrix Y: “,MY
(MX^T * MX)^-1 * (MX^T * MY) → ML
Disp “ML= “
Pause ML

Example:
MX = [ [1, 3, 2.0], [1, 4, 2.3], [1, 5, 2.6], [1, 8, 2.9] ]
MY = [ [1.6], [1.8], [2.1], [2.3] ]

Results:
ML = [ [-0.14444444449], [-1.666666667E-2], [0.88888888889] ]

Chebyshev Polynomials (1st Kind)

The program tcheby calculates the numerical value of the Chebyshev polynomials of the 1st Kind given its point, X, and the order, N.

TI-86 Program tcheby
(127 bytes)

Prompt X,N
If X>1 : Goto A
If X<-1 :="" b="" goto="" span="">
cos(N * cos⁻¹ X) → A
Goto C
Lbl A
cosh(N * cosh⁻¹ X) → A
Goto C
Lbl B
(-1)^N * cosh(N * cosh⁻¹ X) → A
Lbl C
Disp A

Example:
X = -2.5, N = 4, Result: 263.5
X = 0.5, N = 4, Result: -0.5
X = 2.5, N = 4, Result: 263.5

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.

Saturday, February 9, 2019

App Spotlight: MyScript Calculator 2


App Spotlight: MyScript Calculator 2


App: MyScript 2
Platform: Android, iOS
Price:
Android: Free Until February 12, 2019, $2.99 Thereafter
iOS: $2.99

I received an email from MyScript about their newly released MyScript Calculator 2 for Android.

MyScript Calculator 2 is an update to the MyScript calculator. You can see my review for the original version here: http://edspi31415.blogspot.com/2013/01/review-myscript-calculator.html.

What is in the new version?

* You can display results in decimal (up to 6 decimal places) with one of two settings: truncated or rounded, or you can display answers in simplified fractions (improper or in mixed form)
* The ability to turn on automatic calculation or manual calculation
* You can solve some equations. Caveats: Limited to simple equations (not full quadratic or cubic equations, yet)
* We can drag numbers to copy them in different calculations. Dragging numbers to the blue bar on top of the screen will store them in memory. Stored numbers will be available even if the workspace is cleared. To pick a number for dragging, all you have to do is to press on a number, hold until the number is boxed. At that point, you can drag the box.

Here are some screen shots from Version 2.




Here is a video demonstration of MyScript Calculator 2 by the company: https://www.youtube.com/watch?v=EpU24ooMY-8&feature=youtu.be

I thank Giovanni Rodriguez of Marketing for introducing me to MyScript 2.

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.


Thursday, February 7, 2019

Casio fx-3650P: Chebyshev Polynomials, Roots of a Complex Number, Reversion Value, Mach Speed, Trapezoid Perimeter


Casio fx-3650P: Chebyshev Polynomials, Roots of a Complex Number, Reversion Value, Mach Speed, Trapezoid Perimeter

Chebyshev Polynomials of the First Kind

Values of the Chebyshev polynomials can calculated by the following:

T_n (x):

cos (n acos x) if |x| ≤ 1

cosh (n acosh x) if x ≥ 1

(-1)^n cosh (n acosh(-x)) if x ≤ 1

Inputs: x, y (n) order. The program assumes y is an integer.

Program (74 bytes):

? → X : ? → Y : X > 1 ⇒ Goto 1 :
-1 > X ⇒ Goto 2 : cos ( Y cos¹ X ) → A : Goto 3 :
Lbl 1 : cosh ( Y cosh¹ X ) → A : Goto 3
Lbl 2 : (-1)^Y * cosh ( Y cosh¹ X ) → A :
Lbl 3: A

Examples

T_Y(X)

X: -3, Y: 5, Result: -3363
X: 0.3, Y: 5, Result: 0.99888
X: 3, Y: 5, Result: 3363

Roots of a Complex Number

This program calculates the roots of a complex number (x + yi)^a, which is calculated as:

r^(1/n) * ( cos((θ + 2 π k)/n) + i*sin((θ + 2 π k)/n) )

where k = 0 to n-1
r =√(x^2 + y^2)
θ = angle(x + yi) = atan(y/x)

Program (66 bytes):

? → X : ? → Y : ? → A : 0 → M :
Rad : Pol(X,Y) : A x√ X → B :
Y → D : Lbl 1 : M ⊿ Rec(B, (D + 2 π M )/A) ⊿
Y ⊿ 1 M+ : M ≠ A ⇒ Goto 1 : M

The program stops when M = A.

Example:

(-2 + 4i)^(1/4)

X: -2, Y: 4, A: 4

(Fix 4 setting)
M: 0, X: 1.2701, Y: 0.7082
M: 1, X: -0.7082, Y: 1.2701
M: 2, X: -1.2701, Y: -0.7082
M: 3, X: 0.7082, Y: -1.2701
M: 4 (end)

Business: Reversion Value

Input:

A = n: number of payments
B = I%: periodic interest rate (in decimal)
C = monthly rent
D = asking price

Note: For monthly payments, divide the annual interest rate by 1200.

Program (55 bytes):

Fix 2 : ? → A : ? → B : ? → C : ? → D :
-C (1 + B) ( (1 + B)^A -1 ) ÷ B → X :
X + D (1 + B)^A → X : X

Example:
5 years of monthly payments, A = 60
Interest rate, B = 6/1200
Monthly Rate, C = 1895
Asking Price, D = 250000


Result: 204337.26

Source:
Roger F. Farish and Elbert B. Greynolds, Jr., Ph.D., CPA Calculator Analysis for Business and Finance Texas Instruments Incorporated 1978 ISBN 0-07-063757-1

Mach Speed

This program calculates the mach speed, a ratio of the speed of sound given:

A = the altitude of the object, such as a vehicle (in feet)
B = temperature (°F)
C = velocity of the vehicle (mph)

Equations used:

Mach Number = velocity of the vehicle / speed of sound

where Speed of Sound = 44100 / 1519 * √( 459.7 + B – 3.57 * A / 1000)

Program (52 bytes):

? → A : ? → B : ? → C :
44100 ÷ 1519 * √ ( 459.7 + B – 3.57 A ÷ 1000 ) → D :
C ÷ D → M

A lapse rate of -3.57° per 1000 ft altitude is assumed.

Example:

Input:
A: altitude = 2500 ft
B: temperature = 63 °F
C: velocity = 795 mph

Result:
mach speed: 1.208091501

Source:
Mach Number and Airspeed vs Altitude” Granite Island Group (Technical Surveillance Counter Measures) http://www.tscm.com/mach-as.pdf Retrieved January 26, 2019

Perimeter of a Trapezoid



P + A + B + C * (1/sin X + 1/sin Y)

Program (38 bytes):

Deg : ? → A : ? → B : ? → C : ? → X : ? → Y :
A + B + C ( 1 ÷ sin X + 1 ÷ sin Y )

Example:
A = 227.6
B = 305.4
C = 10.5
X = 86°
Y = 5°

Result: 663.999629

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.