馬寧 張明
摘 要:文章通過(guò)對(duì)誤差的定量分析,得到數(shù)值計(jì)算中應(yīng)遵循的一些原則,圍繞著如何讓學(xué)生學(xué)會(huì)運(yùn)用這些基本原則去解決實(shí)際問(wèn)題,開展了廣泛的討論。數(shù)值分析是研究分析用計(jì)算機(jī)求解數(shù)學(xué)計(jì)算問(wèn)題的數(shù)值計(jì)算方法及其理論的學(xué)科,它以數(shù)字計(jì)算機(jī)求解數(shù)學(xué)問(wèn)題的理論和方法為研究對(duì)象。數(shù)值分析跟各個(gè)學(xué)科緊密聯(lián)系,相互促進(jìn),以成為科學(xué)研究、工程設(shè)計(jì)必用的基本工具。具體闡述了數(shù)值分析實(shí)踐討論課的實(shí)施步驟及過(guò)程,并給出了具體實(shí)例,最后提出了幾點(diǎn)體會(huì)與心得。
關(guān)鍵詞:數(shù)值分析 舍入誤差 實(shí)踐討論課 探索研究
中圖分類號(hào):G642.423 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1674-098X(2015)09(b)-0033-02
為了讓同學(xué)們更好地掌握這門知識(shí),開展了數(shù)值分析課外實(shí)踐討論課。學(xué)生結(jié)合自己所在學(xué)科領(lǐng)域進(jìn)行選材,并從選題背景、解決方法、誤差分析、結(jié)果與討論4個(gè)方面進(jìn)行闡述。在老師的悉心指導(dǎo)和同學(xué)們的積極參與下,實(shí)踐討論課順利完成,達(dá)到了預(yù)期效果。該文將從以下幾方面簡(jiǎn)要分析總結(jié)。
1 引言
在科學(xué)和技術(shù)的發(fā)展過(guò)程中,科學(xué)理論和科學(xué)實(shí)驗(yàn)一直是兩種重要的科學(xué)方法和手段。但是,對(duì)于一些復(fù)雜的科學(xué)與工程問(wèn)題(例如太大或太小,太快或者太慢的問(wèn)題)理論分析往往無(wú)能為力,而實(shí)驗(yàn)又無(wú)法進(jìn)行,因此需要新的科學(xué)研究方法的出現(xiàn)。20世紀(jì)40年代電子計(jì)算機(jī)的發(fā)明為科學(xué)計(jì)算成為第三種科學(xué)研究的手段提供了可能。我們把在電子計(jì)算機(jī)上進(jìn)行的科學(xué)工作稱為科學(xué)計(jì)算。隨著計(jì)算機(jī)的飛速發(fā)展,科學(xué)研究與工程設(shè)計(jì)的手段逐漸由理論分析、模擬實(shí)驗(yàn)向科學(xué)計(jì)算的方向轉(zhuǎn)變。科學(xué)計(jì)算與科學(xué)理論、科學(xué)實(shí)驗(yàn)并列為現(xiàn)代科學(xué)的3個(gè)組成部分。科學(xué)計(jì)算的核心內(nèi)容是以現(xiàn)代化的計(jì)算機(jī)及數(shù)學(xué)軟件為工具,以數(shù)學(xué)模型為基礎(chǔ)進(jìn)行模擬研究??茖W(xué)計(jì)算是一個(gè)新興的發(fā)展十分迅速的科學(xué)。先后產(chǎn)生了計(jì)算數(shù)學(xué)、計(jì)算物理學(xué)、計(jì)算力學(xué)、計(jì)算化學(xué)、計(jì)算材料學(xué)等一系列與計(jì)算相關(guān)的分支學(xué)科,今天科學(xué)計(jì)算已經(jīng)滲透到各個(gè)學(xué)科。
科學(xué)計(jì)算是利用計(jì)算機(jī)通過(guò)計(jì)算的手段來(lái)解決實(shí)際問(wèn)題的一門科學(xué)。其處理問(wèn)題的過(guò)程必須按照下面的步驟進(jìn)行:實(shí)際問(wèn)題→數(shù)學(xué)模型→數(shù)值方法→程序設(shè)計(jì)→上機(jī)計(jì)算→分析結(jié)果。
從實(shí)際問(wèn)題到最終得到計(jì)算結(jié)果,這中間經(jīng)過(guò)的每一個(gè)環(huán)節(jié)都有可能產(chǎn)生誤差。由實(shí)際問(wèn)題數(shù)學(xué)模型化所產(chǎn)生的誤差稱為模型誤差,在數(shù)值分析課中我們不加以討論。我們把一個(gè)數(shù)學(xué)問(wèn)題做數(shù)值計(jì)算時(shí)可能產(chǎn)生的誤差大致分為如下3類[1]。
1.1 原始數(shù)據(jù)誤差
原始數(shù)據(jù)誤差也稱觀測(cè)誤差。數(shù)學(xué)模型中的一些物理量和原始數(shù)據(jù)都要通過(guò)觀察和測(cè)量得到,而在觀察和測(cè)量中要受到方法和儀器的測(cè)量精度的限制必然會(huì)引進(jìn)誤差。這些誤差會(huì)影響以這些數(shù)據(jù)為基礎(chǔ)的任何計(jì)算解的精度,在數(shù)值分析中一般也不直接討論這種誤差,而是用分析舍入誤差的方法來(lái)分析這些誤差在計(jì)算中的傳播和影響。
1.2 截?cái)嗾`差
截?cái)嗾`差又稱方法誤差,它是指用數(shù)值方法求解某個(gè)數(shù)學(xué)問(wèn)題的逼近誤差,其中包括截取的有限項(xiàng)近似無(wú)窮級(jí)數(shù)所產(chǎn)生的誤差;也包括用容易計(jì)算的化簡(jiǎn)問(wèn)題代替不方便計(jì)算的復(fù)雜問(wèn)題所帶來(lái)的誤差等。
1.3 舍入誤差
舍入誤差又稱計(jì)算誤差,由于機(jī)器字長(zhǎng)的限制使得任一個(gè)實(shí)數(shù)在機(jī)器中要被舍入而被近似的表示成機(jī)器浮點(diǎn)數(shù)而引起的誤差。所以,原始數(shù)據(jù)表示成機(jī)器數(shù)有誤差,而每一次運(yùn)算又可能產(chǎn)生新的誤差。這種舍入誤差在數(shù)值計(jì)算的每一步計(jì)算中都會(huì)產(chǎn)生,并且逐步傳播和擴(kuò)散從而影響計(jì)算解的精度。
在教學(xué)中截?cái)嗾`差都是結(jié)合具體的數(shù)值算法討論的。對(duì)于舍入誤差通過(guò)數(shù)值例子認(rèn)識(shí)到舍入誤差對(duì)計(jì)算結(jié)果的影響很大。如何克服舍入誤差對(duì)計(jì)算結(jié)果的影響卻是數(shù)值計(jì)算中的難題。我們選擇舍入誤差作為數(shù)值分析課外實(shí)踐討論課的選題[2]。
2 數(shù)值計(jì)算中應(yīng)遵循的一些原則
通過(guò)對(duì)誤差的定量分析,我們可以得到數(shù)值計(jì)算中應(yīng)遵循的一些原則[1]。
(1)防止“大數(shù)吃小數(shù)”。
計(jì)算機(jī)中數(shù)的加、減法計(jì)算特點(diǎn)是:先對(duì)階,后運(yùn)算,再舍入。例如在F(10,4,-33,33)的計(jì)算機(jī)上計(jì)算1+104:
1+104=0.1000×101+0.1000×105 =0.00001×105 +0.1000×105(對(duì)階,靠高階)=0.10001×105 =0.1000×105=104。
這是因?yàn)樵谟?jì)算機(jī)內(nèi)計(jì)算時(shí),做加減法運(yùn)算要先對(duì)階后運(yùn)算。因此出現(xiàn)大數(shù)“吃掉”小數(shù),影響計(jì)算結(jié)果的可靠性。為了防止這種情況出現(xiàn),加法的最佳方案是從最小數(shù)到最大數(shù)依次相加。特別當(dāng)參加運(yùn)算數(shù)的數(shù)量級(jí)相差很大時(shí),采取從最小數(shù)到最大數(shù)依次相加的運(yùn)算次序可以防止“大數(shù)吃小數(shù)”的現(xiàn)象。
(2)避免兩相近的數(shù)相減。
由和、差的誤差估計(jì)式
知,兩個(gè)相近的數(shù)相減時(shí),相對(duì)誤差較大。因此數(shù)值計(jì)算中應(yīng)避免兩相近的數(shù)相減,防止嚴(yán)重丟失有效數(shù)字。
(3)避免用絕對(duì)值小的數(shù)作除數(shù)。
由商的誤差估計(jì)式
,當(dāng)絕對(duì)值小的數(shù)作除數(shù)時(shí),會(huì)產(chǎn)生溢出錯(cuò)誤, 因而產(chǎn)生大的誤差。因此數(shù)值計(jì)算中應(yīng)避免用絕對(duì)值小的數(shù)作除數(shù),此時(shí)可以用等價(jià)的數(shù)學(xué)公式轉(zhuǎn)化后再計(jì)算。
(4)合理安排計(jì)算步驟,減少運(yùn)算次數(shù)。
簡(jiǎn)化計(jì)算步驟直接影響計(jì)算的速度和誤差的積累,若能減少運(yùn)算次數(shù),可以減少計(jì)算過(guò)程中的舍入誤差,也可減少用機(jī)的時(shí)間。
(5)減少不準(zhǔn)確的原始數(shù)據(jù)的影響。
實(shí)際工程問(wèn)題的原始數(shù)據(jù)都是具有有限精度的近似數(shù),它的精確程度是通過(guò)保留幾位有效數(shù)字體現(xiàn)出來(lái)的,比如個(gè)有效數(shù)字。但在用原始數(shù)據(jù)作計(jì)算時(shí)不能只取位,這樣計(jì)算中舍入引起的誤差將在第位引入,最終會(huì)使計(jì)算解的精度達(dá)不到原始數(shù)據(jù)的位有效數(shù)字的精度。因此,為了不致使計(jì)算結(jié)果比原始數(shù)據(jù)的精度更壞,就應(yīng)使原始數(shù)據(jù)多保留幾位有效數(shù)字,比如取位,而。這樣計(jì)算中的舍入引起的誤差就會(huì)在第位引入,而不是在位引入了。
3 實(shí)踐討論課的實(shí)施程序
為了讓學(xué)生學(xué)會(huì)運(yùn)用上面這些基本原則去解決實(shí)際問(wèn)題,我們關(guān)于舍入誤差開展了廣泛的討論。首先讓學(xué)生去搜集資料,然后教師對(duì)學(xué)生搜集到的資料進(jìn)行挑選,選擇典型例子開展討論課[3-4]。
3.1 搜集資料階段
開展實(shí)踐討論課首先要根據(jù)主題搜集資料,我們要求每個(gè)學(xué)生結(jié)合自己的專業(yè),利用學(xué)習(xí)到的減少舍入誤差的知識(shí),解決工程應(yīng)用中的問(wèn)題。
3.2 挑選資料階段
結(jié)合學(xué)生所提交作業(yè)進(jìn)行選材,所選題材需條理清晰,能夠從選題背景、解決方法、誤差分析、結(jié)果與討論4個(gè)方面進(jìn)行闡述。此外,選材中注重題材的廣度和深度,盡可能多地覆蓋各個(gè)學(xué)科,內(nèi)容豐富且具有實(shí)際意義,如化工熱力學(xué)中計(jì)算相態(tài)的模型公式,反應(yīng)工程中高溫爐里組分的迭代計(jì)算,石油工程中鉆井方向的控制,物理學(xué)中彈簧抗疲勞拉伸試驗(yàn)等。這些題材不僅能讓學(xué)生學(xué)到知識(shí),并且深刻領(lǐng)悟到“學(xué)以致用“的精髓,也為今后的科學(xué)研究提供思路。下面例舉一些學(xué)生選題題目。
(1)數(shù)據(jù)舍入誤差對(duì)大流量齒輪泵瞬時(shí)流量仿真精度的影響;
(2)壓力恢復(fù)試井中MDH曲線由使用條件引起的誤差分析;
(3)計(jì)算懸點(diǎn)運(yùn)動(dòng)規(guī)律的誤差分析(采油工程);
(4)擬無(wú)矩狀態(tài)結(jié)構(gòu)力學(xué)中的誤差分析;
(5)壓力恢復(fù)誤差分析;
(6)厄沃特什改正中減小誤差的方法;
(7)流體力學(xué)中的誤差分析;
(8)彈簧強(qiáng)度可靠性算法的誤差分析;
(9)克服溫度舍入誤差影響的恒壁溫Nux數(shù)計(jì)算方法。
3.3 討論課階段
為了讓同學(xué)們充分展示自己的成果,同時(shí)激發(fā)更多同學(xué)的學(xué)習(xí)興趣,去發(fā)現(xiàn)、去關(guān)注數(shù)值分析在自己所在領(lǐng)域的應(yīng)用。因此,根據(jù)提交的材料,精心組織學(xué)生進(jìn)行口頭陳述。整個(gè)討論過(guò)程由學(xué)生簽到,PPT講解,現(xiàn)場(chǎng)提問(wèn),老師打分,照相留影5個(gè)部分組成。在討論課中,同學(xué)們展示了扎實(shí)的專業(yè)知識(shí)和活躍的思維,寬廣的知識(shí)面,給大家留下了深刻的印象。下面給出討論課上的一個(gè)實(shí)例:壓力恢復(fù)誤差分析。
井的壓力恢復(fù)過(guò)程,對(duì)于壓力的求解可以利用疊加原理,等效為井A繼續(xù)以原產(chǎn)量Q進(jìn)行生產(chǎn),而另一口虛擬井A以同樣產(chǎn)量,從關(guān)井那刻向井底注入與原平量1Q相同的液體,使壓力上升。
對(duì)于A井,,
對(duì)于A'井,,
則,井底壓力可表示為
當(dāng)時(shí),就出現(xiàn)大數(shù)減小數(shù)的情況,如果不進(jìn)行處理時(shí),大數(shù)就會(huì)吃掉小數(shù),造成誤差,無(wú)法得到精確的井底壓力。同學(xué)們對(duì)線性流、雙線性流、平面徑向流、球面流情形做了充分討論,具體如下。
線性流,
雙線性流
,
平面徑向流,
利用無(wú)窮級(jí)數(shù)
,
,
球面流
,
最后采用分母有理化、利用無(wú)窮級(jí)數(shù)、對(duì)方程式變形的方法來(lái)克服大數(shù)吃小數(shù)。
4 結(jié)語(yǔ)
從上面的整個(gè)教學(xué)過(guò)程看,通過(guò)“自學(xué)研究”、“討論研究”后,學(xué)生的積極性高,主動(dòng)性強(qiáng)。培養(yǎng)了學(xué)生學(xué)會(huì)發(fā)現(xiàn)問(wèn)題,解決問(wèn)題的能力。通過(guò)專業(yè)領(lǐng)域的應(yīng)用問(wèn)題,學(xué)生所獲得知識(shí),不是老師“灌”進(jìn)去的,而是學(xué)生通過(guò)自己動(dòng)腦、動(dòng)手、動(dòng)口主動(dòng)獲得的,老師的作用只在于組織引導(dǎo),質(zhì)疑解答。通過(guò)交流討論使學(xué)生明白了數(shù)值分析在工程各個(gè)領(lǐng)域中的應(yīng)用。活躍了學(xué)生們的學(xué)術(shù)研究氛圍,豐富了工程領(lǐng)域的數(shù)學(xué)方法。學(xué)生們的普遍反應(yīng)是:數(shù)值分析課程難學(xué),內(nèi)容豐富,實(shí)踐性強(qiáng),應(yīng)用廣泛,費(fèi)時(shí)間,費(fèi)力氣。但是學(xué)下來(lái)最有用,是受益終生的數(shù)學(xué)課。數(shù)值分析實(shí)踐討論課達(dá)到了預(yù)期的效果。
參考文獻(xiàn)
[1] 張明.應(yīng)用數(shù)值分析[M].北京:石油工業(yè)出版社,2012.
[2] 王浚嶺.研究型教學(xué)模式探索[J].高等理科教育,2006(2):90-93.
[3] 蔡大用.數(shù)值分析與實(shí)驗(yàn)學(xué)習(xí)指導(dǎo)[M].北京:清華大學(xué)出版社,2001:131-134.
[4] 杜廷松.數(shù)值分析實(shí)驗(yàn)課研究型教學(xué)模式探索[J].高等理科教育,2008(4):105-109.