飽和水蒸気圧の計算 C#とMathematica
2015-02-20


飽和水蒸気圧を計算するアプリを作り始める。横で元気に働く加湿器を見ていると、がんばりを数字で見てみたくなった次第。

用途からいって高い精度は必要ないが、せっかくなので、W.WagnerとA.Prussの近似式を使ってみる。理科年表の2015年版では、数表(P411)はあるが計算式はないので探す。

見つけたのが、英国の数表のサイト。摂氏の表が便利。理科年表は単位がKなので、少し手間。
[URL]

さっそく、C#で計算式を式の通りに実装してみる。

禺画像]

0℃の計算結果。小数点以下4桁まで合っている。

禺画像]

60℃の計算結果。小数点以下2桁目で誤差が出ている。

こうなると、検算したくなる。電卓では荷が重い。Excelでは、MS製品どうし、同じような計算ライブラリを使うことになるので、今ひとつ。ここは、真打ちMathematicaに登場願う。

禺画像]

ざっと、実装したところ。Reduceで圧力(P)を求める式に変形。変形式は長い。右は切れている。

禺画像]

100℃の場合を解いてみる。
温度(K)を代入すると、圧力(P)の方程式になるので、Solveで解き、解を式(P)に代入すると数値になる。有効数字5桁、小数点3桁目を四捨五入すると、数表とぴったり合う。

禺画像]

うまくいったので、温度(K)と飽和水蒸気圧の二次元の表を作って、グラフにする。参考書に書いてあるのと同じ図が現れた。
※化学の新研究、P107。蒸気圧の性質

Mathematicaの方は、誤差が出ないように式を変形してから計算している様子。同様に、Reduceの結果をC#で実装すれば、精度は高くなりそうだが、今回は有効数字3桁もあれば十分なので、このままにしておく。まあ、検算は大事という話。
[Windowsストアアプリ]
[Math]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット