HP 71B: Sign "Graph" of Trig Functions
Introduction
The program SGNTRIG builds a 22 character binary string that depends on the function:
g(x) =
1 if sgn(t(x/c)) > 1
0 if sgn(t(x/c)) ≤ 0
where:
c is a scaling factor,
sgn(x) is the sign function, and
t(x) represents one of three trigonometric functions, sin(x), cos(x), or tan(x). Angles are assumed to be radians.
If we set to scale to c = 1, then g(x) takes the integer values from 1 to 22.
The HP 71B builds the result to the string S$. This is an aid to visualize at least some of the graph. When the bit is 1, the graph is above the x-axis, otherwise, the graph is either on or below the x-axis. The program presented can be expanded or modified to explore other functions.
The resulting string is a "psuedo-graph".
Below is a graphical representation of g(x) (an HP Prime is used to graph g(x)).
HP 71B Program SGNTRIG
Size: 270 bytes
100 DESTROY S,I,N,E,C
105 S$=""
110 RADIANS
115 INPUT 'SCALE? ';C
120 DISP "S:SIN C:COS T:TAN"
125 E$=KEY$
130 IF E$="S" OR E$="C" OR E$="T" THEN 200 ELSE 120
200 FOR I=1 TO 22
205 IF E$="S" THEN N=SGN(SIN(I/C))
210 IF E$="C" THEN N=SGN(COS(I/C))
215 IF E$="T" THEN N=SGN(TAN(I/C))
220 IF N=1 THEN N=1 ELSE N=0
225 S$=S$&STR$(N)
230 DISP S$ @ BEEP 589,0.1 @ WAIT 0.2
235 NEXT I
240 DISP S$ @ BEEP 661,2
Notes:
Line 105: creates a blank string, which is allowed on the HP 71B
Line 125: The KEY$ function calls for a key input. S for sine, C for cosine, and T for tangent.
Lines 205 to 215: determine which trigonometric function to use
Line 220: Sets the character to 0 if the sign function returns 0 or -1
Line 225: &, the ampersand symbol concatenates two strings
Lines 230 and 240, respectively: 589 Hz is middle D, 661 Hz is middle E
Example
Below are results for each of the trigonometric functions when scale is set to 1.
YouTube video: https://www.youtube.com/watch?v=GL6urOGvRGY&feature=youtu.be
All original content copyright, © 2011-2020. 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.