Special Relativity for the HP-41
Overview
1°) The Lorentz Transformation
2°) Composition of Speeds & Relative
Velocity
3°) Doppler Effect & Aberration
4°) Elastic Collision
4-a) 2 Particles with the same masses
4-b) 2 Particles with different masses
4-c) Compton Effect
-See also "Einstein's Twin Paradox for the HP-41"
1°) The Lorentz Transformation
y'
y
| z'
|
| /
|
z |
/
|
/ |
/
| /
|/-------------------------- x'
( Ox ) // ( O'x' )
| /
O'
( Oy ) // ( O'y' )
|/-----------------------------------
x
( Oz ) // ( O'z' )
O
-We assume that O' has a constant velocity ß = ( ßx
, ßy , ßz ) with respect to ( Ox , Oy
, Oz ).
and that the event ( 0 , 0 , 0 , 0 ) has the same coordinates
in both reference-frames.
-The following program performs the conversion ( x , y , z , ct
) < > ( x' , y' , z' , ct' ) for a given event
Formulae: With r(x,y,z) and r'(x',y',z') , g = ( 1 - b2 ) -1/2 , ß = || ß || = ( ßx2 + ßy2 +ßz2 ) 1/2
r = r' + ß.g [ g/(g+1)
ß.r'
+ c t' ]
c t = g ( c t' + ß.r' )
where ß.r and ß.r' are the dot products
r' = r + ß.g [
g/(g+1)
ß.r - c t ]
c t' = g ( c t' - ß.r )
Data Registers: R00 = Dilatation Factor = g = ( 1 - ß2 ) -1/2 ( Registers R01 thru R03 are to be initialized before executing "LRTF" )
• R01 = ßx
R04 = x ( or x' if SF 00 )
R08 = the invariant c2 t2 - x2
- y2 - z2 = c2 t'2 - x'2
- y'2 - z'2
• R02 = ßy
R05 = y ( or y' if SF 00 )
• R03 = ßz
R06 = z ( or z' if SF 00 )
R07 = ct ( or ct' if SF 00 )
Flags: F00
CF 00 for the transformation ( r , ct ) >>>
( r' , ct' )
SF 00 for the transformation ( r' , ct' ) >>>
( r , ct )
Subroutines: /
01 LBL "LRTF"
02 STO 04 03 X^2 04 X<>Y 05 STO 05 06 X^2 07 + 08 X<>Y 09 STO 06 10 X^2 11 + 12 X<>Y 13 STO 07 14 X^2 15 X<>Y 16 - |
17 STO 08
18 1 19 RCL 01 20 X^2 21 RCL 02 22 X^2 23 RCL 03 24 X^2 25 + 26 + 27 - 28 SQRT 29 1/X 30 STO 00 31 RCL 07 32 RCL 01 |
33 RCL 04
34 * 35 RCL 02 36 RCL 05 37 * 38 + 39 RCL 03 40 RCL 06 41 * 42 + 43 FS? 00 44 ST+ Y 45 FC? 00 46 ST- Y 47 RCL 00 48 ST* Z |
49 ST* Y
50 1 51 + 52 / 53 RCL 07 54 FC? 00 55 CHS 56 + 57 RCL 00 58 * 59 RCL 03 60 X<>Y 61 * 62 RCL 02 63 LASTX 64 * |
65 RCL 01
66 ST* L 67 CLX 68 RCL 06 69 ST+ Z 70 CLX 71 RCL 05 72 ST+ Y 73 CLX 74 RCL 04 75 ST+ L 76 X<> L 77 END |
( 98 bytes / SIZE 009 )
STACK(CF00) | INPUTS | OUTPUTS |
T | c.t | c.t' |
Z | z | z' |
Y | y | y' |
X | x | x' |
STACK(SF 00) | INPUTS | OUTPUTS |
T | c.t' | c.t |
Z | z' | z |
Y | y' | y |
X | x' | x |
Example1: Velocity ß
= ( 0.4 ; 0.5 ; 0.6 ) Event = ( x , y
, z , c.t ) = ( 1 , 2 , 3 , 4 )
0.4 STO 01
0.5 STO 02
0.6 STO 06
CF 00
4 ENTER^
3 ENTER^
2 ENTER^
1 XEQ "LRTF" >>>> x =
-0.5324
RDN y = 0.0846
RDN z = 0.7015
RDN c.t = 1.6681
-We also have the dilatation factor g = R00 = 2.0851 and
the invariant c2 t2 - x2 -
y2 - z2 = R08 = 2
Example2: With the same ß = ( 0.4 ; 0.5 ; 0.6 ) Event = ( x' , y' , z' , c.t' ) = ( 1 , 2 , 3 , 4 )
SF 00
4 ENTER^
3 ENTER^
2 ENTER^
1 XEQ "LRTF" >>>> x =
6.1401
RDN y = 8.4251
RDN z = 10.7102
RDN c.t = 15.0130
Notes:
-If R08 > 0 it is a time-like event.
-If R08 < 0 it is a space-like event.
2°) Composition of Speeds & Relative Velocity
-We assume that the units are chosen so that c = speed of light = 1
y'
y
| z'
|
| /
|
z |
/ . P = Particle
|
/ |
/
| /
|/-------------------------- x'
| /
O'
|/-----------------------------------
x
O
- O' has a constant velocity u = ( ux , uy , uz ) with respect to ( Ox , Oy , Oz )
Problem1: The speed of a particle P is v = ( vx , vy , vz ) with respect to ( Ox' , Oy' , Oz' ). Calculate its speed w with respect to ( Ox , Oy , Oz )
Answer: w = ( wx , wy , wz ) with
wx = [ vx + g.ux
( g u.v /(g+1) + 1 ] / [ g ( 1 + u.v ) ]
wy = [ vy + g.uy ( g
u.v
/(g+1) + 1 ] / [ g ( 1 + u.v ) ]
u.v = dot product g = ( 1 - ux2
- uy2 - uz2 ) -1/2
wz = [ vz + g.uz
( g u.v /(g+1) + 1 ] / [ g ( 1 + u.v ) ]
Problem2: The speed of this particle P is v = ( vx , vy , vz ) with respect to ( Ox , Oy , Oz ). Calculate its relative velocity w with respect to ( Ox' , Oy' , Oz' )
Answer: w = ( wx , wy , wz ) with
wx = [ vx + g.ux
( g u.v /(g+1) - 1 ] / [ g ( 1 - u.v ) ]
wy = [ vy + g.uy ( g
u.v
/(g+1) - 1 ] / [ g ( 1 - u.v ) ]
wz = [ vz + g.uz
( g u.v /(g+1) - 1 ] / [ g ( 1 - u.v ) ]
-Since these formulae only differ in a few changes of sign, we can use
a unique program and a flag.
Data Registers: R00 = Dilatation Factor = g = ( 1 - u2 ) -1/2 ( Registers R01 thru R06 are to be initialized before executing "SPEED" )
• R01 = ux • R04 =
vx R07 = wx
• R02 = uy • R05 = vy
R08 = wy
• R03 = uz •
R06 = vz
R09 = wz
Flag: F01
CF 01 for the composition of speeds
SF 01 for the relative velocity
Subroutines: /
01 LBL "SPEED"
02 1 03 RCL 01 04 X^2 05 RCL 02 06 X^2 07 RCL 03 08 X^2 09 + 10 + 11 - 12 SQRT 13 1/X 14 STO 00 15 STO 07 |
16 RCL 01
17 RCL 04 18 * 19 RCL 02 20 RCL 05 21 * 22 + 23 RCL 03 24 RCL 06 25 * 26 + 27 * 28 FS? 01 29 CHS 30 ST+ 07 |
31 *
32 X<>Y 33 1 34 + 35 / 36 + 37 FS? 01 38 CHS 39 RCL 06 40 RCL 03 41 RCL Z 42 * 43 + 44 RCL 07 45 / |
46 STO 09
47 X^2 48 X<>Y 49 RCL 02 50 * 51 RCL 05 52 + 53 RCL 07 54 / 55 STO 08 56 X^2 57 + 58 X<>Y 59 RCL 01 60 * |
61 RCL 04
62 + 63 RCL 07 64 / 65 STO 07 66 X^2 67 + 68 SQRT 69 RCL 09 70 RCL 08 71 RCL 07 72 END |
( 86 bytes / SIZE 010 )
STACK | INPUTS | OUTPUTS |
T | / | w |
Z | / | wz |
Y | / | wy |
X | / | wx |
where w is the norm of the 3-vector w = ( wx , wy , wz )
-if CF 01 w = the composition of u and
v
-if SF 01 w = the relative speed ( with respect
to the 2nd reference-frame )
Example: u = ( 0.4 , 0.5 , 0.6 ) v = ( 0.27 , 0.37 , 0.47 )
0.4 STO 01
0.27 STO 04
0.5 STO 02
0.37 STO 05
0.6 STO 03
0.47 STO 06
CF 01 XEQ "SPEED" >>>> wx
= 0.434880406
( execution time = 2.5 seconds )
RDN wy = 0.553496668
RDN wz = 0.672112930
RDN w = 0.973249875
SF 01 XEQ "SPEED" >>>> wx
= -0.270737319
RDN wy = -0.301747643
RDN wz = -0.332757967
RDN w = 0.524478981
Notes:
-The composition of speeds is not commutative in the general
case.
-However, the norms w are identical
-There will be a DATA ERROR line 12 or 13 if u = || u
|| is equal to or greater than 1
-However, the program also works if v = || v || = 1 (
a photon )
and if v = || v || is greater than 1. In
this case, the particle P is a ( hypothetic ) tachyon !
-The formulas are much simpler if uy = uz
= vy = vz = 0
then wy = wz = 0 and for the
composition of speeds:
wx = ( ux + vx ) / ( 1 + ux
vx )
-If you only want to compute the magnitude w , the routine hereafter
is shorter than "SPEED"
-It uses the formulae:
w2 = [ ( u + v )2 - ( u
x v )2 ] / ( 1 + u.v )2
for the composition of speeds
where u.v is the dot product
w2 = [ ( u - v )2 - ( u
x v )2 ] / ( 1 - u.v )2
for the relative velocities
and u x v is the cross-product
Data Registers: R00 = w ( Registers R01 thru R06 are to be initialized before executing "MAGW" )
• R01 = ux • R04 =
vx
• R02 = uy • R05 = vy
• R03 = uz •
R06 = vz
Flag: F01
CF 01 for the composition of speeds
SF 01 for the relative speed
Subroutines: "DOT" & "CROSS" ( cf "Dot-product
& Cross-product for the HP-41" )
01 LBL "MAGW"
02 1 03 RCL 06 04 RCL 05 05 RCL 04 06 XEQ "CROSS" 07 X^2 08 X<>Y 09 X^2 10 + |
11 X<>Y
12 X^2 13 + 14 RCL 01 15 RCL 04 16 FS? 01 17 CHS 18 + 19 X^2 20 RCL 02 |
21 RCL 05
22 FS? 01 23 CHS 24 + 25 X^2 26 + 27 RCL 03 28 RCL 06 29 FS? 01 30 CHS |
31 +
32 X^2 33 + 34 X<>Y 35 - 36 SQRT 37 STO 00 38 SIGN 39 4.006 40 XEQ "DOT" |
41 FS? 01
42 CHS 43 1 44 + 45 ST/ 00 46 RCL 00 47 END |
( 75 bytes / SIZE 007 )
STACK | INPUTS | OUTPUTS |
X | / | w |
where w is the norm of the 3-vector w = ( wx , wy , wz )
-if CF 01 w = the composition of u and
v
-if SF 01 w = the relative speed ( with respect
to the 2nd reference-frame )
Example: u = ( 0.4 , 0.5 , 0.6 ) v = ( 0.27 , 0.37 , 0.47 )
0.4 STO 01
0.27 STO 04
0.5 STO 02
0.37 STO 05
0.6 STO 03
0.47 STO 06
CF 01 XEQ "MAGW" >>>> w = 0.973249875
SF 01 XEQ "MAGW" >>>> w
= 0.524478980
Remark:
-If we know the magnitudes u & v and the angle
µ = ( u , v )
we can calculate the magnitude w and the angle µ' = ( u
, w ) with the following program:
01 LBL "U+V"
02 RCL Y 03 P-R 04 STO 00 05 RDN 06 STO 01 07 X^2 08 X<>Y |
09 X^2
10 X<> Z 11 FS? 01 12 CHS 13 ST+ 00 14 ST* T 15 X^2 16 STO 02 |
17 ST+ Z
18 * 19 - 20 + 21 + 22 SQRT 23 X<>Y 24 1 |
25 +
26 / 27 1 28 RCL 02 29 - 30 SQRT 31 RCL 01 32 * |
33 RCL 00
34 R-P 35 X<> Z 36 END |
( 51 bytes / SIZE 003 )
STACK | INPUTS | OUTPUTS |
Z | u | / |
Y | v | µ' |
X | µ | w |
-if CF 01 w = the composition of u and
v
-if SF 01 w = the relative speed
Example: u = 0.7 v = 0.8 µ = ( u , v ) = 41°
CF 01
0.7 ENTER^
0.8 ENTER^
41 XEQ "U+V" >>>>
w = 0.953563802
---Execution time = 2.3s---
X<>Y µ' = 16.03924045°
SF 01
0.7 ENTER^
0.8 ENTER^
41 XEQ "U+V" >>>>
w = 0.670241444
X<>Y µ' = 104.3994224°
-If you execute "U+V" after clearing F01 with
0.7
ENTER^
0.670241444 ENTER^
104.3994224 R/S
it yields 0.8
( with small roundoff errors )
X<>Y 41°
Note:
-The formulas are:
w = ( u2 + v2
+ 2 u v cos µ - u2 v2 sin2 µ
)1/2 / ( 1 + u v cos µ )
simply replace µ by -µ for the relative velocity
tan µ = [ ( 1 - u2 )1/2 v sin µ
] / ( u + v cos µ )
3°) Doppler Effect & Aberration
-The frequency and the direction of a photon are changed by the relative
motion of the source and the observer.
-The following program performs these conversions.
S = Source S = Source
S\\---> ß
S/ /---> ß
\ \
y
/ /
\ \
|
/ /
cS \ \
c0
| cS/
/ c
ß = velocity of the source , we assume ß
// (Ox)
.
.
| .
.
cS = velocity of a photon, seen in the source reference-frame
. µS
. µ0
| . µS . µ0
c0 = velocity of the photon, seen in the
observer reference-frame
----------------------------------|----------------------------------
x
O = Observer
µS = the angle ( ß , -cS
) = ( Ox , -cS )
µ0 = the angle ( ß , -c0
) = ( Ox , -c0 ) is measured by the observer
fS = frequency in the source reference-frame
Of course || cS || = || c0 ||
= 1
f0 = frequency measured by the observer
Formulae:
f0 = fS ( 1 - ß2
) -1/2 ( 1 - ß cos µS )
cos µ0 = ( cos µS - ß ) ( 1 - ß
cos µS ) -1
fS = f0 ( 1 - ß2
) -1/2 ( 1 + ß cos µ0 )
cos µS = ( cos µ0 + ß ) ( 1 + ß
cos µ0 ) -1
-We assume that µS and µ0 are
between 0 and 180° and ß is non-negative
-The source is moving away if µ0 < 90°
Data Registers: /
Flag: F00
CF 00 for the conversion ( f0 , µ0 )
>>> ( fS , µS )
SF 00 for the conversion ( fS , µS )
>>> ( f0 , µ0 )
Subroutines: /
01 LBL "DAB"
02 RCL Z 03 FS? 00 04 CHS 05 STO T 06 X^2 07 SIGN 08 ST- L 09 X<> L 10 CHS 11 SQRT 12 / 13 RDN 14 COS 15 ST+ Z 16 * 17 1 18 + 19 ST* Z 20 / 21 ACOS 22 X<>Y 23 END |
( 38 bytes / SIZE 000 )
STACK(CF 00) | INPUTS | OUTPUTS |
Z | ß | / |
Y | µ0 | µS |
X | f0 | fS |
STACK(SF00) | INPUTS | OUTPUTS |
Z | ß | / |
Y | µS | µ0 |
X | fS | f0 |
Example1: ß = 0.7
µ0 = 41° f0 = 10
CF 00
0.7 ENTER^
41 ENTER^
10 XEQ "DAB" yields
fS = 21.4004 X<>Y µS
= 17.8522°
-Likewise, ß = 0.7 µ0 = 150° f0 = 10 give fS = 5.5141 and µS = 114.9367°
Example2: ß = 0.7 µS = 41° fS = 10
SF 00
0.7 ENTER^
41 ENTER^
10 XEQ "DAB" gives in 1.8 second
f0 = 6.6052 X<>Y µ0
= 83.3397°
-Likewise, ß = 0.7 µS = 150° fS = 10 produce f0 = 22.4915 and µ0 = 167.1555°
Notes:
-The frequencies f0 & fS are equal
iff ( ß = 0 or ß cos2 µ0
+ 2 cos µ0 + ß = 0 )
i-e ( ß = 0 or ß cos2 µS
- 2 cos µS + ß = 0 )
for ß = 0.7 the solution is µ0 = 114.1023165° i-e µS = 65.89768346°
-"DAB" works in all angular modes.
-However, the program listed above should not be used if
µ is very near 0° or 180° because ACOS doesn't
give enough accurate results in that cases.
-For example, with ß = 0.7 and µ0
= 0.01° it yields µS = 0.003969568048°
whereas the correct value is µS = 0.004200840261°
-The following variant uses R-P instead of ACOS , it employs the formulae:
Tan µ0 = Sin µS ( cos
µS - ß ) -1 ( 1 - ß2
) 1/2
Tan µS = Sin µ0 ( cos
µ0 + ß ) -1 ( 1 - ß2
) 1/2
01 LBL "DAB"
02 X<> Z 03 FS? 00 04 CHS 05 STO T 06 X^2 |
07 SIGN
08 ST- L 09 X<> L 10 CHS 11 SQRT 12 ST/ Z |
13 X<>Y
14 SIN 15 ST* Y 16 X<> L 17 COS 18 STO L |
19 R^
20 ST* Y 21 ST+ L 22 CLX 23 1 24 ST+ Y |
25 RDN
26 ST* Z 27 X<> L 28 R-P 29 X<> Z 30 END |
( 53 bytes / SIZE 000 )
STACK(CF 00) | INPUTS | OUTPUTS |
Z | ß | / |
Y | µ0 | µS |
X | f0 | fS |
STACK(SF00) | INPUTS | OUTPUTS |
Z | ß | / |
Y | µS | µ0 |
X | fS | f0 |
-Examples 1 and 2 produce the same results, but this time, ß
= 0.7 and µ0 = 0.01° yield
µS = 0.004200840259°
-Moreover, this program also works if -180° < µ
< 0°
-6 bytes may be saved if you replace lines 06 to 11 by ASIN
COS but the execution time becomes 3.4 seconds instead of
2.5 seconds.
4°) Elastic Collision
a) 2 Particles with the same
masses
ß1
*
One particle is initially at rest in O
ß
* µ
The incoming particle has a speed ß ( ß <
1 = speed of light )
* * * * * * * * * * *
O *
After the shock, the speed of the incoming particle has become ß1
*
and the speed of the other particle - initially at rest - is ß2
* ß2
µ is the angle between the vectors ß1
, ß2
Formulae:
cos µ = ß1.ß2 [ 1 + ( 1 - ß12 )1/2 ] -1 [ 1 + ( 1 - ß22 )1/2 ] -1
ß2/( 1 - ß2 ) = ß12/( 1 - ß12 ) + 2.ß1.ß2 cos µ ( 1 - ß12 ) -1/2 ( 1 - ß22 ) -1/2 + ß22/( 1 - ß22 )
-We also have: ( 1 - ß2 ) -1/2 = ( 1 - ß12 ) -1/2 + ( 1 - ß22 ) -1/2 - 1 but the results would be less accurate for ß << 1
-All these relations come from the conservation of the energy-momentum.
Data Registers: /
Flags: /
Subroutines: /
01 LBL "COLL"
02 STO M 03 ENTER^ 04 X^2 05 SIGN 06 LASTX 07 - 08 SQRT |
09 ST/ M
10 1 11 + 12 / 13 * 14 1 15 R^ 16 X^2 |
17 -
18 SQRT 19 ST/ Z 20 1 21 + 22 / 23 ST* Y 24 ACOS |
25 X<>Y
26 ST+ X 27 0 28 X<> M 29 ST* Y 30 X^2 31 + 32 R^ |
33 X^2
34 + 35 1/X 36 1 37 + 38 1/X 39 SQRT 40 END |
( 56 bytes / SIZE 000 )
STACK | INPUTS | OUTPUTS |
Y | ß1 | µ |
X | ß2 | ß |
Example: ß1 = 0.9
ß2 = 0.8
0.9 ENTER^
0.8 XEQ "COLL" >>>>
ß = 0.941238075 ( execution
time = 2.3 seconds )
X<>Y µ = 71°73608140
( in DEG mode )
-This program works in all angular modes.
-Synthetic register M may be replaced by R00 or any other data register.
-When ß is very small, µ ~ 90° , this is the classical
result !
-If you know ß1 & ß2 , you may
wish to calculate ß & µ
-You'll have to solve the following equation:
x2 sin2 µ - x [ 1 + ( 1 - ß2
) -1/2 ] sin2 µ + [ 2 + ( 1 - ß2
) -1/2 ] cos2 µ + ( 1 - ß2
) -1/2 = 0 where x = ( 1 - ßi2
) -1/2 i = 1 , 2
Data Registers: /
Flags: /
Subroutines: /
01 LBL "COLL2"
02 X^2 03 SIGN 04 LASTX 05 - 06 SQRT 07 1/X 08 1 09 + |
10 2
11 / 12 ENTER^ 13 ENTER^ 14 SIGN 15 + 16 X^2 17 RCL Y 18 R^ |
19 SIN
20 X^2 21 / 22 4 23 * 24 - 25 SQRT 26 ST+ Z 27 - |
28 X^2
29 1/X 30 SIGN 31 LASTX 32 - 33 SQRT 34 X<>Y 35 X^2 36 1/X |
37 SIGN
38 LASTX 39 - 40 SQRT 41 END |
( 53 bytes / SIZE 000 )
STACK | INPUTS | OUTPUTS |
Y | µ < 90° | ß2 |
X | ß | ß1 |
Example: µ = 60° ß = 0.986
-in DEG mode
60 ENTER^
0.986 XEQ "COLL2" >>>>
ß1 = 0.977634203
( execution time = 2.3 seconds )
X<>Y ß2 = 0.895051724
-This program works in all angular modes.
b) 2 Particles with different
masses
ß1
*
One particle ( mass m2 ) is initially at rest in O
ß
* µ1
The incoming particle ( mass m1 ) has a speed ß
( ß < 1 = speed of light )
* * * * * * * * * * *----------------------------
O * µ2
After the shock, the speed of the incoming particle has become ß1
*
and the speed of the other particle - initially at rest - is ß2
* ß2
µ = µ1 + µ2 is the
angle between the vectors ß1 , ß2
Formulae: m.ß ( 1 - ß2 ) -1/2 = m.ß1 cos µ1 ( 1 - ß12 ) -1/2 + ß2 cos µ2 ( 1 - ß22 ) -1/2 where m = m1/m2
m2 ß2/( 1 - ß2 ) + m2 ß12/( 1 - ß12 ) - 2.m2.ß.ß1 cos µ1 ( 1 - ß2 ) -1/2 ( 1 - ß12 ) -1/2 = ß22/( 1 - ß22 )
m ( 1 - ß2 ) -1/2 = m ( 1 - ß12 ) -1/2 + ( 1 - ß22 ) -1/2 - 1 which is re-written:
( 1 - ß2 ) -1/2 = 1 + eps with eps = ß12 [ 1 - ß12 + ( 1 - ß12 ) -1/2 ] -1 + (1/m) ß22 [ 1 - ß22 + ( 1 - ß22 ) -1/2 ] -1
whence ß
= [ 2.eps + (eps)2 ]1/2 ( 1 + eps ) -1
and ß2/( 1 - ß2 ) =
2.eps + (eps)2
-Thus, the formulas are also accurate for small speeds ( ß
<< 1 )
Data Registers: R00 thru R03: temp
Flags: /
Subroutines: /
01 LBL "COLL3"
02 STO 02 03 X^2 04 STO 00 05 SIGN 06 LASTX 07 - 08 ENTER^ 09 SQRT 10 ST/ 02 11 + 12 R^ 13 ST/ 02 14 * |
15 RCL 00
16 X<>Y 17 / 18 X<>Y 19 STO 01 20 X^2 21 STO 00 22 SIGN 23 LASTX 24 - 25 ENTER^ 26 SQRT 27 ST/ 01 28 + |
29 RCL 00
30 X<>Y 31 / 32 + 33 ENTER^ 34 STO 00 35 2 36 + 37 * 38 STO 03 39 RCL 02 40 X^2 41 - 42 RCL 01 |
43 X^2
44 + 45 RCL 03 46 SQRT 47 STO 03 48 ST+ X 49 / 50 STO Z 51 RCL 01 52 / 53 ACOS 54 RCL 03 55 R^ 56 - |
57 RCL 02
58 / 59 ACOS 60 X<>Y 61 RCL 00 62 1 63 + 64 RCL 03 65 X<>Y 66 / 67 END |
( 82 bytes / SIZE 004 )
STACK | INPUTS | OUTPUTS |
Z | m = m1/m2 | µ2 |
Y | ß1 | µ1 |
X | ß2 | ß |
Example: m = m1/m2
= 2 , ß1 = 0.9 , ß2
= 0.8
-In DEG mode:
2 ENTER^
0.9 ENTER^
0.8 XEQ "COLL3" >>>>
ß = 0.924743364 ( in 3.4
seconds )
RDN µ1 = 14°30751818
RDN µ2 = 49°94058793
whence µ = µ1 + µ2
= 64°24810611
-This routine works in all angular modes.
-Of course, it also works if m = 1
-For instance, with m = m1/m2 = 1
, ß1 = 0.9 , ß2
= 0.8 it yields:
ß = 0.941238075 µ1 = 27°02226934 µ2 = 44°71381201
whence µ = µ1 + µ2 = 71°73608135 which we had already found above with "COLL" ( except in the last decimal )
-Knowing m , ß and µ = µ1 + µ2
allows to compute ß1 & ß2
-This can be done by solving the cubic equation:
x3 sin2 µ - x2 ( u + 2/m ) sin2 µ + x ( 1/m2 + 2.u/m + cos2 µ ) - [ u/m2 + ( u + 2/m ) cos2 µ ] = 0 where x = ( 1 - ß12 ) -1/2 & u = ( 1 - ß2 ) -1/2
then ( 1 - ß22 ) -1/2 = 1 - m ( 1 - ß2 ) -1/2 - m ( 1 - ß12 ) -1/2
-So, the results may be inaccurate with small velocities ( ß <<
1 )
Data Registers: R00 thru R04: temp
Flag: F01
Subroutine: "P3" ( cf "Polynomials
for the HP-41" )
01 LBL "COLL4"
02 X^2 03 SIGN 04 LASTX 05 - 06 SQRT 07 1/X 08 STO 00 09 SIGN 10 P-R 11 X^2 12 X<>Y 13 X^2 |
14 STO 01
15 R^ 16 1/X 17 STO 02 18 ST+ X 19 RCL 00 20 + 21 STO 03 22 * 23 CHS 24 RCL 00 25 STO 04 26 ST+ X |
27 RCL 02
28 ST* Y 29 X^2 30 ST* 04 31 + 32 R^ 33 ST+ Y 34 RCL 03 35 * 36 RCL 04 37 + 38 CHS 39 RCL 01 |
40 RDN
41 XEQ "P3" 42 ENTER^ 43 CF 01 44 RCL 00 45 X<>Y 46 - 47 RCL 02 48 ST+ Y 49 X<>Y 50 / 51 X^2 52 SIGN |
53 LASTX
54 - 55 SQRT 56 X<>Y 57 X^2 58 1/X 59 SIGN 60 LASTX 61 - 62 SQRT 63 END |
( 83 bytes / SIZE 005 )
STACK | INPUTS | OUTPUTS |
Z | m = m1/m2 | / |
Y | µ | ß2 |
X | ß | ß1 |
Example: m = m1/m2
= 2 , µ = 77° , ß = 0.986
-In DEG mode:
2 ENTER^
77 ENTER^
0.986 XEQ "COLL4" >>>> ß1
= 0.985702487 ( in 6.4 seconds )
RDN ß2 = 0.457448346
-This program gives one solution ( ß1 , ß2
) and, in the above example, there is indeed a unique solution.
-But in other examples, there are 3 solutions - corresponding to the
3 solutions of the cubic ( flag F01 remains clear in this case )
-For instance, with m = 1.2 , µ = 67° , ß = 0.931 , the 3 solutions are:
ß1 =
0.808532649 ß2 =
0.895634440
If you want to calculate all the solutions,
ß1 =
0.768103288 ß2 =
0.910120305
change the listing after line 41:
ß1 =
0.487300873 ß2 =
0.939242706
at this step, the 3 x-solutions ( if F01 is clear ) are in registers X
Y Z
-When µ > 90° , this program may give a wrong solution:
for example the solution corresponding to µ = 83° instead of
µ = 97°
-So, it's safer to check with "COLL3" if the results are exact or not!
( the cubic equation only involves sin2 µ &
cos2 µ , therefore it cannot distinguish µ
from 180° - µ )
c) Compton Effect
h.f '
*
One particle ( usually an electron ) is initially at rest in O
h.f
* µ1
The incoming photon has an energy E = h.f = h.c/L ( f = frequency
, L = wave-length ,
* * * * * * * * * * *----------------------------
h = Planck's constant , c = speed of light )
O * µ2
After the shock, the energy of the photon has become E = h.f ' =
h.c/L'
*
and the speed of the other particle - initially at rest - is ß
* ß
Formulae: L' - L = 2(h/mc) sin2 µ1/2
( 1 - ß2 ) -1/2 = 1 + eps with eps = (h/mc).( L' - L )/(L.L')
whence ß = [ 2.eps + (eps)2 ]1/2 ( 1 + eps ) -1 and ß/( 1 - ß2 ) -1/2 = [ 2.eps + (eps)2 ] 1/2
ß.cos µ2 ( 1 - ß2 ) -1/2 = ( L' - L ).[ 1 + h/(mcL) ]/L'
-With these formulas, the results are also accurate if ß
<< 1.
Data Registers:
R00 = L' - L R02 = L'
R04 = ß/( 1 - ß2 ) -1/2
R01 = L
R03 = µ1 R05 = h/(mc)
Flags: /
Subroutines: /
01 LBL "COMPT"
02 STO 01 03 X<>Y 04 STO 03 05 2 06 / 07 SIN 08 X^2 09 2426309 E-8 10 R^ |
11 /
12 STO 05 13 ST+ X 14 * 15 STO 00 16 + 17 STO 02 18 LASTX 19 RCL 01 20 RCL 02 |
21 *
22 / 23 RCL 05 24 * 25 ENTER^ 26 STO Z 27 2 28 + 29 * 30 SQRT |
31 STO 04
32 1 33 R^ 34 + 35 / 36 RCL 05 37 RCL 01 38 / 39 1 40 + |
41 RCL 00
42 RCL 02 43 / 44 * 45 RCL 04 46 / 47 ACOS 48 RCL 02 49 END |
( 70 bytes / SIZE 006 )
STACK | INPUTS | OUTPUTS |
Z | m | ß |
Y | µ1 | µ2 |
X | L | L' |
where the mass unit is the mass of one electron = me
= 9.109534 10 -31 kg
and the wave-length L is expressed in Angstroem
( 1 Å = 10 -10 meter )
Example: m = 1.2 , µ1 = 79° , L = 0.123 Å
-In DEG mode:
1.2 ENTER^
79 ENTER^
0.123 XEQ "COMPT" >>>>
L' = 0.139361229 Å
RDN µ2 = 46°17378618
RDN ß = 0.193671439
-Line 09, the constant 2426309 E-8 = h/(mec)
has been computed with h = 6.626176 10 -34 J.s
, me = 9.109534 10 -31 kg , c
= 299792458 m/s
and then, multiplied by E10 in order to express the wave-lengths
in Angstroems.
-If L' is very close to L , you can replace line 48 by RCL 00
= L' - L ( L' - L is always positive )
References:
[1] Robin M. Green - "Spherical Astronomy" - Cambridge University
Press - ISBN 0-521-31779-7
[2] Stamatia Mavridès - "L'Univers relativiste" - Masson
ISBN 2-225-36080-7 ( in French )
[3] Landau & Lifshitz - "Classical Theory of Fields" - Pergamon
Press