Showing posts with label impeadance. Show all posts
Showing posts with label impeadance. Show all posts

Saturday, July 15, 2023

Casio fx-3900PV: Program Bank

Casio fx-3900PV:  Program Bank



Here are a few programs for the Casio fx-3900Pv.  These programs should also work on the fx-3600P/fx-180P series (as long as the number of steps is less than 38) except that we can review and edit the steps on the fx-3900Pv.   See my review of the fx-3900Pv here:  


http://edspi31415.blogspot.com/2023/05/retro-review-casio-fx-3900pv.html



Error Function


The program allows the you to calculate the error function:


erf(b) = ∫( 2 * e^(-x²) ÷ √θ dx, x = 0, x = b)


Code:


001   Min

002   MR

003   x²

004   +/-

005   eˣ

006   ×

007   2

008   ÷

009   π

010   √

011   =



To calculate the erf(b):  run integral mode (Mode 1).  Select the program, enter n to get 2^n divisions by pressing [SHIFT] [RUN].   Next, enter 0 [RUN], then b [RUN].


Examples:  n = 6,  (2^6 = 64 divisions)


erf(1.5):

a = 0,  b = 1.5,  Result:  9.661051 * 10^-1


erf(0.4):

a = 0, b = 0.4,  Result:  4.28392 * 10^-1


erf(3.9):

a = 0, b = 3.9,  Result:  9.9999997 * 10^-1




Range and Height of a No-Air Projectile


R = v^2 * sin(2 * θ) ÷ g


H = v^2 * sin^2 θ ÷ (2 * g)


where:

R = range of the projectile (m)

H = maximum height of the projectile (m)

v = initial velocity (m/s)

θ = angle in degrees

g = Earth's gravity = 9.80665 m/s^2


Inputs:

K1 = v

K2 = θ


Outputs:

K3 = R

K4 = H


Used:

K5 = g


Code:


001   DEG  ( MODE 4 )

002   9

003   .

004   8

005   0

006   6

007   6

008   5

009   Kin 5

010   Kout 1

011   x²

012   ÷

013   Kout 5

014   ×

015   (

016   2

017   ×

018   Kout 2

019   )

020   SIN

021   =

022   Kin 3

023   HLT

024   Kout 1

025   x²

026   ×

027   Kout 2

028   SIN

029   x²

030   ÷

031   2

032   ÷

033   Kout 5

034   =

035   Kout 4


Examples:


Inputs:  K1 = 11.9 m/s,  K2 = 40°

Outputs:

R = 14.22082219 m

H = 2.98317166312 m


Inputs:  K1 = 11.9 m/s,  K2 = 60°

Outputs:

R = 12.0558115 m

H = 5.415075484 m

   


Magnitude and Phase of a LCR Series Circuit


Z = √(R² + (w * L - 1 ÷ (w * C))² )


θ = arctan((w * L - 1 ÷ (w * C)) ÷ R)


where:

Z = magnitude (Ω)

θ = phase angle (degrees)

R = resistance (Ω)

L = inductance (H)

C = capacitance (F)

w = angular frequency, where w = 2 * π * f

f = frequency


Inputs:  R, f, C, L

M = f  

K2 = L

K3 = R

K4 = C


Outputs:

K1 = w

K5 = Z

K6 = θ


Note that the source (see Source section below) omitted the square root in the formula for Z.  The above formula is correct.


Code:


001   DEG    (Mode 4)

002   MR

003   Kin 1

004   2

005   Kin× 1   (shown as K×1)

006   π

007   Kin× 1    (shown as K×1)

008   Kout 1

009   ×

010   Kout 2

011   -

012   (

013   Kout 1

014   ×

015   Kout 4

016   )

017   1/x

018   =

019   Kin 6

020   Kout 3

021   x²

022   +

023   Kout 6

024   x²

025   =

026   √

027   Kin 5

028   HLT

029   (

030   Kout 6

031   ÷

032   Kout 3

033   )

034   tan⁻¹

035   =

036   Kin 6



Example:


Inputs:

f = 100 Hz,  [ Min ]

