Sunday, April 30, 2023

TI-74 and Python (Casio fx-9750GIII): A Treasure of Programs

TI-74 and Python (Casio fx-9750GIII):  A Treasure of Programs



Today's programs illustrates an approach from both the BASIC and Python programming languages. 



Skiing Stars



This program paves a ski path by randomly plotting a path.  A slight difference:  the TI-74 version goes indefinitely until the user presses a key and uses one line.  The Python version goes 50 steps and the result must be scrolled up after the program completes.  I optimized the program to fit each screen.


TI-74 BASICALC Program


100 REM "Skiing Stars"

102 RANDOMIZE RND

104 P=14

106 PRINT "Press any key to stop.": PAUSE .25

120 CALL KEY(K,S)

122 IF S<>0 THEN 140

124 R=RND

126 IF R<.4 AND P>0 THEN LET P=P-1

128 IF R>.4 AND P<26 THEN LET P=P+1

130 DISPLAY ERASE ALL AT(P),"*****": PAUSE .15

132 GOTO 120

140 PRINT RPT$("*",31): PAUSE .25

142 STOP


Python (Casio fx-9750GIII):  skistar.py


# skiing stars

from random import *

rnd=int(10000000*random())

seed(rnd)

p=8

for i in range(50):

  r=random()

  if r<.4 and p>0:

    p-=1

  if r>.6 and p<14:

    p+=1

  print(" "*p+"*****")

print("scroll up")

    


Phase Speed of a Wave


Equation:

c = √( g  * λ / (2 * π) * tanh(2 * π * d / λ))


c = phase speed

λ = wavelength 

d = water depth

g = Earth's gravity = 9.80665 m/s = 32.174049 ft/s


Source:


"Wind Wave"  Wikipedia.  Last Edited January 28, 2023.  Accessed February 14, 2023.  https://en.wikipedia.org/wiki/Wind_wave#:~:text=In%20fluid%20dynamics%2C%20a%20wind,is%20known%20as%20the%20fetch.


TI-74 BASICALC Program:  


400 REM Phase Speed

402 PRINT "U.S. units used": PAUSE .25

404 T=2*PI: G=32.174049

406 INPUT "Depth (ft)? "; D

408 INPUT "Wavelength (ft)? "; L

410 C=SQR(G*L/T*TANH(T*D/L))

412 PRINT "Phase Speed (ft/s)=": PAUSE .25

414 PRINT C: PAUSE

416 STOP


Python (Casio fx-9750GIII): phspeed.py  


# phase speed

from math import *

print("U.S  units used")

t=2*pi

g=32.174049

print("Depth (ft)?")

d=float(input())

print("Wavelength?")

l=float(input())

c=sqrt(g*l/t*tanh(t*d/l))

print("Phase speed (ft/s)=")

print(c)


Example:


Depth:  2.26 ft

Wavelength:  18.9 ft


Result:  

Phase Speed:  7.845145563 ft/s



Horsepower Generated by a Wave


p = 0.0329 * h^2 * √( l * (1 - 4.935 * (h^2/l^2))


h = wave height (ft)

l = length of a wave (ft)

p = horsepower


Source: 


Rosenstein, Morton.  Strategies for Scientific Calculating Casio.  January 1982.


TI-74 BASICALC Program:


500 REM horsepower of a wave

502 PRINT "U.S. units used": PAUSE .25

504 INPUT "Wave height (ft)? ";H

506 INPUT "Length of wave (ft)? "; L

508 P=.0329*H^2*SQR(L*(1-4.935*(H^2/L^2)))

510 PRINT "Horsepower = ": PAUSE .25

512 PRINT P: PAUSE

514 STOP


Python (Casio fx-9750GIII):  hpwave.py


# horsepower of a wave

from math import *

print("U.S. units used")

print("Wave height (ft)?")

h=float(input())

print("Length of a wave?")

l=float(input())

p=.0329*h**2*sqrt(l*(1-4.935*(h**2/l**2)))

print("horsepower = ")

print(p)


Example:


Wave height:  1.26 ft

Length of wave: 24.04 ft


Result:

Horsepower = .2543549811 hp



Until next time,


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. 


Saturday, April 29, 2023

TI-74 and Python (Casio fx-9750GIII): Probability

TI-74 and Python (Casio fx-9750GIII):  Probability



Today's program illustrates an approach from both the BASIC and Python programming languages. 


The program offers the user to calculate common probability problems:



1)  n!:  factorial of an integer

2)  nCr:  combinations without replacement

3)  nPr:  permutations

4)  nHr:  combinations with replacement

5) bday:  probability that n people do not share a category in common from a size of categories (i.e. birthday problem:  How many people in a room don't share a birthday?)



TI-74 BASICALC Program


200 REM probability

202 INPUT "1)n! 2)nCr 3)nPr 4)nHr 5)bday "; I

204 IF I<5 THEN INPUT "n? "; N

206 IF I>1 AND I<5 THEN INPUT "r? "; R

208 ON I GOTO 220,240,260,280,300


220 X=N

222 GOSUB 320

224 PRINT "n! = "; F: PAUSE

226 GOTO 340


240 Z=1: FOR K=(N-R+1) TO N: Z=Z*K: NEXT K

242 X=R: GOSUB 320

244 Z=Z/F

246 PRINT "nCr = "; Z: PAUSE

248 GOTO 340


260 Z=1: FOR K=(N-R+1) TO N: Z=Z*K: NEXT K

262 PRINT "nPr = "; Z: PAUSE

264 GOTO 340


280 Z=1: FOR K=N TO (N+R-1): Z=Z*K: NEXT K

282 X=R: GOSUB 320: Z=Z/F

284 PRINT "nHr = "; Z: PAUSE

286 GOTO 340


300 INPUT "# categories? "; R

302 INPUT "Sample size? "; N

304 Z=1: FOR K=1 TO (N-1): Z=Z*(1-K/R): NEXT K

306 PRINT "P(all unique) = "; Z: PAUSE

308 GOTO 340


320 F=1

322 FOR K=1 TO X: F=F*K: NEXT K

324 RETURN


340 INPUT "Again? 0:No, 1:Yes "; A

342 IF A=1 THEN 202

344 IF A=0 THEN STOP

346 GOTO 340



Python Program:  prob.py 


Program completed with the Casio fx-9750GIII.


# probability

from math import *


def fact(x):

  f=1

  for k in range(1,x+1):

    f*=k    

  return f



fc=1


while fc!=0:

  print("1)n! 2)nCr")

  print("3)nPr 4)nHr")

  print("5)bday")

  ch=int(input())

  if ch<5:

    n=int(input("n? "))

  if ch>1 and ch<5:

    r=int(input("r? "))

  if ch==1:

    f=fact(n)

    print("n! = "+str(f))

  if ch==2:

    f=fact(n)/(fact(n-r)*fact(r))

    print("nCr = "+str(f))

  if ch==3:

    f=fact(n)/fact(n-r)

    print("nPr = "+str(f))

  if ch==4:

    f=fact(n+r-1)/(fact(r)*fact(n-1))

    print("nHr = "+str(f))

  if ch==5:

    r=int(input("# categories? "))

    n=int(input("Sample size? "))

    f=1

    for k in range(n):

      f*=1-k/r

    print("p(all unique)=")

    print(str(f))

  print("Again? 0)no 1)yes")

  fc=int(input())    


Examples


1) n!  

13! = 6227020800


2) nCr

n = 13, r = 6; result:  1716


3) nPr

n = 13, r = 6; result:  1235520


4) nHr

n = 13, r = 6; result:  18564


5) bday

# categories: 13

Sample size: 6

Result:  P(all unique) = .2559703523



Wishing you an excellent day.   More BASIC and Python programming coming your way tomorrow!


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. 


Thursday, April 27, 2023

HP Prime: Firmware 14730

HP Prime:   Firmware 14730



Windows Update - Firmware 14730





