999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

用VB程序解決化學平衡的計算例析

2010-12-31 00:00:00王國勇
化學教學 2010年7期

文章編號:1005-6629(2010)07-0070-03 中圖分類號:G633.67 文獻標識碼:B

當我們學習化學平衡的相關知識時,化學平衡常數的計算列出的方程,有時可能是一個難以求解的高次方程,只有通過近似估計,反復使用計算器試根,才能得出近似解。由此,我想到可以編寫一個自動執行這一過程的電腦程序,以幫助我們完成計算。程序使用VB編寫,操作界面友好易懂,算法采用二分法、窮舉、循環等簡單的語句完成。完成了在定容這一題目常見條件下對于一般平衡計算題型的求解,也增強了同學們使用VB語言解決問題的能力。

1引言

有關化學平衡的計算題相信很多高中的學生都經常遇到,相比于整個化學平衡對邏輯思維的高要求,這種給定初始情況和平衡常數,要求計算最終平衡情況的題目,在思路上是沒有難度的,但卻常常因高次方程難以求解的問題而無法得出結果。下面,舉這樣一個例子。

已知氣相反應,2SO2+O22SO3, 在一定溫度時體積恒定為1 L的密閉容器中,充入0.4 mol的二氧化硫和1.0 mol氧氣。已知平衡常數為19,求反應平衡時二氧化硫轉化率。

解:初始濃度 二氧化硫 0.4 mol·L-1氧氣1.0 mol·L-1

設二氧化硫反應掉x mol·L-1

則氧氣反應掉 x/2 mol·L-1

由平衡常數定義計算式可列方程:

x2/[(0.4-x)2 (1-x/2)]=19

這是一個三次方程,顯然x取值范圍為0~0.4,當x等于0.3時仍然偏小,使用計算器計算x在 0.3~0.4之間左式的值,步長0.01,結果如下:

可見,當x=0.32時,左式值為19.047約等于右式,則x=0.32為方程近似解。

所以, 二氧化硫轉化率為0.32÷0.4×100%=80%

由對此題的求解過程,我們發現,其實類似的高次方程是有特點的:

(1)對于化學平衡中我們所涉及的反應物消耗量x mol。它是有范圍的,其范圍為零到初始濃度之間。所以我們所求的高次方程解也在這個范圍間。

(2)此類化學計算中,一般用有一定近似程度的小數表示,所以,只要精確度達到要求,方程近似解可以作為最終的答案。

(3)使用計算器的時候,由于反復運算同一個方程,可以用計算機中的循環語句完成這一循環計算過程。

由此,我編寫了“定容化學平衡計算程序”我們可以借助計算機解決這個問題,既增強了同學們的學習興趣,又可促進同學們對VB語言的掌握和應用。

2 程序算法詳解

在前文中,我們得到方程x2/[(0.4-x)2(1-x/2)]=19,將其展開,設定函數F(x)=x2 -19*[(0.4-x)2 (1-x/2)], 原方程的解,轉化為求F(x)的零點。其實, 對于一個化學方程式: aA+bB+cC=dD+eE+fF A、B、C、D、E、F分別為參與反應的氣體物質,a、b、c、d、e、f為對應的系數,即化學方程式計量數。假設平衡常數為K。初始濃度分別為 ca , cb , cc , cd , ce , cf 。同樣我們可以得到函數:fx=((cd+x/a*d)d) * ((ce+x/a *e)e)*((cf+x/a*f)f)-k*((ca-x)a)*((cb-x/a*b)b)*((cc-x/a*c)c)這是達到平衡時, 假設A轉化x mol·L-1, 由方程式對應得出其它物質濃度變化所列計算式。

而當給定初始條件平衡逆移時,假設D轉化x mo·L-1,則有:

fx=((cd-x)d)*((ce-x/d*e)e)*((cf-x/d*f)f)-k*((ca+x/d *a)a)*((cb+x/d*b)b)*((cc+x/d*c)c)

下面,我們對第一種情況進行具體講解,第二種情況算法是完全相同的。

x有一定范圍,所以,起始x從其最大值,即x=ca開始。

2.1二分法縮小范圍

其語句如下:

x=ca

Do

fx=((cd+x/a*d)d)*((ce+x/a*e)e)*((cf+x/a*f)f)-k*((ca-x)a)*((cb-x/a*b)b)*((cc-x/a*c)c)

