Saturday, May 18, 2024

HP 15C and Python: Calculating The Speed of Sound in Air

 HP 15C and Python: Calculating The Speed of Sound in Air



How fast does Sound Travel?


We can calculate the speed of sound in air which depends on temperature.


The speed of sound in air can be approximated by:

c ≈ √( γ * R * T / M)


where:


R = molar gas constant = 8.314 4625 618 153 J/(K * mol)

R = 8.314 4625 618 153 (kg * m^2)/(s^2 * K * mol)


M = molar mass of air = 0.02897 kg/mol


γ = adiabatic index of air

The index of air varies between 1.3991 and 1.403. For calculations, Wikipedia uses an average value of γ = 1.4. (see Source). For reference, an adiabatic process is a thermodynamic process that does not use heat.


A joule is a composite unit, 1 J = 1 (kg * m^2)/s^2


T = temperature in Kelvin.


Convert temperatures to Kelvin:


Fahrenheit to Kelvin:

T = 5/9 * (°F – 32) + 273.15


Celsius to Kelvin:

T = °C + 273.15


A formula to calculate the speed of sound in air is:


C = √( γ * R * T / M)


Entering the three numerical constants for γ, R, M:


γ * R / M ≈ 401.8035093 m^2/(s^2 * K)


Then:


C ≈ √(401.8035093 * T)

≈ 20.04503702 * √T


A popular version of the formula can be achieved by multiplying by 273.15/273.15 (essentially multiplying by 1):


C ≈ √(401.8035093 * 273.15 * T / 273.15)

≈ √(401.8035093 * 273.15) * √(T / 273.15)

≈ 331.2893427 * √(T / 273.15)


Let °C be the temperature in degrees Celsius. Then:

≈ 331.2893427 * √((°C + 273.15) / 273.15)

≈ 331.2893427 * √(°C / 273.15 + 1)


The Wikipedia formula rounds the constant to 331.3. (see Source) Other formulas use 331.


However, we can use the formula


C ≈ 20.04503702 * √T


and be in the ballpark. Note we’ll have to convert the temperature to Kelvin before using this formula.




HP 15C (Collector’s Edition) Program: Speed of Sound


Instructions:


To calculate the speed of sound when the temperature is in Fahrenheit (°F), press [ f ] { A } or [ GSB ] { A } [ R/S ].


To calculate the speed of sound when the temperature is in Celsius (°C), press [ f ] { B } or [ GSB ] { B } [ R/S ].


To calculate the speed of sound when the temperature is in Kevin (K), press [ f ] { C } or [ GSB ] { C } [ R/S ].


Code


Step

Key Code

Key

Notes

001

42, 21, 11

LBL A

Enter °F, convert to °C

002

3

3


003

2

2


004

30

-


005

5

5


006

20

×


007

9

9


008

10

÷


009

42, 22, 12

LBL B

Enter °C, convert to K

010

2

2


011

7

7


012

3

3


013

48

.


014

1

1


015

5

5


016

40

+


017

42, 22, 13

LBL C

Enter K

018

11

Calculate Speed of Sound

019

2

2


020

0

0


021

48

.


022

0

0


023

4

4


024

5

5


025

0

0


026

3

3


027

7

7


028

0

0


029

2

2


030

20

×


031

36

ENTER


032

36

ENTER


033

2

2


034

48

.


035

2

2


036

3

3


037

6

6


038

9

9


039

3

3


040

6

6


041

20

×


042

34

X<>Y


043

43, 32

RTN

End of the program


Python Code: spsound.py


Programmed on a TI-84 Plus CE Python.


print("Speed Of Sound\n")

print("1. Fahrenheit")

print("2. Celsius")

print("3. Kelvin")


# type of temperature

# choice var must be an integer

# ch is used in an element call

ch=int(input("? "))

if ch==1:

t0=eval(input("deg F? "))

t=5/9*(t0-32)+273.15

elif ch==2:

t0=eval(input("deg C? "))

t=t0+273.15

elif ch==3:

t0=eval(input("K? "))

t=t0

else:

print("Not a valid choice")

# force an error to stop the script

1/0


# calculation

s1=20.04503702*t**0.5

s2=s1*2.236936

print(str(s1)+" m/s")

print(str(s2)+" mi/hr")




Example Calculations (rounded to 5 decimal places)


Temperature

Speed of Sound (m/s)

Speed of Sound (mi/hr)

68 °F

343.20358

767.72445

35 °C

351.87462

787.83024

280 K

335.41762

750.30776

0 °C

331.28934

741.07306

96 °F

352.19167

787.83024



Source


“Speed of Sound” Wikipedia. Last Edited March 27, 2024. https://en.wikipedia.org/wiki/Speed_of_sound Retrieved April 7, 2024



Until next time,


Eddie


All original content copyright, © 2011-2024. 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.