Tuesday, September 18, 2018

TI-84 Plus CE: Storing Names in a Concentrated String

TI-84 Plus CE: Storing Names in a Concentrated String 

Introduction

The program STRNAMES allows the user to store a list of names in a single string.  There are only 10 string variables for the TI-84 Plus CE (and in fact, all the the TI-83 and TI-84 families), so if you need to store more than 10 names, a workaround is needed.

This program uses two strings:  Str1 and Str2.  Str1 is a temporary string variable used to store and edit the list of names.  Str2 is the master list of all the names. 

In order to make this work, we will need to note where in the string the names start and the length of the names.  The two lists used are L₁, the position of each name, and L₂ for the length of each name.

In this program, each name is separated by space.

You will notice that Str2 starts with a space, and the lists L₁ and L₂ have a 0.  The TI-84 Plus CE does not allow us to store empty strings or lists. 

STRNAMES The Menu

1.  Add a Name:   Add a name to the list
2.  Delete Last Name:  Deletes the last name on the list
3.  Clear/Initialize:  Clears all the variables.  I recommend you start with this option every time you work with a new list of names.  Also, if you use other programs or the list or strings for other things, run the Clear/Initialize before beginning.
4.  Review:  List all the names in order.
5.  Erase Any Name:  You can erase any name in the list (1st name, 2nd name, 3rd name, etc).
6.  Exit: Quits the Program

TI-84 Plus CE Program STRNAMES

"2018-09-18 EWS"
Lbl 0
Menu("MENU","ENTER A NAME",A,"DELETE LAST NAME",B,"CLEAR/INITIALIZE",C,"REVIEW",D,"ERASE ANY NAME",E,"EXIT",F)