There is a new update for the HP Prime, the Connectivity Kit, and the HP Virtual Calculator:  Firmware 14730.


Highlights of the firmware 14730:


*  Polynomial inequalities can be reliably solved in CAS mode.

*  The Chi-Square Goodness of Test automatically updates the degrees of freedom.

*  Intersection of functions in the Function App has an improved algorithm.

*  The equals character (=) is added to the soft keys in CAS mode.

*  Memory leaks and crashes are fixed.


For a detailed list, check the detailed list provided by Klaas Kuperus, Product Manager for HP for MORAVIA Consulting on the MoHPC (Museum of HP Calculators) page:


https://www.hpmuseum.org/forum/thread-19845.html


Download the new package here:


https://hpcalcs.com/download/


The file is the HP Connectivity Kit (32 or 64 bit) 2.1.14730 (2023 04 13) for Windows.  Update for Macintosh to come soon.  The file contains:


*  The updated Connectivity Kit.

*  The updated firmware, which will be downloaded through the kit once the calculator is plugged into the PC.

*  The updated virtual calculator, which will be upgraded once the file is run for the first time.


Credit to HP and MORAVIA Consulting.  


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. 


Sunday, April 23, 2023

HP Prime: Edge Diffraction Parametric Plot

HP Prime:  Edge Diffraction Parametric Plot



Introduction


The program EDGEDIFFRAC plots the complex amplitude of edge diffraction.  The equation is:


φp = φ0 / √2 * ( CS(t) + 1/2 * (1 + i) )


where:

φp = complex amplitude 

φ0 = unobstructed amplitude, can be a complex number

CS(t) = Cornu Spiral, defined as CS(t) = C(t) + i * S(t)


Cosine Fresnel Integral

C(t) = ∫( cos (π * s^2 / 2) ds for s = 0 to t)


Sine Fresnel Integral

S(t) = ∫( sin (π * s^2 / 2) ds for s = 0 to t)


i = √-1




HP Prime Program:   EDGEDIFFRAC


Notes:


1.  This program runs in the Parametric app.


2.  To allow for the program to be run from any app, the STARTAPP command is placed in the beginning of the program.


3.  To allow editing in any app, the Parametric. prefix is added to the variables Tmin, Tmax, and Tstep.   


4.  The QUOTE command is used to store functions to the graphing variables X1 and Y1.  


5.  The program runs faster in the emulator than the hardware calculator.  


6.  x1(t) is the real part of φp, and y1(t) is the imaginary part of φp. 


Code:


EXPORT EDGEDIFFRAC()

BEGIN

// Edge Diffraction 

// 2023-02-19 EWS

STARTAPP("Parametric");


// set radians mode

HAngle:=0;

// local variables

LOCAL ch,l,lc,pc;

LOCAL y,λ,z,w,φp;

 

// plot application

INPUT(Z0,"Unobstructed Amplitude",

"φ0:");


CHOOSE(l,"Change Color","Red","Indigo",

"Blue","Orange","Green");

