前回(2020/10/11)「二分法」を用いて1価の弱酸のpHを求めました。今回はエクセルの「ソルバー」を用いてpHを求める方法について説明します。


<「ソルバー」による解>

 Ca=0.01 mol/Lの酢酸(HA, pKa=4.75)のpHを求める」ことを例題として「ソルバー」による方法を説明します。

ソルバー解の求め方(1)pH およびpA(=log[A])をソルバーの「変数セル」とする場合

関係式:

Ka = [H][A]/[HA]

Kw = [H][OH]

T = [A]+[HA] …物質収支式

R = CaT ⇒この式をソルバーの「制約条件」とする。

Q = [H][OH][A] = 0 電荷収支式 ⇒この式をソルバーの「目的セル」とする。


操作法:(図-1を参照!)

1) エクセルシートのC12, C13, C14セルにpKa, pKw,Caの値を入れる。
① C124.75

② C1314

③ C140.01

2) C15, C16にKa, Kwの計算式を入れる。

④ C15=10^-C12

⑤ C16=10^-C13

3) C17, C18にpH, pAの初期値を入れる。たとえば、pH=3, pA=3とする(*1)

(*1) 初期値はできるだけ答えに近いと考えられる値を入れること。あまり離れた値を入れると「ソルバー」が収束しないことがある。ためしに、初期値としてpH=5, pA=5を入れるOKだが、pH=6, pA=6を入れるとエラーとなる。

⑥ C173

⑦ C183

4) C19~C22に[H], [OH], [A], [HA]の計算式を入れる。

⑧ C19=10^-C17

⑨ C20=C16/C19

⑩ C21=10^-C18

⑪ C22=C19*C21/C15

5) C23~C25にQ, T, Rの計算式を入れる。

⑫ C23 =C19-C20-C21

⑬ C24=C21+C22

⑭ C25=C14-C24


作成したシート(ソルバー実施前)-1に示します。

-1(ソルバー実施前)

2020-10-18-fig1

6) ソルバーを開く。

⑮ [データ] [ソルバー] ([ソルバーのパラメーター]ダイアログボックスが開く) (*2)

(*2) もしExcelでソルバー機能を組み込んでいなければ、次の手順で組み込む。

 ・[ファイル][オプション][アドイン][Excelアドイン][設定][ソルバー-アドイン][OK]([データ]タブを開くとリボンに[ソルバー]のアイコンが表示される)

(パラメーター設定前)

2020-10-18-db1

(パラメーター設定後)

2020-10-18-db2

7) ソルバーのパラメーターを設定する。

⑯ [目的セルの設定]: $C$23

⑰ [目標値]: [指定値]にチェックを入れ、"0"を指定する。

⑱ [変数セルの変更]: $C$17:$C$18

⑲ [制約条件の対象]: [追加] ([制約条件の追加]ダイアログボックスが開く)

⑳ [セル参照]$C$25 [=] [制約条件]"0" [OK]

2020-10-18-db3

㉑ [制約のない変数を非負数にする]: チェックを入れない。

㉒ [解決方法の選択]: [GRG非線形]を選択する。

㉓ [オプション]を選択 ([オプション]ダイアログボックスが開く)

㉔ [制約条件の精度精度] (*)"1e-10" [OK] (もとの画面へ)

(*3) 精度として、1e-10 1e-15くらいが適切であろう。

2020-10-18-db4

8) ソルバーの解を求める。

㉕ [解決] ([ソルバーの結果]ダイアログボックスが開く。「ソルバーによって解が見つかりました」)

㉖ [ソルバーの解の保持]を選択 [OK] ($C$17に求める答え(pH)が出る)

2020-10-18-db5

ソルバー実施後のシートを図-2に示します。

-(ソルバー実施後⇒pH3.38)

2020-10-18-fig2
 

 ソルバー解の求め方(2)pHのみを「変数セル」とする場合

