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.