崔皓 劉璽正 婁宏磊
(上海交通大學(xué)附屬中學(xué) 上海 200439)
pH值是氫離子濃度的負(fù)對(duì)數(shù),是一個(gè)描述體系中酸堿性的強(qiáng)弱程度的量。氫離子濃度對(duì)于化學(xué)反應(yīng)速率、反應(yīng)進(jìn)行程度、反應(yīng)生成物等都有較大的影響:酯類的水解在酸性條件下比在中性條件下更快;Pbo2在酸性條件下是最強(qiáng)的氧化劑之一,可以輕易把HCL氧化為CL2,而在堿性條件下CL2可以氧化Pb(Ⅱ)即為Pbo2;DNA擴(kuò)增時(shí),氫離子濃度過(guò)大甚至還會(huì)導(dǎo)致堿基錯(cuò)配[1]。
綜上可知,氫離子濃度在很大程度上影響了化學(xué)反應(yīng),在進(jìn)行反應(yīng)之前就通過(guò)計(jì)算了解估計(jì)體系的pH可以為后續(xù)工作提供很大便利。
在計(jì)算溶液體系pH值時(shí),列多個(gè)酸等式連立求解是常見(jiàn)的傳統(tǒng)方法,但是這種方法計(jì)算量大,過(guò)程復(fù)雜,給相關(guān)學(xué)習(xí)者與工作者帶來(lái)了不少麻煩。
比如,在使用傳統(tǒng)方法計(jì)算0.1mol/l二元酸鹽NaHY體系pH值時(shí),有:
由電荷守恒和化學(xué)平衡列方程組:
可見(jiàn),該方法十分復(fù)雜,且當(dāng)體系物質(zhì)增多時(shí),計(jì)算復(fù)雜度將進(jìn)一步提升。
為了簡(jiǎn)化計(jì)算復(fù)雜度,本文使用計(jì)算機(jī)程序并采用列離子電荷守恒方程的方法,對(duì)于未知濃度的弱酸弱堿離子使用分布分?jǐn)?shù)表達(dá)并將其帶入方程,進(jìn)行求解后得到氫離子濃度,進(jìn)而通過(guò)計(jì)算機(jī)快速地計(jì)算并得到可靠精確的溶液pH值。
在本方法中,不使用最基礎(chǔ)的“列多個(gè)酸堿平衡連立求解”的原因是計(jì)算機(jī)計(jì)算能力是足夠強(qiáng)大的,完全可以滿足一元分式方程的求解需要,但相較而言,多元方程的輸入以及求解對(duì)于計(jì)算機(jī)則較難實(shí)現(xiàn)[2]。
使用的離子電荷守恒方程的形式如下:
其中:1×[H3Y-]-2×[H2Y2-]-3[HY3-]-4×[Y4-]-……項(xiàng)是可以使用分布分?jǐn)?shù)表示的。
分布分?jǐn)?shù)(distribution fraction)是平衡體系中,同一物質(zhì)各種存在型體的平衡濃度與其總濃度之比。在同一酸性條件下,同一物質(zhì)的單一形體所占據(jù)總分析濃度的比值是確定的,以下給出證明(一元酸):
對(duì)于酸HA,它僅有一級(jí)解離,以[HA]和[A-]兩種形體存在,把HA的分析濃度設(shè)為c,δ0和δ1分別是A-和HA的分布分?jǐn)?shù),有:
這個(gè)算法也可以推廣到多元酸,本程序中就采用了四元酸的分布分?jǐn)?shù)公式。
首先看一個(gè)例子分析:
例:若將0.2mol HCL,0.1mol NH4CL,0.15mol Na2HPO4加入1L水中,計(jì)算體系的氫離子濃度。
解:設(shè)[H+]=x
由離子電荷守恒列出方程:
此方程中:
求解得:
X=3.42296×10-3,即[H+]=3.42296×10-3
體系pH=-lg(x)=2.466
通過(guò)上述計(jì)算,我們發(fā)現(xiàn)在計(jì)算體系pH值的時(shí)候,只需要知道體系中的固定不變的陽(yáng)離子和陰離子電荷數(shù)(例子中是[Na+]和[CL-],通式中就是不可水解的陰/陽(yáng)離子電荷),加入的弱酸弱堿的分析濃度、弱酸弱堿(弱堿的共軛酸)的各級(jí)解離常數(shù)以及弱酸弱堿各種形體帶有的電荷量等即可通過(guò)解方程解出氫離子濃度。
綜上,對(duì)程序設(shè)計(jì)過(guò)程所需要的確定體系狀態(tài)的數(shù)據(jù)有了明確的思路。
本文中使用的Python版本為3.8.1,編譯器為Python IDLE。
根據(jù)上述分析,實(shí)現(xiàn)混合溶液體系pH值的計(jì)算,主要需要解決以下幾個(gè)問(wèn)題:
第一,適用范圍:不適用于會(huì)生成氣體、沉淀的體系;
第二,有關(guān)各個(gè)弱酸弱堿信息的儲(chǔ)存;
第三,有關(guān)各個(gè)弱酸弱堿信息的提??;
第四,離子電荷守恒方程的求解;
第五,體系pH值的輸出。
由上述分析不難發(fā)現(xiàn),想要計(jì)算一個(gè)溶液體系pH值,我們需要知道以下常量:
(1)弱酸弱堿(弱堿的共軛酸)的各級(jí)解離常數(shù)。
(2)弱酸弱堿最酸形式所帶電荷數(shù)(例如N+4H為“1”,H3PO4為“0”,為“-1”)。
考慮到輸入、修改和提取數(shù)據(jù)的便利程度,使用Excel表格形式儲(chǔ)存上述常量,其中,方便起見(jiàn),弱酸弱堿的各級(jí)解離常數(shù)以其負(fù)對(duì)數(shù)的形式儲(chǔ)存,若某物質(zhì)沒(méi)有某一級(jí)的解離常數(shù),則設(shè)定為一個(gè)足夠大的數(shù)99。具體形式如表1所示。
表1 參數(shù)表部分?jǐn)?shù)據(jù)
通過(guò)Python庫(kù)中的xlrd模塊可以方便地實(shí)現(xiàn)對(duì)于excel表格中數(shù)據(jù)的提取。
在程序中,首先需要輸入計(jì)算所涉及的弱酸弱堿的種類數(shù)與其名稱,接下來(lái)在程序中通過(guò)已經(jīng)建立的循環(huán)結(jié)構(gòu),對(duì)Excel表格進(jìn)行遍歷,查找弱酸弱堿所對(duì)應(yīng)的信息,再通過(guò)列表嵌套的方法使信息與各個(gè)所需弱酸弱堿一一對(duì)應(yīng)并儲(chǔ)存下來(lái),最后需要輸入不可水解的陰陽(yáng)離子的電荷數(shù),方便之后的計(jì)算。
(1)程序需要解的方程
經(jīng)過(guò)化簡(jiǎn),可得到與原離子電荷守恒方程等價(jià)的方程:
(2)程序解方程方法的選取
上述方程是一個(gè)較為復(fù)雜的分式方程,結(jié)合方程的實(shí)際意義考慮,可使用二分法進(jìn)行求解。
由于在確定了溶液狀態(tài)之后,溶液的pH值唯一確定,也即在一般情況下,該方程在區(qū)間[10-15,100]上有且僅有唯一實(shí)數(shù)解,結(jié)合與該方程對(duì)應(yīng)的分式函數(shù)y=f(x)在定義域上連續(xù)的特點(diǎn),使用二分法是高效可靠的方法。
所謂二分法,就是對(duì)于區(qū)間[p,q]上連續(xù)不斷且滿足f(p)·f(q)<0的函數(shù)y=f(x),通過(guò)不斷地把函數(shù)y=f(x)的零點(diǎn)所在的區(qū)間一分為二,使區(qū)間的兩個(gè)端點(diǎn)逐步逼近零點(diǎn),進(jìn)而得到零點(diǎn)近似值的方法。
(3)使用二分法解方程在Python環(huán)境中的實(shí)現(xiàn)與體系pH值的輸出
劃定一個(gè)合理x值的范圍[p,q]。(初始默認(rèn)值設(shè)定為[10-15,100]),井且計(jì)算。設(shè)函數(shù)f(x)=方程左式,并計(jì)算。因?yàn)楹瘮?shù)y=f(x)在區(qū)間[p,q]上是隨著x的增大而單調(diào)遞增的,所以如果的計(jì)算結(jié)果小于0,則將設(shè)置為新的p值,并重新開(kāi)始循環(huán);如果的計(jì)算結(jié)果大于0,則將設(shè)置為新的q值,并重新開(kāi)始循環(huán),憑借該操作可使區(qū)間[p,q]的兩個(gè)端點(diǎn)不斷逼近函數(shù)y=f(x)的零點(diǎn),進(jìn)而得到零點(diǎn)的近似值。結(jié)束循環(huán)的標(biāo)志在程序中表現(xiàn)為的絕對(duì)值小于10-15(該值可根據(jù)不同的精度要求調(diào)節(jié)具體大?。⑤敵龃藭r(shí)x的值的負(fù)對(duì)數(shù),也即溶液pH值的近似值。
使用Python launcher或其他Python編譯器運(yùn)行程序(以Python launcher舉例)。
根據(jù)提示輸入物質(zhì)的種類數(shù)、名稱與相應(yīng)的分析濃度、不可水解的陰陽(yáng)離子的分析濃度,即可求解。
例如:某混合溶液含有0.10mol/l HCL、2.0×10-4mol/l NaHSO4和2.0×10-6mol/l HAc,計(jì)算此混合溶液的pH。(參考答案:1.00)
程序?qū)崿F(xiàn)過(guò)程:本題當(dāng)中有兩種會(huì)水解的物質(zhì):硫酸氫根與醋酸根,濃度分別為0.0002mol/l與0.000002mol/l,不可水解的陽(yáng)離子電荷數(shù)為0.0002mol/l(Na+),不可水解的陰離子電荷為0.01mol/l(CL-)。
根據(jù)程序提醒,輸入相應(yīng)信息,具體流程如下所示:
表2列出同一體系溶液情況下,應(yīng)用本程序計(jì)算的pH值和參考書中pH值實(shí)際值得對(duì)比,進(jìn)一步驗(yàn)證該程序計(jì)算的正確性。
表2 計(jì)算值與實(shí)際值的對(duì)比
該程序完成了多種不會(huì)互相反應(yīng)生成沉淀,氣體的物質(zhì)所構(gòu)成水溶液體系的pH值計(jì)算,給予了其可靠的計(jì)算結(jié)果,顯著節(jié)省了相關(guān)工作者與學(xué)習(xí)者的計(jì)算時(shí)間。在將來(lái)的改進(jìn)中,將著重解決與沉淀氣體有關(guān)體系的pH值計(jì)算的可行性,擴(kuò)大程序的適用范圍。