前回(2023-07-02)は、近似法を用いて弱酸の滴定曲線を描く方法について述べました。今回は、二分法を用いる方法について説明します。
<<二分法について>>(2023-04-30)
単調関数f(x)において、f(a)とf(b)とで符号が異なるような区間a, bを定めると、その区間内でf(x)=0となるxが必ず1つ存在します。二分法は、f(x)=0となるxを近似的に求める方法のひとつです。概要は次のとおりです。
1) f(a)とf(b)とで符号が異なるような区間a, bを定める。
2) a, bの中間点mを求める。(m=(a+b)/2)
3) f(m)の符号がf(a)と同じであれば、aをmと置き換え、そうでなければbをmと置き換える。
4) f(m)≒0となるまで(2)に戻ってこの操作を繰り返す。
このように、二分法を用いると「解が存在する区間の幅」を半分また半分と繰り返し狭めていくことで方程式f(x)=0の近似解を求めることができます。二分法の原理を図-1に示します。
詳細は、次の文献を参照願います。
・吉村季織:J. Comput. Chem. Jpn., Vol. 5, No. 1, pp. 29–38
(2006)
「Microsoft Excelのテーブル機能を利用した酸塩基滴定曲線シミュレーション」
https://www.jstage.jst.go.jp/article/jccj/5/1/5_1_29/_article/-char/ja/
<二分法のやり方>
単調関数f(x)について、二分法によりf(x)=0の近似解を求める操作手順は次の通りです。
● 0回目 (初期値の付与)
・ f(a0)>0となる初期値a0を与える。
・ f(b0)<0となる初期値b0を与える。
・ a0, b0の中点、m0を求める。m0=(a0+b0)/2
・ m0に対するf(m0)を求める
● 1回目
・ IF関数を用いて、f(m0)<0ならば、a1=a0、そうでなければ、a1=m0とする。
・IF関数 a1=IF(f(m0)<0,
a0, m0)
・ a1=m0ならば、b1=b0、そうでなければ、b1=m0とする(*1)。
・IF関数 b1=IF(a1=m0,
b0, m0)
・ a1, b1の中点、m1を求める。m1=(a1+b1)/2
・ m1に対するf(m1)を求める。
(*1) b1=IF(a1=m0, b0,
m0)はb1=IF(f(m0)<0, m0, b0) としてもよい。
● 2回目
・ f(m1)<0ならば、a2=a1、そうでなければ、a2=m1とする。
・a2=IF(f(m1)<0,
a1, m1)
・ a2=m1ならば、b2=b1、そうでなければ、b2=m1とする。
・b2=IF(a2=m1,
b1, m1)
・ a2, b2の中点、m2を求める。m2=(a2+b2)/2
・ m2に対するf(m2)を求める。
⋮
以下、これと同様の操作を繰り返します。
⋮
● n回目
・ f(mn-1)<0ならば、an=an-1、そうでなければ、an=mn-1とする。
・an=IF(f(mn-1)<0,
an-1, mn-1)
・ an=mn-1ならば、bn=bn-1、そうでなければ、bn=mn-1とする。
・bn=IF(an=mn-1,
bn-1, mn-1)
・ an, bnの中点、mnを求める。mn=(an+bn)/2
・ mnに対するf(mn)を求める。
f(mn)≒0となったとき、mnが求める答えとなります。(*2)
(*2) a0, b0の初期値がたとえばpH=-1, 15として、このときpHの範囲が10^-4以内になるためには、16×(1/2)^n=10^-4からn=17.3、つまりn=18以上であればよいことが分かる。
<<弱酸の滴定における酸塩基平衡>>
前回(2023-07-02)と同様に、Cao
mol/Lの1価の弱酸(HA)溶液, 体積V mLをCbo
mol/LのNaOH溶液で滴定する(滴下量:T mL)ことを考えます。弱酸の酸解離定数をKaとします。
被滴定溶液中では次の平衡が成立しています。
HA ⇄ H+ + A-
NaOH → Na+ + OH-
H2O ⇄ H+ + OH-
したがって、被滴定溶液中には、H+, OH-, Na+,
HA, A-という5種の化学種が存在します。これらの化学種の濃度を、[H], [OH],
[Na], [HA], [A]とすると、次の関係式が成立します。
Ka = [H][A]/[HA] …①
Kw = [H][OH] …②
Ca = [A]+[HA] …③
Cb = [Na] …④
[H]+[Na] = [OH]+[A] …⑤
Ca = CaoV/(V+T) …⑥
Cb = CboT/(V+T) …⑦
⑤式から、
[H]-[OH]+[Na]-[A] = 0
この式の左辺をQと置きます。
Q = [H]-[OH]+[Na]-[A]
Qを[H]の関数として表すと、
Q = [H]-Kw/[H]+Cb-CaKa/([H]+Ka)
さらにpHの関数として表すと、
Q = 10^-pH-Kw/10^-pH+Cb-CaKa/(10^-pH+Ka)
この式に⑥式, ⑦式を代入して、
Q = 10^-pH-Kw/10^-pH+CboT/(V+T)-CaoVKa/{(10^-pH+Ka)(V+T)} …⑧
と表せます。
Q=f(pH)とすると、f(pH)は単調減少関数です(*3)。前項から、f(a)>0, f(b)<0ならば、aとbの中間のどこかにかならずf(pH)=0となるpHが一つ存在します。したがって、Q=0を解くのに二分法を用いることができます。
(*3)
Q = [H]-Kw/[H]+[Na]-[A]
dQ/dpH = (dQ/d[H])/(d[H]/dpH)=(1+Kw[H]^-2-d[A]/d[H])/(d[H]/dpH)
[A] = CaKa/([H]+Ka)なので、
d[A]/d[H] = -CaKa([H]+Ka)^-2
また、pH = -log[H]なので、
d[H]/dpH = -ln(10)[H]
したがって、
dQ/dpH=-ln(10)[H](1+Kw[H]^-2+CaKa([H]+Ka)^-2)<0 ⇒ f(pH)は単調減少関数
<<二分法による滴定曲線の描き方>>
二分法を用いて、Cao=0.1
mol/Lの酢酸(HA)溶液, 体積V=20 mL(pKa=4.76)をCbo=0.1
mol/LのNaOH溶液で滴定する(滴下量:T mL)ときの理論的滴定曲線を描きます。
<二分法表の作成>(図-2を参照)
エクセルのワークシートで条件を示す領域を条件表、二分法を実施する領域を二分法表とします。操作方法は次の通りです。
・条件表
1) 条件表にpKa, pKw, Cao,
V, Cboの既定値を入れる。Ka, Kwを計算する。Tに0を入れる。
・二分法表-0回目
2) pHに初期値を入れる。a0=-1,
b0=15
3) m0を計算する。m0=(a0+b0)/2
4) Q0, [H]0, [OH]0, [Na]0, [A]0,
[HA]0を計算する。
・Q0=[H]0-[OH]0-[Na]0-[A]0
・[H]0=10^-pHm0
・[OH]0=Kw/[H]0
・[Na]0=CboT/(V+T)
・[A]0=(CaoVKa/(V+T))/([H]0+Ka)
・[HA]0=[H]0[A]0/Ka
・二分法表-1回目
5) a1=IF(f(m0)<0, a0,
m0), b1=IF(a1=m0,
b0, m0), m1=(a1+b1)/2
6) 0回目
Q0~[HA]0をQ1~[HA]1にコピーする。
・二分法表-2回目から30回目
7) 1回目 a1~[HA]1をa2~[HA]2からa30~[HA]30までコピーする。
8) m30がT=0のときのpHとなる。
<データテーブルの作成>(図-2を参照)
⑧式において、Cao, Cbo, V, Ka, Kwは定数です。したがって滴下量Tが決まれば二分法によりpHを求めることができます。そして、Tを少しずつ変化させて、それに対応するpHを求めるためには、エクセルのデータテーブル作成機能を用います。操作は次の通りです。
9) L列にTの値を0.1 mLきざみでT=0~40 mLまでいれる。
10) M列のT=0のセルにm30のセルをコピーする。
11) データテーブルの作成範囲を指定する(見出しは指定しない!)。
12) データテーブルを作成する。
・メニューバー:「データ」
・ツールバー:「What-If分析」⇒「データテーブル」⇒「データテーブル」ダイアログボックスが出る ⇒「列の代入セル」に"滴下量T"のセルを指定する(「行の代入セル」は空欄のまま) ⇒「OK」
これで、データテーブルにTの値に対するpHの値が出力される。
<滴定曲線の作成>
データテーブルを基に弱酸(HA)の滴定曲線を描きます。
13) 見出しを含め散布図作成の範囲を指定する。
14) 散布図を作成する。
・メニューバー:「挿入」
・ツールバー:「グラフ」⇒「散布図」⇒「散布図(平滑線)」⇒「OK」
(散布図は目的に応じて適当にカスタマイズしてください)
条件表、二分法表、データテーブルを図-2に示し、作成した滴定曲線を図-3に示します。



コメント