L = 4 * 10^-3 H  (store in K2)

R = 6300 Ω  (store in K3)

C =  5 * 10^-6 F  (store in K4)

Outputs:

Z = 6307.909915 Ω  (K5)

θ = -2.869631956° (K6)



Quadratic Equations:  Real Roots


Solve the equation: 


x^2 + K1 * x + K2 = 0


The roots are:


x = (-K1 ± √(K1^2 - 4 * K2)) ÷ 2


Inputs:

K1 = coefficient of x

K2 = constant


Outputs:

K4 = root 1

K5 = root 2


Used:  K3 = √(K1^2 - 4 * K2)


Code:


001    (

002    Kout 1

003    x²

004    -

005    4    

006    ×

007    Kout 2

008    )

009    √

010    Kin 3

011    (

012    Kout 3

013    +/-

014    -

015    Kout 1

016    )

017    ÷

018    2

019    =

020    Kin 4

021    HLT

022    +

023    Kout 3

024    =

025    Kin 5



Example:


Solve x^2 - 19 * x + 10 = 0

Inputs:

K1 = -19

K2 = 90

Outputs:  9, 10



Source 

(for Range and Height of a No-Air Projectile and Magnitude and Phase of a LCR Series Circuit):


Rosenstein, Morton.   Computing With the Scientific Calculator.  Casio.  1986



Enjoy,


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, July 25, 2020

Fun with the 71B '20

Fun with the 71B '20

Differential Equations:  Runge Kutta Method 4th Order

Find a numerical solution to the differential equation:

dy/dx = f(x, y)

x is the independent variable, y is the dependent variable.  You define f(x,y) on line 10.   For example, dy/dx = sin(x * y) should have this as line 10:

10 DEF FNF(X,Y) = SIN(X*Y)

Line 5 is a remark line.  Remarks are followed by exclamation points on the HP 71B.

HP 71B Program: RK4 

Size: About 300 - 330 bytes

5 ! FNF(X,Y) = dY/dX
10 DEF FNF(X,Y) = [ insert f(x,y) here ]
15 DESTROY X,Y,H,K1,K2,K3,K4
20 INPUT "X0? "; X
25 INPUT "Y0? "; Y
30 INPUT "STEP? "; H
40 K1 = FNF(X,Y)
45 K2 = FNF(X+H/2,Y+H*K1/2)
50 K3 = FNF(X+H/2,Y+H*K2/2)
55 K4 = FNF(X+H,Y+H*K3)
60 X=X+H
65 Y=Y+H*(K1+2*K2+2*K3+K4)/6
80 DISP "(";X;",";Y;")" @ PAUSE
85 DISP "NEXT? Y/N"
90 A$=KEY$
95 IF A$="Y" THEN 40
99 IF A$="N" THEN DISP "DONE" @ END ELSE 85

Example:
dy/dx = sin(x * y) with inital condition y(0) = 0.5,  h = 0.2 * π

First three results:
( .628318530718 , .607747199386 )   ( [ f ] [ +] (CONT), [ Y ] )
( 1.25663706144, 1.02432288082 )
( 1.88495559216, 1.51038862362 ) 

Hyperbolic Functions

[ S ] = sinh(x)
[ C ] = cosh(x)
[ A ] = asinh(x)
[ H ] = acosh(x)
[ X ]  to exit

HP 71B Program: HYP

Size:  401 bytes
acosh(x) requires that | x | ≥ 1

100 DESTROY A,X
115 DISP "sinh S/A, cosh C/H, X"
120 A$=KEY$
125 IF A$="S" THEN INPUT "X? ";X @ CALL SINH(X)
130 IF A$="C" THEN INPUT "X? ";X @ CALL COSH(X)
135 IF A$="A" THEN INPUT "X? ";X @ CALL ASINH(X)
140 IF A$="H" THEN INPUT "X? ";X @ CALL ACOSH(X)
145 IF A$="X" THEN 150 ELSE 115
150 DISP "DONE" @ END
200 SUB SINH(X)
205 DISP (EXP(X)-EXP(-X))/2 @ PAUSE
210 END SUB
300 SUB COSH(X)
305 DISP (EXP(X)+EXP(-X))/2 @ PAUSE
310 END SUB
400 SUB ASINH(X)
405 DISP LOG(X+SQR(X^2+1)) @ PAUSE
410 END SUB
500 SUB ACOSH(X)
510 DISP LOG(X+SQR(X^2-1)) @ PAUSE
515 END SUB

