1価の弱塩基を1価の強酸で滴定する場合の滴定曲線(Maple 版)

0.1Mのアンモニア水10mlを0.1Mの希塩酸で中和滴定する場合の滴定曲線を記号計算システム Maple を使って描くことにしたい。

Maple における処理は以下の通りである。

[ pH値と、加える希塩酸の体積を格納する配列を作成する。
> pH=array(0..200):acid:=array(0..200):

[ アンモニアの共役酸であるアンモニウムイオンの酸解離定数の値Kaを設定する。
> K_a:=2.0*10^(-5);

[ 水のイオン積 KW にその値を代入する。
> K_w:=1.0*10^(-14);

[ 混合水溶液の水素イオン濃度(hion)を求める関数を作成する。
[ ここで a は、アンモニア水の体積mlで、xは加えた希塩酸の体積mlである
> h_ion:=(x,a)->K_a*x^3+(01*(10-a)/(10+a)*K_a-K_a*K_w+K_w)*x^2-0.1*a/(10+a)*K_w*x-K_w^2;

[ 試しにpH値を求め、上で立てた式が正しいかどうかを確認する。
> evalf(-log10(fsolve(h_ion(x,10),x,0..1)));

[ アンモニア水10mlに、希塩酸を0〜20mlまで、0.1×i ml毎に加えた場合のpH値を計算しその値を配列pH[i]に格納する。加えた塩酸の体積は配列acid[i]に格納する。
> for i from 0 to 200 do

> pH[i]:=evalf(-log10(fsolve(h_ion(x,i/10),x,0..1)));

> acid[i]:=i/10.0;

> od:

[ 希塩酸を0〜20mlまで、0.1ml毎に加えた場合の、塩酸量と混合溶液のpH値の配列リストを作成する。
> datalist:=[seq([acid[j],pH[j]],j=0..200)]:

[ 滴定曲線を描く。
> with(plots):plot(datalist,HCl=0..20,pH=0..14,color=black,thickness=2);

この結果は次の通りとなる。