x=(x/2)

Loop Until (f(x)) < 0

對于x,執行循環,每一次都將上一個x的值除以2,因為當x=ca時,fx顯然是大于零的,而不斷的等分x,當(f(x))<0時終止循環,此時,前一個x所對應的函數值仍然大于零。所以,下面的循環語句,將在縮小后的范圍內求解x,由于2分法的高效性,大大減少了運算次數,相應縮短了運算時間。

2.2窮舉求出x近似值

當第一步縮小過范圍后,找到一個x

其后語句如下

x1=x*4

x2=x*4-0.00001

Do

fx1=((cd+x1/a*d)d)*((ce+x1/a*e)e)*((cf+x1/a*f)f)-k *((ca-x1)a)*((cb-x1/a*b)b)*((cc-x1/a*c)c)

fx2=((cd+x2/a*d)d)*((ce+x2/a*e)e)*((cf+x2/a*f)f)-k *((ca-x2)a)*((cb-x2/a*b)b)*((cc-x2/a*c)c)

x3=(x1+x2)/2

x1=x1-0.00001

x2=x2-0.00001

Loop Until ((fx1) * (fx2)) <= 0

x1=x*4,是因為前面的語句循環時,找到x后多除了一次2,所以乘2,且需要的是之前x的值,所以再乘2。同樣,x2=x*4-0.00001。設這兩個x以及兩個fx的意義如圖1:

這兩個x從初始開始在循環語句中,間隔是始終不變的,分別對應各自函數值,當我們從初始值開始遞減,兩條豎線不斷左移,fx1*fx2的值始終是大于零的,而當移動到某一位置,兩條豎線分居零點左右或者有可能剛好其中一條位居零點,此時f(x1)*f(x2)<=0,循環結束,因為x1,x2間隔始終為0.00001很小,可取x1,x2平均值x3為最終結果。

而當平衡逆移,即前文所說的第二種情況,其代碼如下:

Do

fx=((cd-x)d)*((ce-x/d*e)e)*((cf-x/d*f)f)-k*((ca+x/d*a)a)*((cb+x/d*b)b)*((cc+x/d*c)c)

x=(Int((x/2)*10000000))/10000000

Loop Until (f(x))>0

x1=x*4

x2=x*4-0.00001

Do

fx1=((cd-x1)d)*((ce-x1/d*e)e)*((cf-x1/d*f)f)-k*((ca+x1/d*a)a)*((cb+x1/d*b)b)*((cc+x1/d*c)c)

fx2=((cd-x2)d)*((ce-x2/d*e)e)*((cf-x2/d*f)f)-k*((ca+x2/d*a)a)*((cb+x2/d*b)b)*((cc+x2/d*c)c)

x3=(x1+x2)/2

x1=x1-0.00001

x2=x2-0.00001

