有限差分方法的教学创新与应用实践
Teaching Innovation and Application Practice of Finite Difference Method
摘要: 在计算科学与工程领域中,微分方程数值解具有重要的理论性与应用性。本文以信息与计算科学专业所学微分方程数值解课程中有限差分方法的教学为例,探讨教学创新,并从不同角度推导五点差分格式,同时使用Matlab工具进行应用实践。本文坚持以学生为中心,通过教学创新及应用实践的有限差分方法教学模式,为学生搭建理论与实践的纽带,激发学生的学习兴趣,增强学生解决问题的实践能力。
Abstract: In the fields of computational science and engineering, numerical solution of differential equations has strong theoretical and practical significance. In this paper, we take the teaching of the finite difference method in the Numerical Solution of Differential Equations in the Information and Computing Science major as an example, explore the teaching innovation, derive five-point difference scheme from different senses and give the application practice using Matlab. This paper insists on taking students as the center to explore the teaching innovation and application practice for teaching model of finite difference method, and to build a link between the theory and practice for students, enhance students’ enthusiasm, and cultivate their ability to solve practical problems.
文章引用:和晓晓. 有限差分方法的教学创新与应用实践[J]. 创新教育研究, 2025, 13(6): 412-419. https://doi.org/10.12677/ces.2025.136457

1. 引言

科学计算的兴起是20世纪最重要的科学进步之一。在国民经济与国防建设的许多重要领域,计算已经成为不可或缺的重要手段,而微分方程数值解是计算科学的重要组成部分。现代科学与工程计算等领域都涉及微分方程模型,如石油地质勘探、天气预报、航天航空、水利水电、建筑桥梁、生物医学等[1] [2]。然而,在一般情况下,绝大多数的微分方程特别是偏微分方程无法给出解析解,必须借助科学计算求解该类方程的数值解。

微分方程数值解是信息与计算科学本科专业的一门专业基础课,其主要内容包括常微分方程数值方法、有限差分方法及有限元方法。它与数学分析、高等代数、数值代数、数学物理方程等课程紧密相关,数学理论抽象复杂,传统的以理论为主的授课模式使学生产生畏难心理,学习效果不佳[3]。此外,除了基本的数学理论知识外,学生还需要有扎实的程序设计编程能力(比如Matlab、Python)来完成对应的数值算法上机实践。但是实践课程较少,且学生缺乏对工程实际的了解,影响了最终的微分方程数值解课程的教学效果。

本文,我们将以微分方程数值解课程中的有限差分方法为例,来详细阐述差分方法的数学理论知识的教学创新过程及对应的项目实践过程。首先,本文基于带Dirichlet边值条件的Poisson方程推导其五点差分数值格式;其次,本文提出讲授有限差分法所进行的教学创新方法;最后通过Matlab进行数值模拟,对结果进行讨论分析,构建理论知识与应用实践的桥梁,夯实学生的基础,提升学生学习的积极性。

2. Poisson方程的有限差分方法

考虑带Dirichlet边值条件的Poisson方程[4]

