竇立巖,汪麗梅
(吉林建筑大學,吉林 長春 130018)
Matlab語言是國內(nèi)大學電子信息和通信工程類專業(yè)必修的工具基礎課,但從其產(chǎn)生及發(fā)展的歷程來看,強大的數(shù)據(jù)分析處理能力更能體現(xiàn)其核心價值,因此,Matlab的應用范圍絕不僅僅局限于某些目前比較熱門的學科領域,而應該作為一種用途廣泛的常用工具軟件加以推廣。本文旨在從基礎化學本科教學的內(nèi)容中列舉一些實例來闡述Matlab的輔助教學作用。目前化學本科教學的基礎內(nèi)容包括無機、有機、分析、物理化學、物質(zhì)結(jié)構(gòu)及相關實驗內(nèi)容,除無機和有機主要涉及結(jié)構(gòu)反應外,其他幾門課程都包括大量的計算和實驗數(shù)據(jù)處理,在已基本保證學生人手一臺筆記本電腦的基礎上,把Matlab軟件納入到必備學習工具軟件的范疇里,提高學生利用現(xiàn)代工具的能力,將進一步靠近高校當前的培養(yǎng)目標。
實例1:草酸在水溶液中存在的形式是:H2C2O4, HC2O4-, C2O42-, 已知Ka1=5.9e-2,Ka2=6.4e-5,請繪制出HC2O4-在不同pH值下分布曲線圖。
Matlab程序如下:
Ka1=5.9e-2;
Ka2=6.4e-5;
pH=0:0.1:7;
H=10.^(-pH);
d1=Ka1*H./(H.^2+Ka1*H+Ka1*Ka2);
plot(pH,d1);
xlabel('pH值');
ylabel('分布系數(shù)');
title('分布曲線')
圖1 HC2O4- 在不同pH值下分布曲線
從上例可以看出,通過簡短的Matlab語句表達,就可以將HC2O4-隨pH值的變化規(guī)律以曲線的形式清晰的展示出來,而且任意pH值下的分布系數(shù)也都可以獲取,體現(xiàn)了強大的數(shù)據(jù)處理能力。
實例2:某溫度下乙醛分解反應為C2H4O(g)→CH4(g)+CO(g),根據(jù)以下數(shù)據(jù)判斷其反應級數(shù)。
表1 乙醛濃度與時間對應關系
表2 乙醛濃度與反應速率對應關系
將(1)式兩端取對數(shù)得:lnr=lnk+nlnC,隨之可使用Matlab繼續(xù)解題,語句如下:
c=[5.85,4.46,3.83,2.81,2.01];c=log(c)
r=[0.013,0.010,0.006,0.004,0.002];
r=log(r);
p=polyfit(c,r,1);
ci=linspace(log2.0,log6.0,50);
ri=polyval(p,ci);
plot(c,r,'o',ci,ri,':')
xlabel('logc');ylabel('logr')
p
回車后運行:
p =
1.7833 -7.4197
圖2 乙醛反應速率與濃度對數(shù)關系
舍掉負值后得p(斜率)=1.7833,故判斷反應級數(shù)為2級。
在本例中遇到一個非常重要的Matlab函數(shù),polyfit即擬合函數(shù),它的作用是可以把若干獲得的已知數(shù)據(jù)進行處理,最終達到擬合到一條函數(shù)曲線上的目的,相當于根據(jù)數(shù)據(jù)的變化規(guī)律來建立相應的數(shù)學模型。對于本例,該法有些大材小用,因為僅僅是一級擬合,如有大量數(shù)據(jù)需要處理,而且對擬合精度有很高要求,需進行多項式擬合,人工計算是無論如何都不能比擬的。與擬合函數(shù)同等重要的另外一個函數(shù)是插值函數(shù),命令通常為interp1,即一維插值,與擬合函數(shù)不同,插值函數(shù)除一維插值外,還包括其他插值方式,如二維插值、N維數(shù)據(jù)插值、三次樣條插值等,其中以一維插值最為常用,示例如下:
實例3: 某檢測參數(shù)w隨時間采樣結(jié)果如表3所示,用數(shù)據(jù)插值法求出t=3,18,26時的w值。
表3 參數(shù)w隨時間采樣結(jié)果
Matlab語句如下:
t=[0,5,10,15,20,25,30];
w=[1.6,10.2,88.3,225.3,786.2,1365.2,3368.5];
X=[3,18,26];
w1=interp1(t,w,X);
w1
回車后運行結(jié)果:
w1 =
1.0e+003 *
0.0068 0.5618 1.7659
不難看出,利用插值方法可以得到此時間范圍內(nèi)所有對應結(jié)果,前提是要獲取若干采樣結(jié)果,從而找到其變化規(guī)律,實際上這里面已經(jīng)暗含了擬合的過程,因此插值可以看作是數(shù)據(jù)擬合基礎上的進一步應用。
Matlab語句如下:
r=0:1:500;
a0=52.9;
a=sqrt(1/pi*a0^3).*exp(-r/a0);
Dr=4*pi*r.^2.*a.^2;
plot(r,Dr,'-*b');
xlabel('核外半徑')
ylabel('電子出現(xiàn)概率')
title('基態(tài)氫原子徑向分布函數(shù)圖')
圖3 電子出現(xiàn)概率與核外半徑關系
本例從功能方面來看,與實例1并無區(qū)別,都體現(xiàn)了計算和數(shù)據(jù)處理能力,但從計算量來看要大得多,說明Matlab完全可以處理更加復雜的計算,而對于物質(zhì)結(jié)構(gòu)這類研究微觀領域電子云分布函數(shù)涉及到大量復雜公式的科學,正可作為Matlab軟件用武之地。
Matlab在國外早已成為流行的學習工具軟件,其受歡迎之處不僅在于其功能幾乎覆蓋了目前所有的重要科技領域,而且是入門極易的一門語言,短期的學習即可掌握其基本語言。對于化學領域的工作者來說,一旦具備了利用Matlab進行計算及數(shù)據(jù)處理能力,使許多抽象的公式以圖形曲線的形式展現(xiàn)出來,不僅會對問題的理解更加直觀,而且也增添了趣味性,尤其是學生平日的學習也能培養(yǎng)出善于樂于使用Matlab解答學科問題的習慣,對于其日后發(fā)展將產(chǎn)生不可估量的作用。