Lbl A
Input "NAME: ",Str1
augment(L₁,{length(Str2)+1})→L₁
augment(L₂,{length(Str1)}→L₂
Str2+Str1+" "→Str2
Disp "ADDED",Str2,"NAMES:",dim(L₁)-1
Pause 
Goto 0

Lbl B
If dim(L₁)≠1
Then
dim(L₁)→I
L₂(I)→B
length(Str2)→C
sub(Str2,1,C-B-1)→Str2
dim(L₁)-1→dim(L₁)
dim(L₂)-1→dim(L₂)
Disp "DONE.",Str2,"NAMES:",dim(L₁)-1
Else
Disp "LIST IS EMPTY."
End
Pause 
Goto 0

Lbl C
" "→Str2
{0}→L₁
{0}→L₂
Disp "CLEARED"
Pause 
Goto 0

Lbl D
For(I,2,dim(L₁))
L₁(I)→A
L₂(I)→B
dim(L₁)→C
toString(I-1)+"/"+toString(C-1)+": "+sub(Str2,A,B)→Str1
Disp Str1
Wait 0.5
End
Pause 
Goto 0

Lbl E
Input "ENTRY NUMBER:",I
I+1→I
dim(L₁)→D
L₂(I)→E
If D=I
Then
Goto B
Else
L₁(I)→A
L₁(I+1)→B
length(Str2)→C
sub(Str2,1,A-1)+sub(Str2,B,C-B)+" "→Str2
For(K,I+1,D)
L₁(K)-E-1→L₁(K-1)
L₂(K)→L₂(K-1)
End
dim(L₁)-1→dim(L₁)
dim(L₂)-1→dim(L₂)
Disp "DONE.",Str2,"NAMES:",dim(L₁)-1
Pause 
End
Goto 0

Lbl F
Disp "END PROGRAM"

Example

Try playing with this program.

Example list:

1.  Start by initializing, choose option 3.

2.  Enter EDDIE.  Choose option 1.  Press [ 2nd ] [alpha] and type EDDIE.  Quotes are not needed (since the Input command will be stored to a string).  Str2 = " EDDIE "

3.  Enter ANN.  Choose option 1.  Str2 = " EDDIE ANN "

4.  Enter TERRY.  Choose option 1. Str2 = " EDDIE ANN TERRY "

5.  Let's remove ANN from the list.  In our example, ANN is the second name.  Choose option 5.  Enter 2.  The result, Str2 = " EDDIE TERRY "

6.  Enter MARK.  Choose option 1.   Str2 = " EDDIE TERRY MARK "

7.  Review the list of names.  Choose option 4.  The screen will show:

1/3 EDDIE
2/3 TERRY
3/3 MARK

Continue with the example however you want. 

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.


Sunday, September 16, 2018

HP 20S and HP 21S: Precession

HP 20S and HP 21S: Precession 

Introduction

The program PRECESS estimate the new position (right ascension (RA), declination (δ)) of a celestial object given their position in Epoch 2000 with the object’s proper notion. 

Estimation formulas:

Change in RA and δ before accounting for proper notion

ΔRA = m + n * sin RA * tan δ  (in seconds)
        = 3.07496 + 1.33621 * sin RA * tan δ  (for epoch 2000)

Δδ = (15 * n) * cos RA   (in arcseconds)
     = 20.0431 cos RA  (epoch 2000)

With m = 3.07496 seconds and n = 1.33621 seconds (for epoch 2000)

For other epochs:
1900:  m = 3.0731, n = 1.33678
2100:  m = 3.07682, n = 1.33564

Then:

RA_new = (RA_old + Y * (ΔRA + RA_proper) / 3600 ) / 15    (hours)

δ_new = (δ_old + Y * (Δδ + δ_proper) / 3600    (degrees)

Y = years from 2000  (or the appropriate epoch)

For the HP Prime and TI-84 Plus CE versions, click here:  http://edspi31415.blogspot.com/2018/09/hp-prime-and-ti-84-plus-ce-precession.html

HP 20S and HP 21S Program: Precession 

The key codes for both calculators are the same.

STEP  KEY     KEY CODES
01    LBL D   61, 41, d
02    DEG     61, 23
03    RCL 0   22, 0
04    →HR     51, 54
05    ×       55
06    1       1
07    5       5
08    =       74
09    STO 0   21, 0
10    RCL 1   22, 1
11    →HR     51, 54
12    STO 1   21, 1
13    3       3
14    .       73
15    0       0
16    7       7
17    4       4
18    9       9
19    6       6
20    +       75
21    1       1
22    .       73
23    3       3
24    3       3
25    6       6
26    2       2
27    1       1
28    ×       55
29    RCL 0   22, 0
30    SIN     23
31    ×       55
32    RCL 1   22, 1
33    TAN     25
34    =       74
35    STO 5   21, 5
36    2       2
37    0       0
38    .       73
39    0       0
40    4       4
41    3       3
42    1       1
43    ×       55
44    RCL 0   22, 0
45    COS     24
46    =       74
47    STO 6   21, 6
48    RCL 0   22, 0
49    +       75
50    RCL 4   22, 4
51    ×       55
52    (       33
53    RCL 5   22, 5
54    +       75
55    RCL 3   22, 3
56    )       34
57    ÷       45
58    3       3
59    6       6
60    0       0
61    0       0
62    =       74
63    ÷       45
64    1       1
65    5       5
66    =       74
67    →HMS    61, 54
68    STO 7   21, 7
69    R/S     26
70    RCL 1   22, 1
71    +       75
72    RCL 4   22, 4
73    ×       55
74    (       33
75    RCL 6   22, 6
76    +       75
77    RCL 3   22, 3
78    )       34
79    ÷       45
80    3       3
81    6       6
82    0       0
83    0       0
84    =       74
85    →HMS    61, 54
86    STO 8   21, 8
87    RTN     61, 26


Instructions

Store the following values in the registers:

R0:  Initial RA in HH.MMSSSS format
R1:  Initial δ in DD.MMSSSS format
R2:  RA proper notion
R3:  δ proper notion
R4:  number of years from 2000.  For 2022, store 22.  For 1978, store -22.  

Result:  
R7:  New RA in HH.MMSSSS format, press [ R/S ] to get
R8:  New δ in DD.MMSSSS format

Examples

Estimate the RA and δ of Regulus (Alpha Leonis) and Sadalmelik (Alpha Aquarii) for 2020 (Y = 20).  (data from Wikipedia)

Regulus (Leo the Lion  ♌)

Epoch 2000: RA = 10h 8m 22.311s, δ = +11° 58’ 0.195”
Proper Notion:  RA_prop = -0.016582 arcsec/yr, δ_prop = 0.00556 arcsec/yr
 (arcsec = “)

Results:
RA_2020 ≈ 10h 8m 26.56557s  (shown as 10°08’26.56557”)
‘δ_2020 ≈ +11° 52’ 6.06118”

Sadalmelik (Aquarius the Water Bearer ♒)

Epoch 2000:  RA = 22h 5m 47.03593s, δ = -0° 19’ 11.4568”
Proper Notion:  RA_prop = 1.216667 * 10^-3 arcsec/yr, δ_prop = -0.00939 arcsec/yr

Result:
RA_2020 ≈ 22h 5m 51.14225s
δ ≈ -0° 13’ 19.5407”

Convert mas/yr to arcsec/yr:
For RA:  (x/15) /1000
For δ:  x/1000

Sources:

Jones, Aubrey.  Mathematical Astronomy with a Pocket Calculator  John Wiley & Sons: New York.  Printed in Great Britain. 1978.  ISBN 0 470 26552 3

Meeus, Jean.  Astronomical Algorithms  William-Bell, Inc.  Richmond, VA 1991.  ISBN 0-943396-35-2

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.

HP 20S and HP 21S: Qualifying Loan Amount (28:36 ratio)

HP 20S and HP 21S:  Qualifying Loan Amount (28:36 ratio)

Introduction

The program presented in today's blog entry will calculate the qualifying loan amount given the following:

*  Loan's annual interest rate and term (in years)
*  The borrower's monthly gross income
*  The borrower's monthly non-property related debt (credit cards, auto loans, store bought appliances on credit, etc).  Do not include utilities or phone bills.
*  The estimated monthly property tax and insurance.  For this program, combine the two amounts.

Before running the program, store the following amounts in the following registers:

R0:  Monthly Income
R1:  Monthly Debt
R2:  Monthly Property Taxes and Insurance
R3:  Annual Interest Rate
R4:  Term

The down payment is not taken into consideration.

The result is the loan amount using the standard 28:36 ratio (stored in register R5).  The 28:36 ratio is the guideline that the borrower spends no more than 28% of their income on housing expenses, and no more than 36% of their income on all debt service.

HP 20S and HP 21S Program:  Qualifying Loan Amount

The key codes for most steps are the same.  Lines where the key codes are different are noted, particularly the percentage function.

STEP  KEY      KEY CODE
01    LBL E    61, 41, E
02    FIX 2    51, 33, 2
03    RCL 0    22, 0
04    ×        55
05    3        3
06    6        6
07    %        HP 20S: 51,14  HP 21S: 51, 53
08    =        74
09    -        65
10    RCL 1    22, 1
11    =        74
12    STO 6    21, 6
13    RCL 0    22, 0
14    ×        55
15    2        2
16    8        8
17    %        HP 20S: 51,14  HP 21S: 51, 53
18    =        74
19    STO 7    21, 7
20    RCL 6    22, 6
21    INPUT    31
22    RCL 7    22, 7
23    X≤Y?     61, 42
24    SWAP     51, 31
25    STO 8    21, 8
26    RCL 2    22, 2
27    STO - 8  21, 65, 8
28    1        1
29    -        65
30    (        33
31    1        1
32    +        75
33    RCL 3    22, 3
34    ÷        45
35    1        1
36    2        2
37    0        0
38    0        0
39    )        34
40    Y^X      14
41    (        33
42    1        1
43    2        2
44    +/-      32
45    ×        55
46    RCL 4    22, 4
47    )        34
48    =        74
49    ÷        45
50    (        33
51    RCL 3    22, 3
52    ÷        45
53    1        1
54    2        2
55    0        0
56    0        0
57    )        34
58    =        74
59    ×        55
60    RCL 8    22, 8
61    =        74
62    STO 5    21, 5
63    RTN      61, 26

Example

R0:  Monthly Income = $4,485.00
R1:  Monthly Debt = $375.00
R2:  Monthly Property Taxes and Insurance = $126.83
R3:  Annual Interest Rate = 5%
R4:  Term = 30 years

Result:  $207,288.60

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.



Saturday, September 15, 2018

HP 20S and HP 21S: Approximating Stopping Distances

HP 20S and HP 21S:  Approximating Stopping Distances 

Introduction

We can approximate the stopping distance (in feet) of a vehicle on dry pavement given the vehicle's speed (in miles per hour, mph) by the formula: 

y = 3.85714285714*10^-2 * x^2 + 1.44504201681 * x + 0.64915966369

or

y = 27/200 * x^2 + 1.44504201681 * x + 0.64915966369

y:  stopping distance on dry pavement, feet
x:  speed of vehicle, mph

Assumptions:

*  The vehicle is assumed to be a passenger vehicle.

*  The reaction time is 1 second and the deceleration rate is 28 ft/s.

The program listed rounds all results to one decimal place.

HP 20S and HP 21S Program: Stopping Distance

The key codes for both calculators are the same in this program.

STEP KEY    KEY CODE
01   LBL B  61, 41, b
02   STO 0  21, 0
03   x^2    51, 11
04   ×      55
05   2      2
06   7      7
07   ÷      45
08   7      7
09   0      0
10   0      0
11   +      75
12   RCL 0  22, 0
13   ×      55
14   1      1
15   .      73
16   4      4
17   4      4
18   5      5
19   0      0
20   4      4
21   2      2
22   0      0
23   1      1
24   6      6
25   8      8
26   1      1
27   +      75
28   .      73
29   6      6
30   4      4
31   9      9
32   1      1
33   5      5
34   9      9
35   6      6
36   6      6
37   3      3
38   9      9
39   =      74
40   STO 1  21, 1
41   FIX 1  51, 33, 1
42   RTN    61, 26

Examples

Input:  25 mph,  Result:  60.9 ft

Input:  40 mph,  Result:  120.2 ft

Input:  65 mph,  Result:  257.5 ft

Note:  This time I am writing this blog entry direct in the Blogger compose box.  When I transfer text from either Jarte or WordPad to Blogger, all the formatting is lost.  And I don't want to format my text twice.  I will still save a backup copy.  I am very happy that Blogger compose box allows me to select special characters for the math symbols I need (the happy face is appropriate because it makes me happy!) 

Source:  

Glover, Thomas J.  Pocket Ref 4th Edition.  Sequoia Publishing, Inc. Littleton, CO. 2012

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.



HP 20S and HP 21S: Rounding Numbers

HP 20S and HP 21S:  Rounding Numbers

Introduction

The following program will allow the user to round any positive number to any number of decimal places, regardless of fixed decimal settings. 

This is based off the algorithm:

x_rounded = int(10^n * x + 0.5) ÷ 10^n

Note:  You can check out the programs for the HP 12C and DM 41L/HP 41C here:  
http://edspi31415.blogspot.com/2018/08/hp-12c-platinum-and-dm-41l-rounding.html

HP 20S and HP21S Program: Rounding Numbers

Key codes for both calculators are the same.

Step Key Key Code
01 LBL C 61, 41, C
02 10^x 51, 12
03 STO 0 21, 0
04 SWAP 51, 31
05 × 55
06 RCL 0 22, 0 
07 + 75
08 . 73
09 5 5
10 = 74
11 IP 51, 45
12 ÷ 45
13 RCL 0 22, 0
14 = 74
15 RTN 61, 26

Instructions

Enter x, press [INPUT], enter n (number of decimal places)

Examples

For these examples, I have set the calculator in ALL setting ( [right shift], [ ) ] )

Example 1:  Round π to 4 places.

π [ INPUT ] 4  [XEQ] (C)

Result:  3.1416

Example 2:  Round e^2.2 to 6 places

2.2 [e^x] [INPUT] 6 [XEQ] (C)

Result:  9.025013

Note:  I typed this blog entry by using the Jarte word processor (http://www.jarte.com/index.html).  I am using the free version for the first time (there is also a paid version). Jarte is based off of WordPad, but adds spell check and nicer editing features.  

Source:

Keith Oldham, Jan Myland, and Jerome Spanier  An Atlas of Functions Second Edition,  Springer.  2009 ISBN 978-0-387-48806-6

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.

HP 20S and 21S: Heron's Triangle

HP 20S and 21S:  Heron's Triangle

Introduction

The following program calculates the area of a triangle knowing the three lengths.  The area is determined by Heron's formula:

Area:  √(s * (s - a) * (s - b) * (s - c)) where s = (a + b + c)/2
Store the lengths of the triangle in registers R0, R1, and R2 respectively.  
Results are stored in the following registers:
R3:  s
R4:  area

HP 20S and 21S Program: Heron's Triangle

The key codes for both calculators are the same.

STEP KEY KEY CODE
01 LBL A 61, 41, A
02 RCL 0 22, 0
03 STO 3 21, 3
04 RCL 1 22, 1
05 STO+3 21, 75, 3
06 RCL 2 22, 2
07 STO+3 21, 75, 3
08 2 2
09 STO÷3 21, 45, 3
10 RCL 3 22, 3
11 STO 4 21, 4
12 RCL 3 22, 3
13 - 65
14 RCL 0 22, 0
15 = 74
16 STO×4 21, 55, 4
17 RCL 3 22, 3
18 - 65
19 RCL 1 22, 1
20 = 74
21 STO×4 21, 55, 4
22 RCL 3 22, 3
23 - 65
24 RCL 2 22, 2
25 = 74
26 STO×4 21, 55, 4
27 RCL 4 22, 4
28 11
29 STO 4 21, 4
30 RTN 61, 26

Example

R0 = 17, R1 = 18, R2 = 21.   Result:  Area:  148.833238744

Note:  I switched computers last week.  For the last few years, I used Microsoft Word but for the time being I am going to use WordPad.  Let's see how this goes.  Fortunately I can still can use Unicode characters with Alt+X.  For example, I can type 221A, then type [Alt] + [ X ] to get the square root character.  Unfortunately, WordPad doesn't have spell check.  

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.


Sunday, September 9, 2018

Retro Review: Calculated Industries Qualifier Plus IIImx, Model 3440


Retro Review:  Calculated Industries Qualifier Plus IIImx, Model 3440




General Information

Company:  Calculated Industries
Type:  Finance/Banking
Display:  9 digit alpha-numeric display
Power:  2 LR44 or 2 A76 batteries  
Memory:  1 independent memory (store, recall, M+, M-)
Years:  2004 – late 2000s
Original Cost: $49.95
Documentation:  Manual, though it is no longer available online

Introduction and Features

The Qualifier Plus IIImx is a finance calculator that seems to be made for a specific client, World Savings.  The model has a World Savings logo on it, and any Armadillo Gear protective cover that came with it. 

Interesting to note that in 2006 that Wachovia Corporation purchased Golden West Financial Corporation, World Savings’ parent corporation, only for Wachovia itself to be purchased by Wells Fargo in 2008.  [[S1]]

Let’s get to the regular known features of the Qualifier Plus IIImx:

* Time Value of Money (payments are assumed to be monthly, but can be adjusted), this can include price and down payment
* Amortization of Loans
* Interest Only Payment Calculations
* Payment Calculations:  P&I (principal and interest), PITI (principal, interest, property tax, property insurance), TOTAL (PITI plus monthly expenses)
* Qualifying Loan Amounts (two slots to store two ratios, Qual 1 defaults to the standard 28:36 debt/income ratio)
* Rent vs. Buy Analysis: given monthly rent, loan amounts, property tax, property insurance, the renter’s income tax bracket
* Date calculations:  2-digit year entry. I’m not sure what this time period covers because the pocket guide doesn’t state.  Through entering various dates and using www.dayoftheweek.org, the dates seem to range from January 1, 1960 (Friday) to December 31, 2059 (Wednesday).

One neat thing with the Qualifier Plus IIImx (this really goes for all the Calculated Industries financial and real estate calculators) is that some of the entries can determine percentage rates or dollar amounts without additional key strokes.  Generally, any entry of 100 or less is treated as a percent, above 100 is treated as dollars.

Example: 

20 [ Dn Pmt ] sets the down payment at 20% of the price

20000 [ Dn Pmt ] sets the down payment at $20,000

Other keys that work this way:  [ Shift ] [ 7 ] (annual property tax), [Shift] [ 8 ] (annual property insurance), [Shift] [ 9 ] (annual mortgage insurance)

So far, so good.  Now let’s get to the controversy…

Negative Amortization:  The MARM Loans

I am grateful that when I bought the calculator it still had its pocket reference guide [[S2]] otherwise I would have no idea what all the MARM keys were about.  I still don’t understand all the details, but the MARM keys calculates such loans that were called “pick-a-payment” loans, which were popular and heavily advertised during the housing boom in the mid to late 2000s. 

In general, “pick-a-payment” loans allowed borrowers to set a payment where the payment is less than the interest charged for the initial period of the loan.  Any interest that wasn’t paid was tacked to the end the loan.  Furthermore, none of the principal has been paid down during the initial time.  I think you can see the problem, by paying too low in the beginning resulted in a higher loan balance (principal plus unpaid interest).  Furthermore, MARM loans are rate adjustable.  Even with the presence of caps, it’s not all that comforting when the deferred interested and delay of paying off principal are taken into account.

In 2010, Wells Fargo (having acquired World Savings and Wachovia) made a minimum of $50 million in a class action lawsuit over these types of loans [[S3]], including promises to modify any loans of the borrowers who made such “pick-a-payment” type of mortgages.  Wells Fargo would get in trouble again 2012 when the loan modifications were denied to a lot of affected borrowers. [[S4]]

It shouldn’t be surprising to see why Calculated Industries discontinued this model and took down any documentation for this calculator. 

My personal take: if the mortgage or loan has any hint of negative amortization – RUN! Don’t even consider it. 

Verdict

Because of the controversial and perhaps infamous nature of some of this calculator’s features, I am not going to issue a verdict or recommendation. 


Sources:

[[S1]]  Wells Fargo.  “World Savings is Now Wells Fargo” https://www.wellsfargo.com/about/corporate/worldsavings/  Retrieved September 5, 2018

[[S2]] Calculated Industries.  Model 3440: Pocket Reference Guide. 2004 Guide is not available online. 

[[S3]] Orlofsky, Steve – Editor.  “Wells Fargo to settle lawsuit over pick-a-payment loans” Reuters.  December 14, 2010.  https://www.reuters.com/article/wellsfargo-settlement/wells-fargo-to-settle-lawsuit-over-pick-a-payment-loans-idUSN1427719820101215?feedType=RSS  Retrieved September 5, 2018.

[[S4]] Reckard, E. Scott.  “Wells Fargo settlement over ‘pick-a-pay’ home loans is challenged”.  Los Angeles Times.  December 11, 2012.  http://articles.latimes.com/2012/dec/11/business/la-fi-wells-suit-20121211  Retrieved September 9, 2018.

Eddie

All original content copyright, © 2011-2018.  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.  Please contact the author if you have questions.

TI-84 Plus CE: Storing Names in a Concentrated String

TI-84 Plus CE: Storing Names in a Concentrated String  Introduction The program STRNAMES allows the user to store a list of names in a ...