Loop Until (f(x1)* (f(x2)) <= 0

唯一的不同就是,二分法時,判斷語句為fx>0,這是因為函數在這附近是單減的,初始X值時,fx為負。而第二步完全相同,因為兩個負數相乘的積也是正數,所以判斷語句仍為fx1*fx2<0。

而對于初始反應方向的判斷,由if……then,語句完成。判斷F(X)=(cd^d)*(ce^e)*(cf^f)-k*(ca^a)*(cb^b) *(cc^c)的符號,等于零表示初始就平衡,直接輸出結果,小于零,表示反應正向進行(注意!是正向!),即第一種情況,若大于零,則反應逆向進行,即第二種情況。

在得出x結果后,六種物質平衡時的最終濃度便都可以得解,相應的轉化率也可以求出。

3 整體程序的編寫設計及注意事項

整體程序的完成包括以下幾部分

3.1界面的設計

為了讓人更直觀的使用本程序,我們使用VB的可視化窗口形式。整個界面上半部分為用戶輸入部分,下半部分為結果顯示部分,取消和刷新分別還原上下部分。點擊確定則由輸入的數據計算出結果并在下方顯示。

3.2對于數據的讀入和輸出

在VB里,使用text.text=的語句從用戶輸入的信息中讀取數據。要注意的是,當反應物或生成物沒有達到三個時,會出現系數為零,此時會出現0^0,因此,在整個計算前,對系數判斷,若其系數等于零,濃度賦值為1,1^0=1,做乘法對計算結果無影響。當然,在輸出的時候,要將濃度重新賦為0。對于a和d,因為我默認按順序輸入,作為化學方程第一種物質即運算中的除數,都是不能等于零的。

3.3程序的不足

(1)因為需要更加直觀,化學計量數的輸入格式上已經是方程式的形式,所以只能用于計算反應物和生成物是三個或三個以內的化學反應方程式。而且因為以濃度計算的時候固體和純液體是沒有意義的,所以,對于反應物或生成物全是固液的方程,在程序里a,d等于零,已經沒有意義無法計算,這是本程序最大的缺陷。但在高中所遇到的平衡題目內,化學方程達到這兩個條件的相當少見,而對于部分反應物或生成物含有固液,只要量足夠且不影響反應,將剩余部分方程式輸入仍可以計算。

(2)雖然已經使用二分法縮小范圍,但對于初始濃度超過較大兩位數的情況程序出現明顯停頓,基本在30秒以上。

4總結

“定容化學平衡計算程度”只是一個小小的程序設計,它有著許多的不足,但對于高中學生日常處理平衡計算問題,老師驗證答案的正確都有一定的幫助,作為一種教學課件可以為初學者演示一些許小的變化引起平衡移動的結果,激發學生的興趣。更重要的是,這也是一種解決問題的方式,面對一個無法得出的答案,可以借助計算機的幫助,以人的邏輯思考能力與計算機強大的計算能力相結合,充分利用學過的知識,解決棘手的問題,這種思想在平常的學習中會幫助我們獲得更多的啟迪和靈感。

主站蜘蛛池模板: 人人爽人人爽人人片| 精品无码一区二区在线观看| 97se亚洲综合在线韩国专区福利| 欧美.成人.综合在线| 少妇被粗大的猛烈进出免费视频| 国产特级毛片aaaaaaa高清| 再看日本中文字幕在线观看| 91福利在线观看视频| 熟妇人妻无乱码中文字幕真矢织江| 日韩不卡高清视频| 中文字幕无码av专区久久| 中文天堂在线视频| 乱人伦视频中文字幕在线| aⅴ免费在线观看| 青青青国产视频手机| 国产91高跟丝袜| aa级毛片毛片免费观看久| 欧美成人看片一区二区三区| a毛片免费观看| 蜜臀AV在线播放| 操操操综合网| 少妇精品网站| 色综合a怡红院怡红院首页| 精品一区国产精品| 亚洲国产中文精品va在线播放 | 国产伦片中文免费观看| 成人伊人色一区二区三区| 国产成人综合亚洲网址| 亚洲无线一二三四区男男| 欧美综合区自拍亚洲综合绿色 | 亚洲无码精彩视频在线观看| 国产亚洲高清在线精品99| 欧美精品成人一区二区在线观看| 亚洲大尺码专区影院| 国产大片喷水在线在线视频| 国产美女自慰在线观看| 97在线国产视频| 幺女国产一级毛片| 一级在线毛片| 99在线观看免费视频| 男女性午夜福利网站| 成人字幕网视频在线观看| 久久人搡人人玩人妻精品| 亚洲国产精品久久久久秋霞影院 | 2020国产精品视频| 亚洲天堂.com| 久久精品人人做人人综合试看| 国产精品一区二区国产主播| 欧洲欧美人成免费全部视频| 亚洲色欲色欲www在线观看| 精品少妇三级亚洲| 国产精品九九视频| 久久婷婷五月综合97色| 亚洲最新网址| 国产精品19p| 欧美精品综合视频一区二区| 99九九成人免费视频精品| 国产白丝av| 国产精品99一区不卡| 91伊人国产| 极品国产在线| 国产AV毛片| 丁香五月激情图片| 在线色国产| 国产成人精品高清在线| 亚洲浓毛av| 亚洲中文字幕97久久精品少妇| 久久久噜噜噜| 伊人久热这里只有精品视频99| 久久综合伊人 六十路| 亚洲国产欧洲精品路线久久| 美女毛片在线| 欧美国产成人在线| 国产美女91视频| 欧美日韩va| 在线国产毛片手机小视频| 免费人成在线观看成人片| 欧美成人一区午夜福利在线| 在线看片中文字幕| 亚洲看片网| 日日拍夜夜操| 亚洲成网777777国产精品|