HP 15C (CE) and TI-84 Plus CE Triangle, Square, and Sawtooth Waves
Almost New Years... thank you for all your support in 2023!
The Periodic Waves Featured
Let:
A = amplitude of the wave
P = period of the wave
Triangle:
TW(A,P,x) = (2 × a ÷ π) × arcsin(sin (2 × π × x ÷ p))
Domain: [ -A, A ]
Square:
SW(A,P,x) = a × sgn(sin(2 × π × x ÷ p)) = a × (-1)^floor(2 × x ÷ P)
Domain: [ -A, A ]
Sawtooth:
SAW(A,P,x) = A × frac(x ÷ P)
Domain: [ -A, A ]
The programs presented only allow for non-negative arguments (x>0). The TI-84 Plus CE program PRDWAVES offer calculations and graphs.
HP 15C Program Code
LBL A: Triangle Wave
LBL B: Square Wave
LBL C: Sawtooth Wave
Registers Used:
R1 = amplitude (A)
R2 = period (P)
Load A and P in R1 and R2 and then load x in the x stack. X must be non-negative or an error occurs (Error 0).
Step | Key Code | Key
Triangle Wave
001 | 42, 21, 11 | LBL A
002 | 43, _5, _8 | CF 8
003 | 43, 30, _2 | TEST 2 (x<0?)
004 | __, __, 11 | √x
005 | __, __, _2 | 2
006 | __, __, 20 | ×
007 | __, 43, 26 | π
008 | __, __, 20 | ×
009 | 45, 10, _2 | RCL÷ 2
010 | __, __, 23 | SIN
011 | __, 43, 23 | SIN^-1
012 | __, __, _2 | 2
013 | __, __, 20 | ×
014 | 45, 10, _1 | RCL÷ 1
015 | __, 43, 26 | π
016 | __, __, 10 | ÷
017 | __, 43, 32 | RTN
Square Wave
018 | 42, 21, 12 | LBL B
019 | 43, _5, _8 | CF 8
020 | 43, 30, _2 | TEST 2 (x<0?)
021 | __, __, 11 | √x
022 | __, __, _2 | 2
023 | __, __, 20 | ×
024 | 45, 10, _2 | RCL÷ 2
025 | __, 43, 44 | INT
026 | __, __, _1 | 1
027 | __, __, 16 | CHS
028 | __, __, 34 | x<>y
029 | __, __, 14 | y^x
030 | 45, 20, _1 | RCL× 1
031 | __, 43, 32 | RTN
Sawtooth Wave
032 | 42, 21, 13 | LBL C
033 | 43, _5, _8 | CF 8
034 | 43, 30, _2 | TEST 2 (x<0?)
035 | __, __, 11 | √x
036 | 45, 10, _2 | RCL÷ 2
037 | __, 42, 44 | FRAC
038 | 45, 20, _1 | RCL× 1
039 | __, 43, 32 | RTN
Technique: If you require entries to be nonegative, you can use the sequence:
... commands. ..
CF 8 (turns complex mode off)
TEST 2 (x<0?)
√x (causes an error, specifically Error 0; skipped if x is non-negative)
... commands ...
TI-84 Plus CE Program PRDWAVES
(spaces added for clarity)
Func
Radian
FnOff
"2023-11-28 EWS"
1→A
1→P
ClrHome
Lbl 0
"AMP = "+toString(A)+","+"PRD = "+toString(P)→Str1
Menu(Str1,"ENTER PARAMETERS",1,"TRIANGLE WAVE",2,"SQUARE WAVE",3,
"SAWTOOTH WAVE",4,"EXIT",E)
Lbl 1
Input "AMPLITUDE? ",A
Input "PERIOD? ",P
Goto 0
Lbl 2
"2*A/π*sin^-1(sin(2*π*X/P))"→Y1
Goto C
Lbl 3
"A*(-1)^iPart(2*X/P)"→Y1
Goto C
Lbl 4
"A*fPart(X/P)"→Y1
Goto C
Lbl C
ClrHome
Menu("CALCULATE","F(X)",F,"GRAPH",G,"NEW PROBLEM",0,"EXIT",E)
Lbl F
Equ>String(Y1,Str2)
Disp Str2
Input "X≥0,X? ",X
If X<0
Then
Disp "X CAN NOT BE NEGATIVE"
Pause
ClrHome
Goto F
end
Y1(X)→Y
Disp "Y = ", Y
Pause
Goto C
Lbl G
0→Xmin
10→Xmax
ZoomFit
DispGraph
Stop
Lbl E
Disp "BYE."
Stop
Notes:
Y1: [vars], Y-VARS, 1: Function..., 1: Y1 (captial Y with subscript 1)
Examples
Let P = 2, A = 1
X = 1
Triangle: 0.0000
Square: -1.0000
Sawtooth: 0.5000
X = 2.5
Triangle: 1.0000
Square: 1.0000
Sawtooth: 0.2500
X = 4.8
Triangle: 0.4000
Square: 1.0000
Sawtooth: 0.4000
Eddie
All original content copyright, © 2011-2023. 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.