**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.