はじめに
酸性溶液に塩基性溶液を滴下していくと、pHが変化する。酸と塩基を過不足なく中和する点を中和点と呼ぶ。中和点は、滴定に用いる酸や塩基の強弱によって変化する。そこで、今回は『強酸・強塩基』、『弱酸・強塩基』、『強酸・弱塩基』、『弱酸・弱塩基』の4パターンにおいて、中和滴定曲線がどのようになり、中和点がどのように推移するのかをPythonを用いたシミュレーションで調査する。
中和滴定曲線のモデル方程式
以下のサイトのモデルを参考にした。
一価の弱酸$HA$に強塩基$BOH$を滴下していくという条件で考える。
電荷保存の法則より以下の等式が常に成立する。
[H^+]+[B^+]=[OH^-]+[A^-]
この式を$x=[H^+]$とした方程式に変形することを目的とする。
まず、一価の酸$HA$の化学平衡について考える。
\rm HA\rightleftharpoons H^{+}+A^{-}
このように、100%電離するとは限らないことに注意する。
これにより、化学平衡式は以下のようになる。
K_a=\rm \dfrac {\left[ H^{+}\right] \left[ A^{-}\right] }{\left[ AH\right] }
ただし、初期の酸の濃度$[AH]$は$C_A$とすると反応前後で原子の総量は変化しない(物質収支)より、
C_A=\rm \left[ A^{-}\right] +\left[ AH\right]
となる。したがって、
[A^{-}]=\frac{K_aC_A}{K_a+[H^{+}]}
1価の塩基$BOH$についても同様に考えると以下の式が成立する。
C_B=\rm \left[ B^{+}\right] +\left[ BOH\right]
ここで、一価の塩基$BOH$の化学平衡について考える。
\rm BOH\rightleftharpoons B^{+}+OH^{-}
これにより、化学平衡式は以下のようになる。
K_b=\rm \dfrac {\left[ B^{+}\right] \left[ OH^{-}\right] }{\left[ BOH\right] }
ところで、水の電離の式は以下のように表すことができる。
K_w=\rm \left[ H^{+}\right] \left[ OH^{-}\right]
ゆえに、
\left[ B^{+}\right]=\frac{K_b C_b}{ K_b+\frac{K_w}{[H^{+}]}}
\left[ OH^{-}\right]=\frac{K_w}{\left[ H^{+}\right]}
以上の考察により、$[B^+],[A^-],[OH^-]$の式を以下の式に代入する。
[H^+]+[B^+]=[OH^-]+[A^-]
したがって、
[H^+]+\frac{K_b C_b}{ K_b+\frac{K_w}{[H^{+}]}}=\frac{K_w}{\left[ H^{+}\right]}+\frac{K_aC_A}{K_a+[H^{+}]}
という$[H^+]$に関する方程式を解けば、pHを算出することができる。今回は、この方程式の近似解を二分法を用いて推定する。
プログラム
以下の記事のようなプログラムを作成する。
ただし、今回は弱塩基に対応する以下のような新プログラムと強塩基に対応している上記リンク先の旧プログラムを用いた。
import numpy as np
import matplotlib.pyplot as plt
import math
import japanize_matplotlib
h=1.0*10**-15
n=100
K_w=10**-14
#酢酸
K_a=1.75*10**-5
#塩酸
#K_a=1.0*10**7
#アンモニア
K_b=1.0*10**-4.75
C_A0=0.1
C_B0=0.2
V_A=10
def equation(x,V_A,V_B1):
C_A=(C_A0)*V_A/(V_A+V_B1)
C_B=(C_B0)*V_B1/(V_A+V_B1)
B_pra=K_b*C_B*(K_b+K_w/x)**-1
return (x+B_pra-(K_w/x+K_a*C_A/(K_a+x)))
V_B=np.linspace(0.1,10,n)
pH_array=[]
for i in range(n):
#初期値
## 最大値
x_p=1.0
## 最小値
x_q=0
#塩基溶液の体積
V_B1=V_B[i]
#二分法
x=(x_p+x_q)/2
while abs(equation(x,V_A,V_B1))>10**-5:
x=(x_p+x_q)/2
if equation(x,V_A,V_B1)*equation(x_p,V_A,V_B1)<0:
x_q=x
else:
x_p=x
pH=-math.log10(x)
pH_array.append(pH)
plt.title("酢酸とアンモニアの中和滴定曲線")
plt.xlabel("塩基溶液の体積")
plt.ylabel("pH")
plt.plot(V_B,pH_array)
plt.savefig("中和滴定曲線_弱酸_弱塩基.png")
plt.show()
結果
以下に、強塩基を滴定で用いた場合(旧プログラム)と弱塩基を滴定で用いた場合(新プログラム)での数値解析結果について述べる。
強塩基
強酸
中和点はpH7程度のpHカーブの真ん中に位置している。
弱酸
強酸・強塩基の場合と比較すると、中和点は若干pHが大きくなる方へ移動している。
弱塩基
強酸
強酸・強塩基の場合と比較すると、中和点は若干pHが小さくなる方へ移動している。
弱酸
中和点は、pH7程度ではあるが、強酸・強塩基と比較して、pHは中和点前後で緩やかに変化する。
まとめ
今回は、中和滴定に使用する溶液により中和滴定曲線がどのように変化して、中和点にどのような影響を与えるのかを数値計算を用いて調査した。結果、中和点は2種類の溶液の強い側に引っ張られるということが分かった。このことから、実際の中和滴定では溶液の性質に合わせて、適切な指示薬を用いることが大切であるといえる。
参考文献