Example:
X = 2.86

sinh(2.86) returns 8.70212908815
cosh (2.86) returns 8.75939784845
asinh(2.86) returns 1.77321957441
acosh(2.86) returns  1.71190019325

Arithmetic-Geometric Mean

The arithmetic-geometric mean (AGM) is found by the iterative process:

a = 0.5 * (x + y)
g = √(x * y)

The values of a and g are stored into x and y, respectively.  The process repeats until the values of a and g converge.   A tolerance of 10^(-9) is used to display an 8-digit approximation.

HP 71B Program: AGM

Size:  148 Bytes

10 DESTROY X,Y,A,B
15 DISP "AGM(X,Y)" @ WAIT .5
20 INPUT "X? ";X
25 INPUT "Y? ";Y
30 A=.5*(X+Y)
35 G=SQR(X*Y)
40 X=A
45 Y=G
50 IF ABS(X-Y)>1E-9 THEN 30
55 DISP USING 60;X
60 IMAGE 10D.8D    // (10 digit integer parts with rounding to 8 decimal places)
65 END

Example:
AGM(178, 136)

Result:  156.29380544

Pythagorean Triple Generator

Given two positive integers m, n; where m > n, a Pythagorean triple is generated with the following calculations:

a = 2*m*n
b = m^2 - n^2
c = m^2 + n^2

Properties:

a^2 + b^2 = c^2
Perimeter: p = a + b + c
Area: r = a * b / 2

HP 71B Program: PYTHTRI

Size: 217 bytes

10 DESTROY M,N,A,B,C,R,P
20 DISP "M>N, INTEGERS" @ WAIT .5
25 INPUT "M? "; M
30 INPUT "N? "; N
35 A=2*M*N
40 B=M^2-N^2
45 C=M^2+N^2
50 P=A+B+C
55 R=A*B/2
60 DISP 'A = ';A @ PAUSE
65 DISP 'B = ';B @ PAUSE
70 DISP 'C = ';C @ PAUSE
75 DISP 'PERIM.=';P @ PAUSE
80 DISP 'AREA =';R
85 END

Example:
M = 16, N = 11

Results:
A = 352, B = 153, C = 377, P = 864, R = 23760

Impedance of An Alternating Current

The program ALTCURR calculates the impedance (magnitude and phase angle) of a sinusoidal alternating current consisting of one resistor, one capacitor, and one inductor in a series.

HP 71B Program: ALTCURR

Size: 210 bytes

10 DESTROY F,L,C, R,W,Z,T
15 DEGREES
20 INPUT "FREQUENCY? ";F
25 INPUT "INDUCTANCE? ";L
30 INPUT "CAPACITANCE? ";C
35 INPUT "RESISTANCE? ";R
40 W=2*PI*F
45 Z=SQR(R^2+(W*L-1/(W*C))^2)
50 T=ATAN((W*L-1/(W*C))/R)
55 DISP "MAGNITUDE= "; Z @ PAUSE
60 DISP "PHASE ANGLE = "; T

Example:
F = 152 Hz
L = 4.75E-3 H  (4.75 mH)
C = 8E-6 F  (8 μF)
R = 6400 Ω

Results: 
Magnitude:  6401.24704262
Phase Angle: -1.1309750812°

Source:
Rosenstein, Morton.  Computing With the Scientific Calculator Casio.  Japan. 1986.  ISBN 1124161430


Eddie

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.

DM42 and HP 42S: Quadratic Equation, Characteristic Polynomial, and Eigenvalues

DM42 and HP 42S: Quadratic Equation, Characteristic Polynomial, and Eigenvalues The programs are listed for the Swiss Micros DM42 an...