古麗阿亞提·艾熱提 迪力熱巴·買合蘇提江 熱合買提江·依明
摘 要 在一維擴散方程加權隱式差分格式的基礎上,用初始和邊界條件推導確定加權隱式差分方程解的矩陣方程;用MS.Excel的矩陣運算、迭代計算和循環迭代計算功能,確定問題的數值解;巧用MS.Excel的繪制函數圖像功能,實現“數”“形”及“動”的連貫形式,演示數值解的動態模擬仿真;實現交互性,建立不同加權系數確定的數值解和模擬的平臺。結果顯示,MS.Excel的計算結果直觀、快速、準確、靈活,入門容易、簡單,MS.Excel可以作為偏微分方程數值解課程實驗和實踐教學的一種簡單、直觀、高效的輔助工具。
關鍵詞 偏微分方程;MS.Excel;實驗和實踐教學
中圖分類號:G642.423 文獻標識碼:B
文章編號:1671-489X(2017)20-0040-03
Application of MS.Excel on Experimental and Practice Teaching of Numerical Solution to Partial Differential Equation//Gulayat Hayat, Dilara Mahsut, Rahmatjan Imin
Abstract Based on the weighted implicit finite scheme of one-dimen-
sional diffusion equation, use initial and boundary conditions deter-
mined matrix equations of weighted implicit finite scheme. Combined
use matrix function, iterative calculation and iteration function of MS.
Excel to calculate the numerical solution of the problem. Through drawing image and animation visually demonstrated the dynamic solution of problem by using numeric, figure and move coherently. Interactive platform was established to study numerical solution and simulation with different weighted coefficients. The result shows that
numerical results which obtained from MS.Excel are not only intui-tive, fast and accurate, flexible, but also to study easy and simple. So MS.Excel is a simple, intuitive and efficient tools for experimental and
practice teaching of Numerical Solution to Partial Differential Equation.
Key words partial differential equations; MS.Excel; experimental and practice teaching
1 前言
現實生活和實際工程中的很多現象和特性,以偏微分方程來描述。一般這些偏微分方程的形式比較復雜,很難找到解析解,要用數值計算方法離散這些方程才能確定其數值解。
作為信息與計算科學專業的重要專業課,偏微分方程數值解的主要內容之一是有限差分方法,其基本思想是先把問題的定義域進行網格剖分,然后在網格點上,按適當的數值微分公式將微商換成差商,把原問題離散化為差分格式,從而將微分方程問題轉化成為相應的差分方程問題[1]。
課程內容中主要討論不同偏微分方程的各種差分格式的推導及其收斂性和穩定性的分析,教學內容枯燥,學生的學習積極性不高,教學效果不佳,主要原因是理論教學脫離實驗和實踐教學。
隨著我國經濟發展和科學技術水平的不斷提高,在教學環境中計算機已普遍使用,教學改革越來越重視理論與實驗和實踐的結合,越來越重視能解決實際問題的應用型人才的培養。因此,在偏微分方程數值解教學中,講清每一個偏微分方程的實際應用背景的同時,應當加強實驗和實踐性教學環節,這樣在啟發學生的學習興趣、增強教學效果的同時,可以不斷提高學生親自動手,用科學計算的方法解決實際問題的能力。
偏微分方程數值解的實驗和實踐教學是用高級計算機語言編寫程序求解問題的數值解并進行數值模擬[2-3],但掌握編程語言并達到編程水平非短期所能學會。普及性較高、入門容易、操作簡單的應用軟件MS.Excel不僅具有一般的函數運算和圖表處理功能,還有較強的循環迭代計算以及矩陣運算功能。合理正確地組合使用這些功能,可以解決很多問題[4-8]
在一維情況差分格式為顯格式時,用MS.Excel的復制迭代功能可以求解問題[9-10];差分格式為隱格式時出現線性方程組,此時先求解線性方程組,然后確定問題的解,但不能實時動態顯示求解結果。
本文以一維擴散方程用加權隱式差分格式求解問題為例,用MS.Excel的矩陣運算功能直接求解線性方程組,然后用MS.Excel的繪制圖像和循環迭代計算功能結合求解加權隱式差分格式方程,實現實時求解,動態可視化模擬演示和交互性模板。此模板選擇不同加權系數情況下,計算和模擬演示一維擴散問題,說明MS.Excel可以作為偏微分方程數值解實驗和實踐教學的一種簡單、直觀、高效的輔助工具。endprint
2 一維擴散方程加權隱式差分格式的推導
一維擴散方程:
(1)
初始和邊界條件分別為:u(x,0)=g(x),a≤x≤b;u(a,t)=,u(b,t)=φ(t),t≥0。
將區域[a,b]×[0,T]進行剖分,用τ和h分別表示時間t方向和空間x方向的網格步長。其中,h=(b-a)/J,J表示內點的個數;xj=a+jh, j=0,1,...,J;τ=T/N(N為正整數),tn=nτ,n=1,2,...,N;用ujn表示方程(1)中在離散點(xj,tn)處的數值解。
對u(x,t),關于時間t,用向后差分;關于x,用中心差分,得方程(1)的差分格式:
(2)
關于時間t,用向前差分;關于x,同樣用中心差分,得到方程(1)的差分格式改寫成:
(3)
將θ和1-θ(0≤θ≤1)分別乘方程(2)和(3),其結果相加整理得到如下加權隱式差分格式:
其中,λ=τ/(h2),j=0,1,...,M,n=1,2,...,N。
初始條件變為:uj0=g(xj),j=0,1,...,J。邊界條件變為:u1n=,uJn=φ(tn),n=1,2,...,N。
差分格式(4)的穩定性條件為:當0≤θ<0.5時,2αλ
≤1/(1-2θ);當0.5≤θ≤1時,無限制穩定[1]。差分格式(4)及初始和邊界條件結合到一起寫成矩陣形式,變為:
AUn=BVn-1+bn (5)
其中:
這里a1=-αλθ,a2=1+2αλθ,b1=αλ(1-θ),b2=1-2αλ(1-θ)。
3 用MS.Excel實時求解和動態模擬演示
實例 一維擴散問題:
(6)
這個問題的解析解是:
(7)
對問題(6)來說,方程(5)中的bn為零,因此不必計算。
MS.Excel求解方法 下面以上述加權隱式差分格式求解問題為例,介紹用MS.Excel進行數值求解和動態模擬演示的基本方法和步驟。
第一步:迭代計算的調試。打開空的表格,選擇“文件”→“選項”→“公式”,打開迭代計算調試對話框,選擇“啟用迭代計算”,“最多迭代次數”調試為1,確定。
第二步:常數項和相關參數的輸入。如圖1所示,在打開的空表格中分別輸入常數α,求解域區間a、b,計算終止時間T,加權系數θ,x方向的網格步長h,λ和時間步長τ值;當輸入時間步長時,在單元格H2中按差分格式的穩定性條件輸入“=IF(E2<0.5,F2^2/(2*A2)*1/(1-2*E2),
F2^2*G2)”。
第三步:循環迭代計算及計算總次數等的輸入。如圖2所示,在單元格K2中輸入計算J的公式“=(C2-B2)/F2”,
在單元格K2中輸入計算總次數N的公式“=D2/H2”,在單元格M2中輸入循環迭代控制值的語句“=IF(M2 在單元格N2中輸入計算當前時間語句“=2*M2*H2”。 第四步:矩陣A和矩陣B的輸入。用矩陣A的計算公式,在單元格A5中輸入“=1+2*A2*G2*E2”;在單元格B5中輸入“=-A2*G2*E2”;在單元格A6中輸入“=B5”;選擇單元格區域B6:C6輸入“=A5:B5”,同時按住“Shift”和“Ctrl”鍵確認;選擇單元格區域B7:D7輸入“=A6:C6”,同時按住“Shift”和“Ctrl”鍵確認;類次此方法輸入矩陣A的其他元素。同樣的方法用矩陣B的計算公式在單元格區域A16:K26內輸入矩陣B的元素。 第五步:矩陣A逆的計算。選擇單元格區域K5:S13,輸入“=MINVERSE(A5:I13)”,同時按住“Shift”和“Ctrl”鍵確認,就得矩陣A的逆陣。 第六步:初始條件的輸入。如圖3所示,在單元格A27中輸入“=B2”,在單元格A28中輸入“=A27+$F$2”;用鼠標選中單元格A28,按住左鍵,當光標變成小十字時向下拖動至單元格A內,到出現求解區間的左邊界b的值1為止,松開左鍵;在單元格B27中輸入“=SIN(PI()*A27)”,上述同樣的選擇和拖動方法計算每一點的初始條件值。 第七步:輸入邊界條件。如圖3所示,單元格C27、D27、C37和D37中相應的邊界條件或邊界條件的計算公式,本文中全為零。 第八步:輸入第一步和第二步的公式;選擇單元格區域C28:C36輸入計算第一步的公式“=MMULT((K5:S13),MMULT(A16:K24,B27:B37))”,同時按住“Shift”和“Ctrl”鍵確認;選擇單元格區域D28:D36輸入計算第二步的解公式“=MMULT((K5:S13),MMULT(A16:K24,D27:D37))”,同時按住“Shift”和“Ctrl”鍵確認。 第九步:循環迭代計算語句的輸入。再選擇單元格區域C28:C36輸入迭代計算公式“=IF(M2=1,MMULT((K5:S13), MMULT(A16:K24,B27:B37)),MMULT((K5:S13),MMULT(A16:K24, E27:E37)))”,同時按住“Shift”和“Ctrl”鍵確認。 第十步:解析解計算的輸入。用方程(7)在單元格E27中輸入“=SIN(PI()*A27)*EXP(-PI()*PI()*$N$2)”,選擇和拖動方法計算相應時刻的解析解。 第十一步:數值解和解析解比較動態模擬演示。選擇 “插入”→“散點圖”→“帶平滑和數據標志的散點圖”→“添加”,在“系列名稱”內填“數值解”,在“X軸系列值(X)”
內填“=Sheet!$A$27:$A$37”,在“Y軸系列值(Y)”內填
“=Sheet1!$E$27:$E$37”;再選擇“添加”,在“系列名稱”內填“解析解”,在“X軸系列值(X)”內填“=Sheet!$A
$27:$A$37”,在“Y軸系列值(Y)”內填“=Sheet1!$F$27:
$F$37”;按“確定”鍵后對圖形進行修飾,得圖4所示結果。
以上所說操作完成以后,按住功能鍵F9,隨著單元格M2值的循環變化,相應時刻的數值解和解析解變化,從而“數”“形”及“動”連貫的數值解和解析解圖的變化達到動態模擬演示目的。
4 結論
本文利用MS.Excel的函數運算、矩陣運算、迭代循環計算和函數圖像繪制等功能,提出以擴散方程用加權隱式差分格式求數值解為例,用“數”“形”及“動”連貫直觀
的動態模擬顯示的方法。本方法具有很好的交互性,通過改變加權系數,對不同加權數可以進行數值計算和數值模擬,直觀和方便地觀察到不同加權系數對數值解的影響。最重要的是MS.Excel簡單易學,不需要掌握其他軟件和編程語言,能直觀、快速、準確、靈活地解決問題。由于操作的簡單性和直觀性,激發初學者親自動手操作的欲望,更進一步調動學習興趣,從而提高學習效率和使用計算機解決實際問題的能力。總之,MS.Excel作為偏微分方程數值解課程實驗和實踐教學輔助工,具有良好的優越性、簡潔性和推廣性。
參考文獻
[1]陸金浦,關治.偏微分方程數值解法[M].北京:清華大學出版社,2012.
[2]陳善群,廖斌,李海峰.有限差分/無網格方法耦合生成混合算法研究[J].船舶力學,2009,15(9):969-980.
[3]王飛,裴永祥.有限差分方法的MATLAB編程[J].新疆師范大學學報:自然科學版,2003,22(4):22-27.
[4]熱合買提江·依明,阿合買提江·依明江.Excel在單擺運動分析中的應用[J].實驗室研究與探索,2015,34(1):
113-117.
[5]王國勝,李春曉.Excel2010公式與函數辭典[M].北京:中國青年出版社,2012.
[6]袁以美.一階偏微分方程及Excel在工程經濟敏感性分析中的應用[J].廣東水利電力職業技術學院學報,2013,
11(1):70-73.
[7]勞賽夫.Excel軟件在偏微分方程數值求解中的應用[J].河海大學學報:自然科學版,2001,29(5):110-114.
[8]戴衛國,張偉.Excel 軟件在求解偏微分方程數值解中的應用[J].重慶工業高等專科學校學報,2003,18(2):37-39.
[9]Karahan H. Unconditional stable explicit finite difference
technique for the advection–diffusion equation using spread-
sheets[J].Advances in Engineering Software,2007,38(2):80-
86.
[10]Garrido S F, García J A O, Díaz J J G. A new methodology to
teach numerical methods with MS.Excel[J].Journal of Maritime research Jmr, 2012(2):29-32.endprint