鮑新華,盧文喜,李鴻雁,才文韜,譚劍鋒
(吉林大學(xué)環(huán)境與資源學(xué)院,吉林 長春 130026)
在管路水力計算、明渠臨界水深與均勻流水深計算、河道水面曲線計算、水躍共扼水深與水力消能計算、堰流計算以及某些經(jīng)驗公式(如沿程阻力系數(shù))等水力計算中,經(jīng)常遇到求解隱式方程問題。試算法(含輔助圖解法)、標(biāo)準(zhǔn)曲線圖解法是常用的一類傳統(tǒng)方法[1~3]。這些傳統(tǒng)方法雖有優(yōu)點,但不足也是明顯的。如試算法雖可以充分發(fā)揮計算者的經(jīng)驗判斷,有時能給出比較接近結(jié)果的初值并較快得到結(jié)果,但由于求解常需要反復(fù)試算,有時配合輔助圖解法還存在讀數(shù)的精度誤差。
Excel作為Office常用組件之一,在工程與管理行業(yè)的統(tǒng)計、計算方面得到了全面的應(yīng)用,但在水力計算中用于求解隱式方程還不多見[4,5]。由于Excel的數(shù)據(jù)運算能力、圖表功能和內(nèi)含的單變量求解功能,將其引入水力學(xué)中求解隱式方程,與傳統(tǒng)方法相比具有求解簡單方便,通用性強(qiáng)的特點。
選用幾個水力學(xué)隱式方程典型算例,應(yīng)用Excel單變量求解、迭代求解和輔助做圖功能,說明Excel用于水力學(xué)計算的簡單與方便。
例1:數(shù)據(jù)選自文獻(xiàn)[1]例5.3。已知等腰梯形斷面渠道設(shè)計流量Q,底坡i,底寬b,邊坡系數(shù)m和粗糙系數(shù)n,求均勻流水深h0。
從明渠均勻流基本公式入手,謝才系數(shù)采用曼寧公式,可以給出這種情況下的流量公式:
Excel單變量求解這一隱式方程基本過程為:在Excel工作表中A1∶F1單元格中輸入變量符號(僅作為標(biāo)識,不參與運算),A2單元格中輸入上面的公式(注意公式以等號開始),B2∶E2輸入相應(yīng)已知數(shù)值。當(dāng)光標(biāo)在任意單元格時,從“工具—單變量求解”出現(xiàn)的對話框中選擇輸入“目標(biāo)單元格”和“可變單元格”絕對地址,然后輸入流量Q的目標(biāo)值70后,見圖1。按確定則有求解結(jié)果為(圖 2)
圖1 單變量求解均勻流水深過程
結(jié)果與文獻(xiàn)[1]基本相同,但由于試算法的近似和輔助做圖讀數(shù)的誤差,Excel單變量求解的精度顯然要高些。
圖2 單變量求解均勻流水深結(jié)果
例2:數(shù)據(jù)選自文獻(xiàn)[1]例6.3。采用上面類似的方法,Excel單變量求解上述隱式方程的臨界水深 hk為 2.25 m(見圖 3)。
圖3 單變量求解等腰梯形斷面臨界水深hk
需要說明的是,求解前上述C2∶E2單元格的公式是按照公式(2)輸入的。
從上面2例可以看出,與試算法(含輔助圖解法)和標(biāo)準(zhǔn)曲線圖解法相比,Excel單變量求解水力學(xué)隱式方程,可體現(xiàn)出2個優(yōu)點:①求解過程簡單,結(jié)果精度高。由于試算法需要多次反復(fù)試算,求解工作量較大。在不能大量試算的情況下,結(jié)果精度必然要受影響。試算的輔助圖解法和標(biāo)準(zhǔn)曲線(需有標(biāo)準(zhǔn)曲線模板)圖解,則有讀數(shù)誤差的影響。②對同一隱式方程,Excel單變量求解的工作表可以作為模板使用。參數(shù)不同,求解過程相同。由于隱式方程(如公式(1)或(2))是不變的,因此稍顯麻煩的公式僅需輸入一次,保留后就可以作為模板下次使用,使用時僅需要改變另一同類問題參數(shù)的數(shù)值再求解就可以了。特別是對同一隱式方程不同求解問題,只要使用的隱式方程不變,求解過程也是不變的。如在公式(1)中,在均勻流水深h和其它參數(shù)已知時求解底寬b,需要變化的只是可變單元格由h對應(yīng)格變?yōu)閎對應(yīng)格而已(如例1中,可變單元格由F2變?yōu)锽2),而這點變化對于求解并不增加任何工作量。
迭代法也稱輾轉(zhuǎn)法,是一種不斷用變量的舊值遞推新值的過程,也是隱式方程的另一種解法。這里我們主要采用簡單迭代法[6]。簡單迭代法在教材中均有少量介紹[1~3],由于求解多采用計數(shù)器或編程法進(jìn)行,一定程度上限制了迭代法的應(yīng)用。而將Excel工具引入水力學(xué)隱式方程迭代求解具有簡單方便的特點。
水力學(xué)隱式方程采用迭代解法,首先應(yīng)該根據(jù)隱式方程或方程的變形來確定迭代關(guān)系。隱式方程適當(dāng)?shù)淖冃慰梢杂行p少迭代次數(shù)。其次是迭代初值的選擇,好的初值依靠經(jīng)驗,不適當(dāng)?shù)某踔悼赡軐?dǎo)致不收斂情況的出現(xiàn)。再次是確定迭代結(jié)束的條件,通??梢缘鄬φ`差來控制??紤]到初值常以0值開始和一次迭代有時就可能滿足精度要求的特例,取δ=更不失一般性。當(dāng)?shù)鄬φ`差很小時,比如小于1%,則可以結(jié)束迭代。
例3:仍以上面例1數(shù)據(jù)為例,迭代求解等腰梯形均勻流水深h0。
對公式(1)變形有:
采用Excel進(jìn)行迭代計算如下:
打開Excel表,輸入表頭標(biāo)識,即將已知參數(shù)Qi,b,m,n,h0i,h0i+1,相對誤差 δ輸入到單元格內(nèi),然后把已知參數(shù)值輸入到下一行相應(yīng)位置。在G2單元格(h0i+1單元格)內(nèi)輸入下列公式(即公式(3),注意單元格地址的絕對和相對引用)=($E$2*$A$2/($B$2^(1/2)))^(3/5)*(($C$2+2*F2*((1+$D$2*$D$2)^(1/2)))^(2/5))/($C$2+$D$2*F2)
取h0i=0為初值,在F2單元格內(nèi)輸入初值0,在F3單元格內(nèi)輸入=G2,,在H2單元格內(nèi)輸入=ABS(G2-F2)/G2?100,然后拖動填充柄對單元格G3和H2分別向下復(fù)制公式,公式復(fù)制的過程實際上就是Excel的迭代過程!迭代終止以相對誤差小于1%作為結(jié)束標(biāo)志,最終結(jié)果取滿足要求時h0i+1單元格中的數(shù)值。從圖4可以看出,本例僅迭代2次就達(dá)到了給定的精度要求,結(jié)果與前面單變量求解結(jié)果是一致的(見圖2,4)。
圖4 迭代法求解均勻流水深結(jié)果
在例1中,如果已知等腰梯形斷面渠道設(shè)計流量Q,底坡i,均勻流水深h0,邊坡系數(shù)m和粗糙系數(shù)n,求底寬b。則可以對式(3)變形有:
迭代求解方法與例3類似,此略。
例4:例題取自文獻(xiàn)[3],已知雷諾數(shù)Re=48 595,水流型態(tài)處于紊流光滑區(qū),要求采用尼古拉茲光滑管公式計算沿程阻力系數(shù)λ。
尼古拉茲光滑管公式變形為迭代形式為
Excel迭代運算表見圖5。取不同非零初值(對數(shù)函數(shù)自變量不能取零值),不同迭代初值對應(yīng)結(jié)果見表1。
圖5 迭代法求解沿程阻力系數(shù)λ
表1 沿程阻力系數(shù)λ迭代結(jié)果比較
從某種意義上看,水力學(xué)隱式方程的迭代解法類似有序的試算法,是從一個初始值出發(fā),不斷逼近精確解的過程。求解前一般先把方程變形為x=f(x)的形式(如公式(3~5)),采用 xi+1=f(xi)迭代式,采用簡單迭代法來求解。通過筆者教學(xué)中對多數(shù)水力學(xué)隱式方程計算表明,一般簡單迭代法多能收斂并得到滿足精度的結(jié)果。
此外,觀察表1,還應(yīng)注意到迭代相對誤差與結(jié)果的誤差是有所區(qū)別的。例4中取λ=0.026 10作為結(jié)果精確值的話,表中有二個相同的結(jié)果與此一致(不考慮舍入誤差),但它們的迭代相對誤差是有區(qū)別的,而作為最終結(jié)果,其誤差應(yīng)該是一致的。但這種迭代相對誤差與結(jié)果的誤差在應(yīng)用中基本可以忽略。
從上面的例題看,由于Excel強(qiáng)大的表格運算功能,不用編程就可以利用Excel方便完成迭代過程,這表明使用Excel迭代解法求解水力學(xué)隱式方程具有簡單方便的特點。需要說明的是,除了簡單迭代解法外,牛頓迭代等迭代解法也是可以應(yīng)用的,限于篇幅,這里就不介紹了。
利用Excel不僅可以對隱式方程進(jìn)行單變量法和迭代法求解,還可以利用Excel強(qiáng)大的圖表功能,對相關(guān)問題進(jìn)行輔助制圖,下面舉例說明這方面的應(yīng)用。
例5:例題取自文獻(xiàn)[1]例6.6,對長直棱柱狀明渠,已知底寬b、邊坡系數(shù)m、粗糙系數(shù)n、流量Q、末端水深h,求明渠均勻流水深h0、臨界水深hk,并繪制水面曲線。
首先,選用Excel單變量求解法,求解本問題的均勻流水深h0、臨界水深hk見圖6,并作為進(jìn)一步分析的初始數(shù)據(jù)。
圖6 Excel單變量求解均勻流水深h0、臨界水深hk
然后利用文獻(xiàn)[1]相關(guān)公式,用Excel分流段列表計算水深,計算表見圖7。
圖7 Excel水深分段計算表
為利用Excel繪圖,利用圖6,7數(shù)據(jù),形成一個Excel輔助表(見圖8),然后根據(jù)輔助表,利用Excel繪圖功能繪制的水面曲線見圖9。
圖8 Excel輔助繪圖數(shù)據(jù)表
圖9 Excel繪制的水面曲線
雖然本例中一些具體細(xì)節(jié)限于篇幅這里沒介紹,但對Excel稍有熟悉的讀者是不難從上面介紹中掌握這一簡單方法的。雖然這里介紹的利用Eecel輔助繪圖只是一個簡單例子,但由于Excel的基于數(shù)據(jù)表的強(qiáng)大繪圖功能,對水力學(xué)中許多數(shù)據(jù)圖,甚至標(biāo)準(zhǔn)曲線等都是可以應(yīng)用的。
從上面幾個實例介紹可以看出,Excel的單變量求解法和簡單迭代法應(yīng)用于求解水力學(xué)單解隱次方程具有簡單方便、精度高和通用性強(qiáng)的特點,可以作為水力學(xué)試算法(含輔助圖解法)、標(biāo)準(zhǔn)曲線圖解法之外的另一種求解方法。將Excel強(qiáng)大的數(shù)據(jù)處理和繪圖功能應(yīng)用于水力計算中具有簡明方便的特點,可以發(fā)揮一定的積極作用。
作為已廣泛使用的Office辦公軟件組件之一的Excel工具的使用,在水力計算中,無論是現(xiàn)行教材還是應(yīng)用文獻(xiàn)看,都還不多見。作為一種方便成熟的工具,本文呼吁將Excel應(yīng)用引入教材,并在實際計算應(yīng)用中加以積極推廣。
[1]吳持恭.水力學(xué)[M],第4版.北京:高等教育出版社,2008.
[2]趙振興,何建京.水力學(xué)[M].北京:清華大學(xué)出版社,2005.
[3]李大美,楊小亭.水力學(xué)[M].武漢:武漢大學(xué)出版社,2004.
[4]張 錦.Excel在水力計算中的應(yīng)用探討[J].甘肅水利水電技術(shù),2002,38(4):301-302.
[5]鄒 健.雍水曲線的新式解法.西部探礦工程[J],2006,8:216-217.
[6]李有法,李曉勤.數(shù)值計算方法[M],第2版.北京:高等教育出版社,2005.
[7]Excel規(guī)劃求解水—巖作用模型[J].地下空間與工程學(xué)報,2008,4(2):265-268.