wetchのブログ

他人に見られることを想定していない書き散らかし独習ノート.物理学とかVBAとか.

温度の単位系

物理量クラスを作るにあたって、単位の換算をしたい。と言うか、そもそもこれを自動で行うのが目的だった。
換算のうち、ちょっと特殊な立ち位置にあるのが温度、ケルビンセルシウス度の換算。で、これで悩んでいる。

物理量 - Wikipedia とか理科年表にも書いてあったけど、物理量は数値と単位の積というのが原則なんだが、セルシウス度はこの例外になっていると思う。
たとえば絶対0度をセルシウス度に換算することを考えても、T=0 \mathrm{K} = x {}^\circ\mathrm{C} とは書けず、 x/{}^\circ\mathrm{C} = T/\mathrm{K} − 273.15 となる訳だから。

で、こういう温度の演算をどう考えるかで悩んでいる。たとえば 30℃ + 20℃ = 50℃ という足し算は、ケルビンに換算すると 303.15 K + 293.15 K = 596.7 K だから結果が違ってしまう。引き算だったら30℃ - 20℃ = 10℃ で 303.15 K - 293.15 K = 10 K だから辻褄は合う。掛け算、割り算は...? もう訳分からん。

あ、温度と温度差を分けて考えたらいいのか? ってことは、温度の次元には両者を区別するためのフラグ変数が必要?