MathematicaでArrheniusプロットを作る方法
Arrheniusの式は化学反応の活性化エネルギーを求めるために使います.
Arrheniusプロットを使うと,活性化エネルギーは傾きに相当します.
Arrheniusプロットの横軸は温度の逆数になるため,一見わかりづらいです.
そこで,上側の横軸に通常の温度(測定温度)を記入するとわかりやすくなります.
例として,岡島光洋著『理系なら知っておきたい化学の基本ノート 物理化学編』(中経出版) p. 198の例題2を使います.
絶対温度T/K | 500 | 600 | 700 | 800 |
---|---|---|---|---|
反応速度定数k/s-1 | 0.347 | 317 | 4.12×104 | 1.59×106 |
コード
R = 8.31*10^-3; (*気体定数[kJ/(mol K)]*)
Temp = {500, 600, 700, 800}; (*温度[K]*)
Data = {0.347, 347, 4.12 10^4, 1.59 10^6}; (*反応速度定数[/s]*)
Tempinv = 1000/Temp;
LogData = Log[Data];
PR = Partition[Riffle[Tempinv, LogData], 2];
Lm = LinearModelFit[PR, x, x];
NormLm = Normal[Lm];
Ea = -NormLm[2]*1/x R (*活性化エネルギー[kJ/mol]*)
Lp = ListPlot[PR, PlotStyle -> Directive[Black, PointSize[Large]], Frame -> True, FrameLabel -> {{"ln(k/s^-1)",""}, {"1000T^-1/K^-1","ln(k/s^-1)"}, FrameTicks -> {{Automatic, None}, {Automatic, {{1000/500, "500"}, {1000/600, "600"}, {1000/700, "700"}, {1000/800, "800"}}}}, FrameStyle -> Directive[Black, 16], PlotLabel -> "Arrhenius Plot"];
PlotLp = Plot[Lm[x], {x, 1, 2.5}, PlotStyle -> Red];
Show[Lp, PlotLp]
結果
上の計算を実行すると,活性化エネルギーは0.169744 kJ/molと求められ,Arrheniusプロットは下のようになります.
謝辞
この方法を教えてくださったK.M.先生に感謝します.
*1:本来は[[]]と括弧を2つ重ねる.仕様?で括弧内がリンクになることを避けた