{ Δu=f( x,y ),( x,y )Ω, u=φ( x,y ),( x,y )Ω, (1)

其中, Ω xy 平面上一矩形区域,即 Ω=( a,b )×( c,d ) f( x,y ) φ( x,y ) 都是连续函数。

x 轴和 y 轴分别作 N x N y 等分,则 x 轴和 y 轴的步长分别为 h 1 = ba N x h 2 = dc N y ,则 h= h 1 2 + h 2 2 。作两族与坐标轴平行的直线,两族直线的交点称为网格节点,记为 ( x i , y j ) 0i N x 0j N y ,其中 x i =a+i h 1 y j =c+j h 2

2.1. 直接差分法[5]

回顾一维空间中 d 2 u d x 2 的差分格式推导,假设函数 u( x ) 充分光滑及步长固定为 h 时,让 u( x i1 ) u( x i+1 ) 分别在节点 x i 处泰勒展开,从而得到:

u( x i1 )2u( x i )+u( x i+1 ) h 2 = [ d 2 u( x ) d x 2 ] x= x i + h 2 12 [ d 4 u( x ) d x 4 ] x= x i +O( h 3 ).

进一步推广至二维空间中,分别沿 x y 方向(见图1),利用泰勒展式得:

u( x i1 , y j )2u( x i , y j )+u( x i+1 , y j ) h 1 2 + u( x i , y j1 )2u( x i , y j )+u( x i , y j+1 ) h 2 2 = 2 u( x i , y j ) x 2 + h 1 2 12 4 u( x i , y j ) x 4 +O( h 1 3 )+ 2 u( x i , y j ) y 2 + h 2 2 12 4 u( x i , y j ) y 4 +O( h 2 3 ),

结合微分方程(1),在上式中略去小量,并用 u i,j 代替 u( x i , y j ) ,从而得到如下的五点差分格式:

{ Δ h u i,j =f( x i , y j ),( x i , y j )Ω, u i,j =φ( x i , y j ),( x i , y j )Ω, (2)

其中, Δ h u i,j = u i1,j 2 u i,j + u i+1,j h 1 2 + u i,j1 2 u i,j + u i,j+1 h 2 2 ,局部截断误差为: R i,j = h 1 2 12 4 u( x i , y j ) x 4 h 2 2 12 4 u( x i , y j ) y 4 +O( h 3 )=O( h 2 )

Figure 1. Schematic diagram of the node ( x i , y j ) and its four neighboring nodes

1. 节点 ( x i , y j ) 及其四个相邻节点示意图

2.2. 有限体积法推导差分法[5]

首先,我们需要对原始网格剖分作对偶剖分,作两族平行于坐标轴的直线 x i+1/2 y j+1/2 0i N x 1 0j N y 1 ,两族直线交点为对偶剖分的网格节点。其中 x i+1/2 =a+( i+ 1 2 ) h 1 y j+1/2 =c+( j+ 1 2 ) h 2

对Poisson方程在 V i,j (见图2)区域积分,并应用格林公式得:

V i,j u n ds = V i,j fdxdy , (3)

其中, u n 表示 u 沿矩形 V i,j 的外法向导数。用中点矩形公式逼近四个边的线积分,结合中心差商逼近外法向导数,则有

V i,j u n ds u i,j1 u i,j h 2 h 1 + u i+1,j u i,j h 1 h 2 + u i,j+1 u i,j h 2 h 1 + u i1,j u i,j h 1 h 2 .

Figure 2. Schematic diagram of dual subdivision and control volume V i,j

2. 对偶剖分示意图及控制体积 V i,j

将上式代入(3),并除以 h 1 h 2 ,得到如下五点差分格式:

{ Δ h u i,j = 1 h 1 h 2 V i,j fdxdy ,( x i , y j )Ω, u i,j =φ( x i , y j ),( x i , y j )Ω, (4)

若右端项 1 h 1 h 2 V i,j fdxdy f( x i , y j ) ,则(4)与(2)一致。

2.3. 差分格式的稳定性、收敛性

稳定性:差分格式(2)或(4)关于边界值和右端函数是稳定的。

证明:假设在应用五点差分格式(2)及(4)时,右端函数 f( x i , y j ) 有误差 f i,j ,计算边界值 φ( x i , y j ) 有误差 φ i,j 。设 { v i,j ,( i,j ) Ω ¯ } 为差分格式

{ Δ h v i,j =f( x i , y j )+ f i,j ,( x i , y j )Ω, v i,j =φ( x i , y j )+ φ i,j ,( x i , y j )Ω, (5)

的解。

ς i,j = v i,j u i,j 。将(5)与(2)(或(4))相减,得

{ Δ h ς i,j = f i,j ,( x i , y j )Ω, ς i,j = φ i,j ,( x i , y j )Ω, (6)

应用极值原理,可得

max ( i,j )Ω | ς i,j | max ( i,j )Ω | φ i,j |+ 1 16 ( L 1 2 + L 2 2 ) max ( i,j )Ω | f i,j | (7)

其中, L 1 =ba, L 2 =dc 。由(7)知,当 max ( i,j )Ω | φ i,j | max ( i,j )Ω | f i,j | 为小量时, max ( i,j )Ω | ς i,j | 也为小量。所以,差分格式是稳定的。

收敛性:设 { u( x,y ),( x,y ) Ω ¯ } 为(1)的解, { v i,j ,( i,j ) Ω ¯ } 为差分格式(2)(或(4))的解,则有

max ( i,j )Ω | u( x i , y j ) u i,j |C h 2 .

证明:令 e i,j =u( x i , y j ) u i,j ,( i,j ) Ω ¯ 。由2.1知

{ Δ h e i,j = R i,j ,( x i , y j )Ω, e i,j =0,( x i , y j )Ω, (8)

由2.1中 R i,j 的定义及极值原理,得

max ( i,j )Ω | e i,j | 1 16 ( L 1 2 + L 2 2 ) max ( i,j )Ω | R i,j |C h 2 ,

其中, C= 1 192 M( L 1 2 + L 2 2 )+O( h ) M=max{ max ( x,y ) Ω ¯ 4 u( x,y ) x 4 , max ( x,y ) Ω ¯ 4 u( x,y ) y 4 } L 1 =ba L 2 =dc

2.4. 两种方式推导差分格式的优缺点

直接差分法通过泰勒展式构造得出差分格式,精度可控;适用于规则网格和简单几何形状的问题;但是对于复杂几何形状及非规则区域,网格生成困难,边界条件处理较繁琐。

有限体积法推导差分格式,其对每个控制体积进行积分并离散,满足守恒原理;且能处理复杂几何形状和不规则区域;但是构造高精度格式较为困难。

3. 有限差分方法的教学创新

针对学生以往在微分方程数值解课程的学习效果不佳问题,本文提出“以学生为中心,以教师为主导”的教学理念,以有限差分方法为案例进行分析,通过教师引导、启发学习兴趣促进学生自主学习。

1) 将实际问题与课程相结合:实际问题与生活各个领域密切相关,通过将实际问题引入微分方程数值解课程中,能让学生更直观地感受知识的实用性,激发学生对知识探索的欲望。

在微分方程数值解课程的绪论中,通过引入实际问题,从数学建模角度引导学生建立微分方程模型,如通过马尔萨斯人口模型、传染病问题模型推导出常微分方程;通过波动方程–弦振动问题、热传导方程推导出偏微分方程[6];帮助学生更好地理解微分方程的背景,进一步阐明微分方程数值解的重要性。

2) 将所学课程与已学课程融合:微分方程数值解课程与之前学生所学的数学分析、高等代数等课程密切相关,将它们相融合,可以使学生更加清晰地看到数学知识之间的内在联系,完善自己的数学知识体系,也能从不同角度更加全面地理解所学知识。

在有限差分数值格式的推导过程中,直接差分法借助于数学分析中的泰勒展式,利用有限体积法推导差分法借助于数学分析中的格林公式;差分格式的数值求解归结为求解代数方程组,此与高等代数及数值代数密切相关。教师通过鼓励学生将新旧知识相融合,重构自己的知识储备,将基础知识逐步应用于实践。

3) 引导学生进行创新精神与多元思维:微分方程数值解中所涉及的微分方程问题往往复杂多样,拥有创新精神和多元思维可以让学生灵活应用所学方法,并从不同角度思考,开创新策略应对挑战。

差分格式的推导可以从直接差分法得到,也可以通过有限体积法推导得出,即不同的角度下可以得到一致的结果。在教学中,教师应当鼓励学生在解决具体问题中要尝试多种方法,从不同角度出发思考问题,培养创新精神和多元思维能力。

4) 培养学生的辩证思维:微分方程数值解中所涉及的方法多种多样,辩证思维有助于学生从不同角度理解这些方法的原理、优缺点及适用条件。同时,学生具备批评思维可以使得他们不仅仅满足得到一个数值结果,而是学会结合理论分析质疑结果的正确性及可靠性,更好地培养学生严谨的科学态度。

差分格式的推导通过从局部点出发,从而给出整体的数值格式,这里体现了“局部与整体的关系”;差分格式中如果网格剖分越密,则计算效果越好,即数值近似解越逼近精确解,这里体现了“近似与精确的关系”;差分格式的稳定性及收敛性分析能够辩证地引导学生深入思考误差的来源、传播及影响,通过辩证分析使学生对数值解的精度及可靠性有更深刻的理解。在教学中,教师应当引导并激发学生理解这里所体现出的辩证唯物主义观点,培养学生的辩证思维能力。

5) 激发学生的家国情怀与使命担当:微分方程数值解在解决实际问题中发挥着重要的作用,如在天气预报、桥梁设计、金融风险预测等方面的应用,甚至在国家重大战略需求中有着巨大应用,如航空航天、国防、能源等领域,将这门课程与个人目标与具体社会需求、国家发展紧密相连,使学生树立远大理想,培养爱国情怀和社会责任感。

有限差分方法在航空航天中的气动分析、湍流模拟等有重要应用。教师在教学中鼓励学生学习好专业知识,并将所学知识应用于国家重大需求,激发学生的家国情怀和使命担当,为国家科技进步贡献力量。

4. 有限差分方法的应用实践——基于Matlab的数值模拟

4.1. 算例实现

应用五点差分格式计算如下问题: { Δu=( π 2 y 2 2 )sin( πx ),0<x<1,0<y<2 u( 0,y )=0,u( 1,y )=0,0y2 u( x,0 )=0,u( x,2 )=4sin( πx ),0<x<1

该问题的精确解为 u( x,y )= y 2 sin( πx )

Table 1. Exact solutions at some nodes of the example and numerical solutions for different mesh sizes

1. 算例部分节点处的精确解和不同网格大小下的数值解

( N x , N y )

节点 ( x,y )

( 1 4 , 1 2 )

( 1 4 ,1 )

( 1 4 , 3 2 )

( 1 2 , 1 2 )

( 1 2 ,1 )

( 8,16 )

1.8020× 10 1

7.1633× 10 1

1.6053

2.5484× 10 1

1.0130

( 16,32 )

1.7763× 10 1

7.0941× 10 1

1.5946

2.5120× 10 1

1.0033

( 32,64 )

1.7699× 10 1

7.0768× 10 1

1.5919

2.5030× 10 1

1.0008

( 64,128 )

1.7683× 10 1

7.0725× 10 1

1.5912

2.5008× 10 1

1.0002

精确解

1.7678× 10 1

7.0711× 10 1

1.5910

2.5000× 10 1

1.0000

Table 2. Absolute value of the numerical solution error at some nodes of example taking different grid sizes

2. 算例取不同网格大小下部分节点处数值解误差的绝对值

( N x , N y )

节点 ( x,y )

( 1 4 , 1 2 )

( 1 4 ,1 )

( 1 4 , 3 2 )

( 1 2 , 1 2 )

( 1 2 ,1 )

( 8,16 )

3.4200× 10 3

9.2250× 10 3

1.4302× 10 2

4.8366× 10 3

1.3046× 10 2

( 16,32 )

1.9588× 10 4

4.6091× 10 4

8.1707× 10 4

3.6194× 10 4

8.5166× 10 4

( 32,64 )

1.1773× 10 5

2.4941× 10 5

4.0411× 10 5

2.3093× 10 5

4.8923× 10 5

( 64,128 )

7.2689× 10 7

1.4785× 10 6

2.2748× 10 6

1.4468× 10 6

2.9427× 10 6

Table 3. Maximum error and order of convergence of the numerical solution of the example for different grid sizes

3. 算例在不同网格大小下数值解的最大误差及收敛阶

( N x , N y )

max| u( x i , y j ) u i,j |

收敛阶

( 8,16 )

2.0226× 10 2

( 16,32 )

5.0708× 10 3

1.9959

( 32,64 )

1.2705× 10 3

1.9968

( 64,128 )

3.1767× 10 4

1.9998

表1给出了5个节点处的精确解及不同网格大小下所得的数值解。表1表明,随着网格剖分越来越密,节点处的数值解越来越逼近精确解。表2给出了这些节点处取不同网格大小时所得数值解和精确解差的绝对值 | u( x i , y j ) u i,j | 表2表明,随着网格剖分越来越密,节点处的数值解与精确解差的绝对值越来越小。表3给出了取不同网格大小时所得数值解的最大误差 max| u( x i , y j ) u i,j | 及收敛阶。表3表明,步长缩小为原来的1/2时,最大误差约缩小为原来的1/4,最大误差的收敛阶约为2,与2.3节收敛性结果相吻合。图3给出了网格剖分为 ( N x , N y )=( 64,128 ) 时所得的精确解曲面、数值解曲面及误差曲面。

4.2. 教学案例及教学效果

首先,从二维热传导方程的数学建模出发建立温度所满足的偏微分方程,其解给出任意时刻物体内的温度分布,当方程在稳态及有外热源时即得到Poisson方程,此过程从实际物理背景出发建立本文所涉及的Poisson方程,体现教学创新中的(1)。类似于4.1算例,在教学中我们设置了4个不同的Poisson方程算例。要求学生分别利用泰勒展式和有限体积法两种方式推导五点差分格式,给出局部点的差分格式;

Figure 3. Exact solution surface (left), numerical solution surface (center) and error surface (right) of example under mesh dissection ( N x , N y )=( 64,128 )

3. 算例在网格剖分 ( N x , N y )=( 64,128 ) 下精确解曲面(左)、数值解曲面(中)及误差曲面(右)

再结合边值条件给出整体的离散格式,观察数值解是求解迭代格式还是代数方程组的求解。在此过程中更好地理解数学分析中的泰勒展式及格林公式、高等代数中的代数方程组等知识,局部节点与整体节点的联系,体现教学创新中的(2)~(4)。最后,结合第2部分中的稳定性及收敛性理论分析,要求学生以大作业报告结合现场代码演示的方式进行分组汇报,分析不同网格大小剖分下,数值解、精确解及数值解误差的表现。观察当网格剖分越来越小,计算量是否增加,数值解是否越来越逼近精确解,数值解误差是否越来越小。每组学生采用不同的代数方程组求解算法,或者用不同的有效数字表示,结果可能不完全相同,是否能够判断所求结果的正确性与可靠性;此过程体现教学创新中的(4)。

通过本文所提的教学创新与应用实践相结合的教学模式,学生们能更好地从实际物理背景出发掌握有限差分法的理论知识,上机实践能力也得到明显的提升,对有限差分法在不同网格大小下数值解、精确解及数值解误差多方面讨论分析,能够有效判断结果的正确性及可靠性,并从实验结果验证差分法的收敛精度。通过多角度分析使学生对微分方程数值解课程充满兴趣和自信,并对进一步学习或从事相关工作研究充满期待,此过程体现教学创新中的(5)。

参考文献

[1] 黄建国. 偏微分方程数值解[M]. 北京: 北京大学出版社, 2023.
[2] 孙志忠. 偏微分方程数值解法[M]. 第3版. 北京: 科学出版社, 2022.
[3] 王振海, 杨自豪, 聂玉峰. 偏微分方程数值解课程的多层次递进式教学模式构建与分析[J]. 高等数学研究, 2024, 27(1): 76-80.
[4] 高娅莉. 泊松方程的有限差分思想启发式教学研究[J]. 高等数学研究, 2024, 27(4): 56-60.
[5] 李荣华, 刘播. 微分方程数值解法[M]. 第4版. 北京: 高等教育出版社, 2020.
[6] 顾樵. 数学物理方法[M]. 北京: 科学出版社, 2012.