目標
この記事では,酸塩基平衡のシミュレータを作るためのアルゴリズムについて紹介します.
たとえば,以下の問題を解くことを考えます.
問題
酢酸 CH3COOH は以下のように電離する.
CH3COOH⇌CH3COO−+H+
電離定数は 10−4.76 である.すなわち
[CH3COOH][CH3COO−][H+]=10−4.76
リン酸 H3PO4 は以下のように電離する.
H3PO4H2PO4−HPO42−⇌H2PO4−+H+⇌HPO42−+H+⇌PO43−+H+
電離定数は順に 10−2.12,10−7.21,10−12.67 である.すなわち
[H3PO4][H2PO4−][H+][H2PO4−][HPO42−][H+][HPO42−][PO43−][H+]=10−2.12=10−7.21=10−12.67
今,ビーカーに 1[L] の水を入れ,そこに酢酸を c1[mol],リン酸を c2[mol] 溶かした.この水溶液の pH を求めなさい.
一般化
この問題は以下のように一般化されます.
m 種類の酸についての情報が与えられる. i 番目(1≤i≤m)は ni 価の酸 AiHni であり,以下のように電離する.
AiHniAiHni−1−AiH(ni−1)−⇌AiHni−1−+H+⇌AiHni−22−+H+⋮⇌Aini−+H+
i 番目の酸の第 j 解離定数は Kij である.すなわち,
[AiHni][AiHni−1−][H+][AiHni−1−][AiHni−22−][H+][AiH(ni−1)−][Aini−][H+]=Ki1=Ki2⋮=Kini
今,ビーカーに 1[L] の水を入れ,そこに酸 A1Hn1 を c1[mol],酸 A2Hn2 を c2[mol],……,酸 AmHnm を cm[mol] 溶かした.この水溶液の pH を求めなさい.
方針
まず, H+ の濃度を決め打ちします.すると,電離平衡の式から各々の酸 AiHni について
[AiHni]:[AiHni−1−][AiHni−1−]:[AiHni−22−][AiH(ni−1)−]:[Aini−]=[H+]:Ki1=[H+]:Ki2⋮=[H+]:Kini
のように濃度の比 [AiHni]:[AiHni−1−],[AiHni−1−]:[AiHni−22−],……,[AiH(ni−1)−]:[Aini−] が分かるので,これらを合わせて比 [AiHni]:[AiHni−1−]:[AiHni−22−]:⋯:[Aini−] が求まります.
一方これらの濃度の合計 [AiHni]+[AiHni−1−]+[AiHni−22−]+⋯+[Aini−] は ci[mol/L] であると分かっているので,比の情報と合わせることで濃度 [AiHni],[AiHni−1−],[AiHni−22−],……,[Aini−] が全て求まります.
ここで, AiHni−1− は 1 価, AiHni−22− は 2 価,……, Aini− は ni 価の陰イオンであることに着目すると,これらのもつ電荷の合計は
j=1∑ni−j[AiHni−jj−]=−1[AiHni−1−]−2[AiHni−22−]−⋯−ni[Aini−]
となります. m 種類全ての酸についてこれを計算し,総和
S=i=1∑mj=1∑ni−j[AiHni−jj−]
を求めます.
もし,最初に決め打ちした [H+] の値が正しければ,水溶液は電気的に中性なので [H+]+S=0 となるはずです.
では,決め打ちした [H+] の値が実際より大きかったらどうなるでしょうか?これは,いったん水溶液に強酸 AH を加えて,平衡に達したところで突然陰イオン A− だけを取り除いた状況(実際にはあり得ないが)と同じなので, [H+]+S>0 となります.
逆に [H+] の値が実際より小さければ, [H+]+S<0 となります.
よって, [H+] を決め打ちしたらそれが実際より大きいか小さいか分かるので,二分探索によって [H+] を求めることができます.
おわりに
この方法によって,様々な種類の酸が混ざった水溶液の pH を簡単に求めることができます.酸だけでなく塩基も含まれる場合や,塩を溶かす場合についても,同様に解くことができます.
なんだか用途の限られた(?)記事になってしまいましたが,誰かの役に立てば幸いです.
誰かこれ読んでブラウザ上で簡単にシミュレーションができる Web サイト作って欲しい
なんと THF さんが作ってくださいました!ここで実行できます.
Discussion