lc:={#FF0000h,#400080h,#FFh,

#FFA500h,#C000h};

X1(COLOR):=lc[l];

Parametric.Tmin:=-5;

Parametric.Tmax:=5;

Parametric.Tstep:=0.25;


A:=RE(Z0);

B:=IM(Z0);

X1:=QUOTE(A/√2*(∫(COS(π*S^2/2),S,0,T)+1/2)

-B/√2*(∫(SIN(π*S^2/2),S,0,T)+1/2));

Y1:=QUOTE(A/√2*(∫(SIN(π*S^2/2),S,0,T)+1/2)

+B/√2*(∫(COS(π*S^2/2),S,0,T)+1/2));

CHECK(1);

STARTVIEW(10);


END;



Examples



Example 1:   φ0 =  2 + 6i






Example 2:  φ0 = 2.29






Source


Woan, Graham.  The Cambridge Handbook of Physics Formulas.  Cambridge University Press:  Cambridge, New York.   2003



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. 


Saturday, April 22, 2023

Python: Drawing Regular Polygons (TI-84 CE Python, Numworks)

Python:  Drawing Regular Polygons (TI-84 CE Python, Numworks)



Introduction



The following scripts uses the Turtle module to draw regular polygons.   It turns out that every set of commands is slightly different in every calculator.  


For instance, there are no color names in the TI-84 Plus CE Python but they are present in Numworks.  


Also, the turtle module needs a t. (t-point) suffix of all turtle commands for the TI-84 Plus CE Python.  The Numworks turtle module does not need a suffix. 



TI-84 Plus CE Python:  dpolygon.py


from turtle import *

t=Turtle()


# initialization

s=60

n=int(input("# of sides? "))


# angle

a=180*(n-2)/n


# set turtle for TI-84

# color

k=-1

while k<0  or  k>4:

  print("Choose Color")

  print("0. blue")

  print("1. red")

  print("2. green")

  print("3. orange")

  print("4. indigo")

  k=int(input())

if k==0:

  t.pencolor(0,0,255)

if k==1:

  t.pencolor(255,0,0)

if k==2:

  t.pencolor(0,192,0)

if k==3:

  t.pencolor(255,165,0)

if k==4:

  t.pencolor(75,0,130)


t.clear()


# setup

t.penup()

t.left(180)

t.forward(60)

t.left(90)

t.forward(60)

t.left(90)


# draw the polygon

t.pendown()

for i in range(n):

  if n>6:

    t.forward(s/2)

  else:

    t.forward(s)

  t.left(180-a)

t.done()




Numworks Python:  dpythonnw.py


from math import *

from turtle import *


# initialization

s=60

n=int(input("# of sides? "))


# angle

a=180*(n-2)/n


# set color numworks

k=-1

l=['blue','red','green','orange','purple']

while k<0 or k>4:

  print("Choose Color")

  print("0. blue")

  print("1. red")

  print("2. green")

  print("3. orange")

  print("4. purple")

  k=int(input())

col=l[k]


# setup

penup()

left(180)

forward(60)

left(90)

forward(60)

left(90)


# draw the polygon

pendown()

color(col)

for i in range(n):

  if n>6:

    forward(s/2)

  else:

    forward(s)

  left(180-a)




Until next time,


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. 


Sunday, April 16, 2023

Python and Casio fx-4000P: Transmission and Deviation Angles - Prism

Python and Casio fx-4000P:   Transmission and Deviation Angles - Prism




Celebrating 12 Years in the Blogopshere!   Thank you to my readers, subscribers, and everyone who has stopped by during the years!  




Introduction


Today's program calculates the transmission and deviation angles passing through a prism.   The refractive index of the prism is determined by the material it is made of.   





Formulas Used for the transmission and deviation angles, respectively:


θt = arcsin( α * √(n^2 - sin^2 θi) - sin θi * cos α)


δ = θi + θt - α


The Python program calculates for prisms made of acrylic, glass, fluorite, and plastic.  



Python Script:  prism.py


Program Notes:


1.  The angle mode in Python is always radian angle mode. Conversions between degrees and radians are necessary on this code.


2.  This code was programmed with a Casio fx-9750GIII in the Python app.   I could have used the degrees and radians functions, however, they were not present in the calculator's catalog.  


3.  I used a While loop and initialized the choice variable k as -1 to prevent the user from choosing anything from picking outside the range 0-3.  This simulates the Menu command in Casio graphing calculator programming.


4. The refractive indices are average and approximate.  


5. To make everything fit on the screen, the new line escape character, \n, is used.  


Code:


from math import *

# radians mode

print("Enter in Degrees")

i=float(input("Incidence Angle? \n"))

a=float(input("Top Angle? \n"))


# convert to radians

ir=i*pi/180

ar=a*pi/180


# choice of material

# refractive index

ls=[1.4905,1.52,1.433,1.58]

k=-1

while k<0 or k>3:

  print("Select Material")

  print("0. Acrylic")

  print("1. Glass")

  print("2. Fluorite")

  print("3. Plastic")

  k=int(input())

n=ls[k]


# calculation

t=asin(sin(ar)*sqrt(n**2-sin(ir)**2)-sin(ir)*cos(ar))

d=ir+t-ar


# convert to degrees

td=t*180/pi

dd=d*180/pi


# results

print("Results are in Degrees")

print("Transmission Angle: \n"+str(td))

print("Deviation: \n"+str(dd))



Casio fx-4000P Program:  Prism


Notes:


1.  Variables used:

I = incidence angle

A = top angle of the prism

N = refractive index, must be entered manually


2.  Outputs:

Transmission Angle (T)

Deviation Angle (D)


Code:

(59 steps)


Deg :

"I": ?→ I:

"A": ?→A:

"N": ?→N:

sin⁻¹ ( sin A × √( N² - (sin I)²) - sin I × cos A) → T ◢

I + T - A → D



Examples


I = incidence angle

A = top angle of the prism

T = Transmission Angle

D = Deviation Angle



1.  I = 50°, A = 60°,  Glass (1.52)


T ≈  48.932708276°

D ≈ 38.932708276°


2.  I = 10°, A = 45°, Plastic (1.58)


T ≈ 80.99437617°

D ≈ 45.99437617°


3.  I = 33°, A = 25°,  Acrylic (1.4905)


T ≈ 5.32137979°

I ≈ 13.32137979°


4.  I = 17°, A = 40°, Fluorite (1.433)


T ≈ 42.66957975°

I ≈ 19.66957975°



Source


Woan, Graham.  The Cambridge Handbook of Physics Formulas  Cambridge University Press.  Cambridge, New York.  2003 edition



Here is to many more years, 


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. 


Saturday, April 15, 2023

DM42, Free42, HP 42S: Birthday Probability Function

DM42, Free42, HP 42S:  Birthday Probability Function



The Age Old Birthday Question


You probably have read or heard about when there is 23 random people in a room, half of the time someone shares a birthday.   This is the classic birthday problem.   


Consider a room with 3 people and assume a 365 day year calendar.   What are are the odds that no one shares a birthday?


For the first person, they clearly have any day of the calendar.

For the second person, they only have 364 days out of the calendar.

For the third person, they only have 363 days available.


The probability that no one shares a birthday is:


P = 365/365 * 364/365 * 363/365

= (365 * 364 * 363) / (365^3)

≈ 0.99180


About 99.180% chance none of the three people share a birthday. 


Note that:

365/365 * 364/365 * 363/365

= (365/365) * (365 - 1)/365 * (365 - 2)/365

=  1 *  (365/365 - 1/365) * (365/365 - 2/365)

=  1 *  (1 - 1/365) * (1 - 2/365)


The derivation above leads to the formula stated by Persi Diaconis and Brain Skyrms (pg. 20 from Ten Great ideas About Chance): 


P = 1 * (N - 1)/C * (N - 2)/C * ...  =  Π( 1 - m/C, m = 1 to N-1)


C = number of categories (examples: days in a calendar year, minutes in an hour, number of places, etc...)

N = sample population

P = probability that sample population does not share a category (examples:  number of people that don't share the same birthday, number of people from a city that are not in the same location, etc...)

Π is the product function.


In our example above, C is the number of days in a 365 day calendar and N is the number of people.  The program BDAY makes the product calculation.



DM42/HP 42S/Free42/Plus42 Program:  BDAY


N and C are prompted.  


00 { 58-Byte Prgm }

01▸LBL "BDAY"

02 "CATEGORIES?"

03 PROMPT

04 STO 02

05 1

06 STO 01

07 "N?"

08 PROMPT

09 1

10 -

11 STO 03

12▸LBL 00

13 1

14 RCL 03

15 RCL÷ 02

16 -

17 STO× 01

18 DSE 03

19 GTO 00

20 "PROB= "

21 ARCL 01

22 AVIEW

23 RCL 01

24 .END.



A Quicker Calculation


Gratitude to Thomas Klemm, this next program is listed here by permission.


A shorter way to calculate this probability (only limited to how large a calculator can handle numbers) is:


P = PERM(C,N) / (C^N)  =  C! / ( (C - N)! * C^N )



DM42/HP 42S/Free42/Plus42 Program:  BDAYC  (compact)


Enter C on the Y stack and N on the X stack before running the program.


00 { 9-Byte Prgm }

01 RCL ST Y

02 X<>Y

03 PERM

04 X<>Y

05 LASTX

06 Y↑X

07 ÷

08 END



Examples


1.  Probability that 40 people do not share a birthday (assume a 365 day calendar):


C =  365, N =  40

Probability: 0.10877


Only about 10.877% chance no one in 40 people share a birthday.  



2.  Probability that 3 cards drawn do not share the same suit:


C = 4  (4 suits in a deck of cards), N =  3

Probability:  0.37500


About 37.5% chance no three cards share the same suit.



3.  A bowl has 50 numbered balls.   16 people draw a ball from the bowl and then places the ball back in the bowl.


C = 50, N = 16

Probability:  0.06751


Only about 6.751% of the time all 16 people draw different numbered balls.  



Sources


Diaconis, Persi and Brian Skyrms  Ten Great Ideas About Chance  Princeton University Press:  Princeton, New Jersey.  2018.  ISBN 978-0-691-19639-8


"(42S/DM42/Free42/Plus42) Birthday Probability Function"  The Museum of HP Calculators.   https://www.hpmuseum.org/forum/thread-19535.html.  Retrieved February 11, 2023.  


This blog turns 12 tomorrow, so excited!



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. 


Wednesday, April 12, 2023

Review: Casio fx-991CW (and the lack of multi-statements)

Review:  Casio fx-991CW (and the lack of multi-statements)







Quick Facts


Model:  fx-991CW

Company:  Casio

Years:  Internationally: 2022 - present, United States: April 2023 - present

Type:  Scientific

Power:  Solar with 1 LR44 backup battery

Display:  Multiline, 4-color gray display

Original Price:  $21.00 - $22.99 U.S. Dollars, varies on the specific version

Number of Variables:  9

Operating System: Algebraic



Update on the Classwiz


The fx-991CW is an update in Casio's Classwiz series, specifically on the 2015 fx-991EX Classwiz.  


Check out my review on the fx-991EX Classwiz from November 2015 here:

http://edspi31415.blogspot.com/2015/11/casio-fx-991ex-classwiz-review.html


The modes on the Classwiz are:


Calculate:  the main app for mathematical calculations


Statistics:  1 to 2 variable statistics.  Regressions include:

Linear:  y=a+bx

Quadratic: y=a+bx+cx^2

Logarithmic:  y=a+b*ln(x)

Exponential:  y=a*e^(bx)

Power I:  y=a*b^x

Power II: y=a*x^b

Inverse:  y=a+b/x


Distribution:  Calculations involving the binomial, normal, and Poisson.  The Inverse Normal deal with the lower tail (left) probability only.  


Spreadsheet:  Like the fx-991EX and Casio's current graphing calculators, the fx-991CW has a spreadsheet which has a 5 x 45 cell capacity.  The total memory is increased to 2,380 bytes (from 1,700 bytes on the fx-991EX).  Basic spreadsheet features included are:  labeling cells, sum, mean, minimum, maximum, absolute cell references ($), copy, cut, and paste.  


Table:   Generate a table of one function or two functions.   The functions are defined as f(x) and g(x).  With a QR code, you can generate a graph of these functions.


Equation:   Solve linear systems, up to 4 x 4 equations.  Solve polynomials, up to 4th order.  Real coefficients only but complex roots are calculated.   The general equation solver is moved to this mode.   


Inequality:  Solve inequalities up for polynomials of orders 2, 3, and 4.


Complex Number:  Complex number arithmetic with polar/rectangular conversion, integer powers, real/imaginary parts, conjugate


Base N:  Integer arithmetic with Boolean logic.  Instead of keys, the [FORMAT] key cycles through the four modes: Decimal, Hexadecimal, Binary, Octal.   Binary integers are up to 31 bytes with 1 sign bit.  We can not store or recall varaible values in this mode.


Matrix:  Works with four matrices up to 4 rows and 4 columns.  Functions include transpose, inverse, and determinant.


Vector:  Works with 4 vectors with either 2 or 3 elements.  Functions include dot product, norm, and cross product.


Ratio:  Solves common ratio problems.


Math Box:  This is the a new feature to the Classwiz.   For the United States, the Math Box has two simulations:  Dice Rolls and Coin Toss.   Depending on the country, the CW may include additional features.  



Emulator and Classpad.net


Purchasing a fx-991CW came with a emulator license with ClassPad.net.   The license number can be obtained using the Get Started option from the Settings menu.   Use the QR code.  For my calculator, the license for using ClassPad.net is seven years at no cost.  However, using an emulator without first purchasing an eligible calculator will require an additional cost.  


You can find details about Classpad.net here:  https://classpad.net/intl/features/



Keyboard, What is Added, and What is Subtracted





The keyboard of the fx-991CW is quite different from the previous Casio calculators.   The keys are now round with a lot less labels.   Most of functions are now stored in the catalog and tools.  Let's go over some of these keys:


[ house icon ]: [HOME].   This is where we switch the modes of the fx-991CW.   There are no numerical shortcuts, so we have to arrow and scroll to select the mode we want.  


[ three lines ]: [SETTINGS].  The settings key replaces the SETUP key sequence.   

Also note that the sub menus are selected by either pressing [ → ] or [ EXE ].  If there are radio buttons, select the option desired.  


[ curved arrow ]: [EXIT/EDIT].  This key, on the 2nd row, 2nd key from the left, will be used to exit menus and re-edit expressions.   


[ double up arrow ]/[ double down arrow ]:  This key, top right of the calculator, is used to quickly scroll through menus or lists.  Think of this key as the Page Up/Page Down key.


[ < >x] ]/[VARIABLE]:  This is the variable key.



Here is where we will store and edit values that are stored in each of the nine variables.   This key replaces the STORE key.     If we are operate in a mode that does not allow for editing or store values, there will be a lock icon with the selected variable.  


To store a result:

1.  Execute operation or recalling a calculated stat variable.

2.  Press [VARIABLE].

3.  Select variable, press [ OK ].

4.  Select Store, press [ OK ].


To edit a variable's value:

1.  Press [VARIABLE].

2.  Select variable, press [ OK ].

3.  Select Edit, press [ OK ].

4.  Enter the new value, press [ OK ].


To recall a variable in a calculation:

1.  Press [ SHIFT ].

2.  Press any of the following keys to get the variable:

[ 4 ]:  A

[ 5 ]:  B

[ 6 ]:  C

[ 1 ]:  D

[ 2 ]:  E

[ 3 ]:  F

[ 0 ]:  x

[ . ]:  y

[ x10^ ]:  z


There is no ALPHA key as it was in past Casio calculators.  


[ f(x) ]/[FUNCTION]:  



Here is where we can store and use up to two functions: f(x) and g(x).  The great news is that f(x) and g(x) are no longer limited to the Table, they can be used in other modes such as Calculate.   The equations f(x) and g(x) are retained while switching modes but not retained when the calculator either is turned off or the Input/Output setting is changed.  A missed opportunity for the latter.


A plus is that either f(x) or g(x) can be a composite function.  That is f(x) can contain g(x) or g(x) can contain f(x).  


There are two ways to access the x variable:  its own key [ x ] or the key sequence [ SHIFT ] [ 0 ].  


[book]/[CATALOG]:  This is where all the functions and commands can be accessed.  The menu order of the catalog changes depending on the mode used.  Some submenus include:


Function Analysis:  The calculus functions, that used to be on the keyboard, are now stored in the Function Analysis menu:  derivative, integral, summation, logarithm*, log*, ln* (* also on the keyboard)


Probability:   % (divides the number by 100), factorial, permutation, combination, random number, random integer


Numeric:  Absolute Value, Round Off (round the number to the Fix settings internally)


Angle/Coord/Sexa...:  angle units (degrees, radians, grads, degrees minutes seconds*), polar/rectangular conversions (* also on the keyboard)


Sci Constants:  47 scientific Constants


Unit Conversions


[ three circles ]/[ TOOLS ]:  The TOOLS menu changes dynamically based on the mode.   For example, the Calculate mode will have an Undo function.


[ FORMAT ]:  Instead of the [S<=>D] key, we have the [FORMAT] key, which asks how to change the value:  Standard, Decimal, Improper Fraction, Mixed Fraction,  ENG (Engineering) Notation, Sexagesimal (degrees-minutes-seconds).


In Base mode, the [ FORMAT ] key toggles between the four bases (decimal, hexadecimal, binary, octal).


I did three comparison speed tests between the fx-991CW and fx-991EX  here:  https://www.youtube.com/watch?v=cj0Odnv0Mwk


As I understand, the fx-991CW has a faster processor than the previous fx-991EX.



Now let's talk about what is subtracted in this update.  You read this correctly, several features did not make it from the fx-991EX to the fx-991CW:


The  CALC feature where we could type in a formula, press [ CALC ] and have formula evaluation.  I was not able to find the CALC feature on the fx-991CW.


There is no longer the independent memory M, nor the storage arithmetic functions M+ and M-.  I miss this feature the most.  I really wish scientific and graphing calculators in general embrace store arithmetic like Hewlett Packard and Swiss Micros.


There is no longer the ability to use multi-statement expressions, with each expression separated with a colon.  Even when it was available, (1) storing results immediately terminated the expression (forcing the use of Ans and when available, PreAns to make using results in the next part possible), and (2) when replayed, the statement was broken up into separate parts.  


Addendum 


Note (4/12/2023):  I am wrong when I said that storing results in multi-statements on the fx-991EX (not the fx-991CW) is impossible.  We use the equals key ([ALPHA] ( = )), as in this example:


A = 9 : B = 8 * A


Csaba Tizedes uses the multi-statement and CALC feature on the fx-991EX to create an IF-THEN-ELSE structure.  In this video Tizedes uses this structure to solve equations using the Bisection method.  The IF-THEN-ELSE structure tests whether a number is positive or negative.  Please take a look his video:


https://www.youtube.com/watch?v=umxScZL1V6A


Gratitude to Csaba Tizedes, this video is shared with his permission.  



Final Thoughts


Overall, the fx-991CW is pretty solid calculator with a readable screen and a lot of features.  My favorite part of the updated is the ability to use the functions f(x) and g(x) outside of the table function.  I also like the catalog key and the page up/page down key.


I get that Casio is going for a simpler, non-busy keyboard.  However, I prefer a separate ALPHA key, along with a STORE key: it's the most efficient way to store variables.   A consequence of a non-busy keyboard is that a lot of the commands can only be accessed through menus.  The ALPHA key could have freed nine keys for more common shifted keys such as x!, polar/rectangular conversions, etc.   I would have liked to see a couple of customizable keys where we can store commands, which could be the shift of the multiplication and division keys.  The financial calculator FC-200V has two slots to store commands.


The faster processor and the better screen are pluses.  You will still get a lot for the money spent on the fx-991CW. 


Caveat:   However, if you want, need, or require subtracted features described above (CALC feature, independent memory, multi-statement expressions), you are better off buying the former fx-991EX or a fx-115ES Plus 2nd Edition.  


Unfortunately, removing the multi-statement, Casio sapped it's algorithmic power with the fx-991CW, and it needs to come back.  Furthermore, please put integer part, fraction part, and sign functions.   


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. 


TI 30Xa Algorithm: Acceleration, Velocity, Speed

TI 30Xa Algorithm: Acceleration, Velocity, Speed Introduction and Algorithm Given the acceleration (α), initial velocity (v0), and...