上記の「ソルバー解の求め方(1)」では、[A]についてpAを変数セルとし、R = CaTを制約条件としましたが、()では、

[A] = Ca/(1[H]/Ka)

の関係式を用い、制約条件を用いません。

操作法はほぼ「ソルバー解の求め方(1)」同じです。異なる点のみ以下に記します。


3)
17にpHの初期値を入れる。たとえば、pH=3(*)

(*4) 初期値はできるだけ答えに近い値を入れること。ためしに、初期値としてpH=19を入れるとOKだが、pH=20ではエラーとなる。

⑥ C17 3

⑦ C18(空欄)

4)  C19~C22に[H], [OH], [A], [HA]の計算式を入れる。

⑩ C21=C14/(1+C19/C15)

5) C23にQの計算式を入れる。

⑬ C24(空欄)

⑭ C25(空欄)

7) ソルバーのパラメーターを設定する。

⑱ [変数セルの変更]: $C$17

⑲ [制約条件の対象]: (なし)

⑳ (なし)

ソルバー実行後のシートを-に示します。

図-3(ソルバー実施後⇒pH3.38)

 2020-10-18-fig3


「ソルバー」実施時の注意点

もし、結果がエラー(「実行可能解が見つかりません」)となる場合は、

  未知数に対する関係式の不足

  計算式の間違い

  変数セルの初期値が不適切

  変数セルの選定が不適切

  精度の設定が不適切

などが考えられます。変数が非常に小さな(あるいは大きな)数値の場合は、対数変換等で適切な数値にすることが必要でしょう。あまり多くの変数を一度に求めようとしないことも重要です(*5)

(*5) ソルバーが解ける条件は、(変数セルの個数)≦{(目的セルの個数(=1))+(制約条件の個数)}である。

上述の「ソルバー解の求め方(1)」では変数セルはpH, pAの2個、関係式はQ=0, R=Ca-([A]+[HA])の2個なので、解を求めることができる。ソルバー解の求め方(2)」では変数セルはpHの1個、関係式はQ=0の1個なのでこれも解くことができる。

(1)と(2)を比べると、(2)では[A]=Ca/(1+[H]/Kaの関係式を用いることにより、変数セルの個数を減らしているので近似の精度が向上し、また制約条件を作る手間も省ける。ソルバーを用いる場合でも、できる限り変数セルの個数の削減に努めるのが得策である。


応用問題

近似式[H]ap = √(KaCa)が成立する酢酸溶液のCaの下限濃度は? pHの許容値(ΔpH)0.02とし、またpKa=4.75, pKw=14とする。

変数セル:pH, pCa

目的セル:Q = [H][OH][A] = 0

制約条件:ΔpH = pHpHap = 0.02

ソルバー実行後のシートを-に示します。答えはCa=0.0021 mol/Lです。

-4(応用問題)

2020-10-18-fig4


<「二分法」と「ソルバー」の比較>

「二分法」は最終的に変数が1個(たとえばpH)となるように関係式を変形する必要があります(*6)しかし、「ソルバー」を用いると、式をそのままにしても制約条件を付けることにより解析が可能となります。したがって、式の変形が面倒な場合は「ソルバー」を用いる方が作業は楽になります。

(*6) 例題(2020/10/11)では、[OH]=Kw/[H], [A]=Ca/(1+[H]/Ka)の関係を用いてQ[H]のみの関数としている。

「ソルバー」の欠点は「データテーブル」との併用ができないことです。「データテーブル」を用いてセルの数値を様々に変化させたい場合には「二分法」を用いる必要があります
(*)
(*7) たとえば、KaCaを変化させたときのpHの変化を知りたい場合(2020/10/11)や滴下量を変化させて滴定曲線を作成する場合など。もしこのような場合に、「ソルバー」を用いようとすると、条件を変化させる都度「ソルバー」操作を実行する必要があり、面倒である。