這是寫程式時,對數學公式的絮叨。
61分貝就是60分貝的10的0.1次方倍,即1.25892倍了。
之前要將感應器(barometer sensor)讀出的氣壓數值,轉換成海拔高度。
嚴謹來說,
用維基寫的那段Source code(註1)才正確,但我們的需求是,大約數值便可。
就向(barometer sensor)廠商要簡便公式(註2),所得公式如下:
h = 44330 * (1.0 - pow(pressure / seaLevelPressure, 0.1903))
pressure是讀出的氣壓值,seaLevelPressure是海平面的氣壓值,兩者皆浮點數。
要留意,pressure/seaLevelPressure,也要是浮點數。
由於我們目前用的SOC的軟體環境跟原始碼、函數集,並不包括C語言所含之全部。
我就遇過呼叫不到的函數,因此,關鍵就在於能不能使用pow()。
幸虧,聽我同事講,他計算經緯度也用到pow(),這函數是有的。
不然,我就要複習指數、對數,跟查對數表查到翻了。
指數(對數)在工程上是常用的數學,像Microsoft Windows的小算盤就有工程型。
如果pow()不能用,就真的太不尋常了!
除了上說的氣壓轉高度、經緯度,
聲音的分貝(註3)、地震規模(註4)都與指數(對數)相關。
以聲音而言:
分貝(dB)是十分之一貝(B):1B = 10dB。
1貝的兩個功率量的比值是10:1。
例如,70分貝就是60分貝的10倍,61分貝就是60分貝的10的0.1次方倍,即1.25892倍了。
62分貝是60分貝的0.2次方倍,即1.58489倍,以此類推。
同理,大聲公比賽,125分貝其實也是124分貝的1.25892倍。
所以,說剛剛只用七成功力得124分貝,
假如用十成洪荒之力的話,僅會上升1分貝(125分貝),而不到2分貝(126分貝)。
註2:
1. amoBBS: formula
altitude = 44330 * (1.0 - pow(P / P0, 0.1903)); P0是海拔大氣壓,P為你測的當地大氣壓。
2. BMP180 模組使用提示 - Arduino 接線與程式測試
float BMP180::getAltitude(float pressure, float seaLevelPressure) {
return 44330 * (1.0 - pow(pressure / seaLevelPressure, 0.1903));
};
3. arduino:Barometric Pressure to Altitude
h = 44330 * [ 1 - ( p / p0 ) ^ ( 1 / 5.255) ]
所以,說剛剛只用七成功力得124分貝,
假如用十成洪荒之力的話,僅會上升1分貝(125分貝),而不到2分貝(126分貝)。
那地震規模(不是指震度)的話,
則是按1966年Bath所提之logE=5.24+1.44M
(E:釋放能量(單位焦耳), M:地震規模)的公式計算。
(E:釋放能量(單位焦耳), M:地震規模)的公式計算。
規模7地震的能量,是規模6地震的32倍。
計算如下:
假設規模6地震能量為 E1,規模7地震能量為 E2
則log(E2)=5.24+1.44(6+1)
且log(E1)=5.24+1.44(6)
log(E2/E1)=1.5 故 E2/E1=10^(1.44)≒27.54
同樣地,也可推出規模6.1地震,是規模6地震10的0.144次方倍,即1.39倍。
-----------------------
1. amoBBS: formula
altitude = 44330 * (1.0 - pow(P / P0, 0.1903)); P0是海拔大氣壓,P為你測的當地大氣壓。
2. BMP180 模組使用提示 - Arduino 接線與程式測試
float BMP180::getAltitude(float pressure, float seaLevelPressure) {
return 44330 * (1.0 - pow(pressure / seaLevelPressure, 0.1903));
};
3. arduino:Barometric Pressure to Altitude
h = 44330 * [ 1 - ( p / p0 ) ^ ( 1 / 5.255) ]
h = altitude (m)
p = measured pressure (Pa)
p0 = reference pressure at sea level.
4. 廣州友善電子科技有限公司:Pressure_and_Temperature_Sensor
p = measured pressure (Pa)
p0 = reference pressure at sea level.
4. 廣州友善電子科技有限公司:Pressure_and_Temperature_Sensor
註3:維基:分貝
註4:
2. 淺談地震規模與震度:
由1966年Bath所提之logE=5.24+1.44M(E:釋放能量, M:地震規模)經驗公式
地震規模和所釋放的能量滿足以下關係式
logE=11.8+1.5M
若規模M=X時能量為E1,規模M=X+1時能量為E2
則log(E2)=11.8+1.5(M+1)
且log(E1)=11.8+1.5(M)
兩式相減得log(E2/E1)=1.5
故 E2/E1=10^(1.5)=31.62≒32
古登堡和芮氏(Gutenberg & Richter, 1956)所提出之地震規模和能量之間的
關係公式來計算,即
logE = 11.8 + 1.5Μ
其中 E:能量(單位:爾格) Μ:地震規模