微分方程数值解法(信息与计算科学专业核心课程)
微分方程的数值解法

法,就产生了不同的有限差分法与不同的有限元法。
其它数学基础: 数理方程、数值代数、最优化理论与方法等
第一部分 常微分方程初值问题的数值解法
自然界与工程技术中的许多现象,其数学表 达式归结为常微分方程定解问题。 一些偏微分方程问题可以转化为常微分方程 问题来(近似)求解。 常微分方程的数值解法为偏微分方程的数值 解法提供了可供借鉴的思路。 常微分方程数值解法主要分为两大部分:
三 线性多步公式建立的基本思想
利用前面多步的信息计算 un k,以获得较 高精度的数值公式。
设 t n t0 nh ,u (t n ) 的近似值为 u n ,并记 f n f (t n , un ),k步线性多步方法一般形式为
0un 1un 1 k un k h( 0 f n 1 f n 1 k f n k )
2 ˆ ˆ ˆ ˆ ˆ1 , x ˆ2 ) 若 4 A( x1 , x2 )C ( x1 , x2 ) B ( x 为椭圆型偏微分方程
二阶偏微分方程的基本分类方法,可以推广到含 有两个以上自变量的非线性高阶偏微分方程。
初值问题的数值方法 边值问题的数值方法
这里只介绍初值问题。
目的:建立一阶常微分方程初值问题的数值解法。 模型
du f (t , u (t )) dt u (t0 ) u0 t0 t T
设初值问题的解析解 (理论解) 用 u (t n ) 表 示,数值解法的精确解用 u n 表示。其中n=1, 2, ,t n t n 1 hn 。 常微分方程初值问题的数值解是求上述初 值问题的解u(t)在点列 t n t n 1 hn 上的近似值 u n (n 0, 1, ) 。 以下设 hn不变,记为h。
微分方程与数值解法

微分方程与数值解法微分方程是描述自然界中各种变化和发展过程的数学工具。
它是数学与物理学、工程学、生物学等学科的重要交叉点。
微分方程的求解对于理解和预测自然现象、设计各种工程和探索新的科学知识都起到至关重要的作用。
然而,有些微分方程的解析解并不容易得到,这时候就需要数值解法来近似求解微分方程了。
1.微分方程的基本概念微分方程根据方程中出现的未知函数的阶数以及出现的导数的最高阶数可以分为常微分方程和偏微分方程两类。
常微分方程只依赖于一个独立变量,而偏微分方程则依赖于多个独立变量。
微分方程的一般形式可以表示为$$F(x,y,y',y'',\ldots,y^{(n)})=0$$其中$x$是独立变量,$y$是未知函数,$y',y'',\ldots,y^{(n)}$是$y$的各阶导数。
2.数值解法的基本思想数值解法的基本思想是将微分方程转化成一个差分方程或者积分方程,从而利用计算机进行近似求解。
数值解法的核心在于离散化,将求解的区间等分为若干个小区间,然后在每个小区间上构造差分或积分公式,通过计算得到近似解。
数值解法有许多种,其中常见的有欧拉方法、改进欧拉方法、龙格-库塔方法等。
3.欧拉方法欧拉方法是最简单的数值解法之一。
它基于微分方程的基本定义,通过在初始点处取切线的斜率来估计下一个点的函数值。
具体步骤如下:(1) 给定初始条件$y(x_0) = y_0$。
(2) 在区间$[x_0, x_n]$上均匀选取若干个节点$x_0, x_1, x_2, \ldots, x_n$,其中$x_n$为所求解的终点。
(3) 根据微分方程的基本定义,用$y'(x) \approx \frac{y(x_{i+1}) -y(x_i)}{h}$近似代替微分方程中的导数部分。
(4) 将近似的导数代入微分方程得到差分方程,进而求解$y_{i+1} = y_i + hf(x_i, y_i)$,其中$f(x_i, y_i)$是微分方程右端的函数表达式。
微分方程数值解法

微分方程数值解法
微分方程是天文学、力学、电磁学等领域很重要的概念,这些领域的研究需要利用到微分
方程的数值解法去求解。
微分方程数值解法是一种将数学模型转换成计算机可以计算的过程,也就是将复杂的问题表达成一组导数和数值,然后利用计算机把这些数值分析和解决
出来。
微分方程数值解法的基本原理是通过二阶多项式的拟合,得出最优的近似解,这种解法是
在一维常微分方程组上应用的,由多个单个微分方程构成,所计算出来的值是多项式函数,这就是微分方程数值解法计算出来的结果。
微分方程数值解法有很多,其中最常用的有有限差分法、有限体积法、有限元法、网格化法、积分中心方法等。
有限差分方法是将问题分解成若干小的结点,然后把微分方程分割
成若干子部分,再做到多次离散估算的过程,最后可以得出拟合函数的解;有限体积方法
是通过将物理风险划分成多个单元,再用均匀的离散步长取点,最后以数值积分法解决微
分方程;有限元方法是利用有限元积分理论,将物理场定义在离散网格中,再利用数学技巧,得出最终的近似解;网格化法是把问题的空间划分成若干小的子空间,再基于某些准则利用焦点或者双精度网格单元,得出空间的分段函数;积分中心方法是把微分方程的方程组再利用积分解析的方法去求解,其中采用了梯形法或者抛物线法等数值积分方法。
最后,无论是那种方法,它们都将在一个规定的步长内对问题做出最有系统、最准确的近
似解,并且它们之间都具有某种交互性,当使用有限元方法可以基于积分中心法得出近似解,而积分中心法又可以基于有限差分方法进行改进,因此在实际领域,结合不同的数值
解法才能更好的满足需求。
微分方程数值求解方法

每一种方法的区别 在于,如何从前一 个点得到下一点。
2. 欧拉法
以如下微分方程为例
yt f t , y t
y t0 y0
已知A0点坐标 t0 , y t0 ,过A0点的切线方程为
y y t0 yt0 t t0 f t0 , y t0 t t0
振动微分方程的数值方法 李 鹤 hli@
1. 数值求解微分方程的基本思想
每一个微分方程对应一条曲线。 微分方程的数值求解,实际上是计算一条未知曲线 的形状:它具有给定的起点并且满足一个给定的微 分方程。 “微分方程”可以看作能够通过曲线上任 意点的位置而计算出这一点的切线斜率的公式。 求解思路是,一开始只知道曲线的起点(假设为 A0),曲线其他部份是未知的,通过微分方程, A0 的斜率可以被计算出来,也就得到了切线。 顺着切线向前走一小步到点。如果我们假设是曲线 上的一点(实际上通常不是),那么同样的道理就 可以确定下一条切线,依此类推。在经过几步之后, 一条折线就被计算出来了。大部分的情况下,这条 折线与原先的未知曲线偏离不远,并且任意小的误 差都可以通过减少步长来得到。
在t1时刻,曲线上点 y t1 可以切线上的点代替,则
y t1 y t0 f t0 , y t0 t1 t0
写成迭代格式
yn1 yn hf tn , yn
t0 t1
3. 龙格库塔法
龙格-库塔法(Runge-Kutta)是用于常微分方程求解的一类重要迭代方 法,由数学家卡尔·龙格和马丁·威尔海姆·库塔于1900年左右发明。对于 如下方程
u 1 u2
2 u u1 2 F cos t 2 nu2 n源自5. 相平面、相轨线(相轨迹)
微分方程数值解法

微分方程数值解法微分方程数值解法微分方程数值解法【1】摘要:本文结合数例详细阐述了最基本的解决常微分方程初值问题的数值法,即Euler方法、改进Euler法,并进行了对比,总结了它们各自的优点和缺点,为我们深入探究微分方程的其他解法打下了坚实的基础。
关键词:常微分方程数值解法 Euler方法改进Euler法1、Euler方法由微分方程的相关概念可知,初值问题的解就是一条过点的积分曲线,并且在该曲线上任一点处的切线斜率等于函数的值。
根据数值解法的基本思想,我们取等距节点,其中h为步长,在点处,以为斜率作直线交直线于点。
如果步长比较小,那么所作直线与曲线的偏差不会太大,所以可用的近似值,即:,再从点出发,以为斜率作直线,作为的近似值,即:重复上述步骤,就能逐步求出准确解在各节点处的近似值。
一般地,若为的近似值,则过点以为斜率的直线为:从而的近似值为:此公式就是Euler公式。
因为Euler方法的思想是用折线近似代替曲线,所以Euler方法又称Euler折线法。
Euler方法是初值问题数值解中最简单的一种方法,由于它的精度不高,当步数增多时,由于误差的积累,用Euler方法作出的折线可能会越来越偏离曲线。
举例说明:解: ,精确解为:1.2 -0.96 -1 0.041.4 -0.84 -0.933 0.9331.6 -0.64 -0.8 0.161.8 -0.36 -0.6 0.242.0 0 -0.333 0.332.2 0.44 0 0.44通过上表可以比较明显地看出误差随着计算在积累。
2、改进Euler法方法构造在常微分方程初值问题 ,对其从到进行定积分得:用梯形公式将右端的定积分进行近似计算得:用和来分别代替和得计算格式:这就是改进的Euler法。
解:解得:由于 ,是线形函数可以从隐式格式中解出问题的精确解是误差0.2 2.421403 2.422222 0.000813 0.021400.4 2.891825 2.893827 0.00200 0.051830.6 3.422119 3.425789 0.00367 0.094112.0 10.38906 10.43878 0.04872 1.1973通过比较上表的第四列与第五列就能非常明显看出改进Euler方法精度比Euler方法精度高。
微分方程的数值解法

微分方程是数学中的一种重要的方程类型,广泛应用于物理、工程、经济等领域。
解微分方程有各种方法,其中数值解法是一种重要而实用的方法。
微分方程的数值解法是通过数值计算来求解微分方程的近似解。
它的基本思想是将微分方程转化为差分方程,并用计算机进行迭代计算,从而求得微分方程的数值解。
数值解法的关键在于如何将微分方程转化为差分方程。
常见的方法有欧拉方法、改进欧拉方法、龙格-库塔方法等。
这些方法都是基于泰勒级数展开的原理进行推导的。
以欧拉方法为例,其基本思路是将微分方程中的导数用差商的方式近似表示,然后通过迭代计算,逐步逼近微分方程的解。
欧拉方法的具体步骤如下:首先确定微分方程的初始条件,即给定t0时刻的函数值y0,然后选取一定的步长ℎ,利用微分方程的导数计算差商y′=dy,进而根据差商dt得到下一个时刻的函数值y n+1=y n+ℎy′。
通过不断迭代计算,即可得到微分方程在一定时间区间内的数值解。
数值解法的另一个重要问题是误差控制。
由于数值计算本身的误差以及近似方法的误差,数值解法所得到的结果通常与真实解存在误差。
为了控制误差,常用的方法有缩小步长ℎ、提高近似方法的阶数等。
此外,还可以通过与解析解进行比较,评估数值解的准确性。
微分方程的数值解法具有以下几点优势。
首先,微分方程的解析解通常较难求得,而数值解法可以给出一个近似解,提供了一种有效的解决方案。
其次,数值解法可以利用计算机的高速运算能力,进行大规模复杂微分方程的求解。
此外,数值解法还可以在实际问题中进行仿真和优化,即通过调整参数来求解微分方程,从而得到最优解。
尽管微分方程的数值解法具有广泛的应用前景,但也存在一些问题和挑战。
首先,数值解法的稳定性和收敛性需要深入研究和分析。
其次,数值解法的计算量通常较大,对计算机运算能力和存储空间的要求较高。
此外,数值解法还需要对问题进行适当的离散化处理,从而可能引入一定的误差。
综上所述,“微分方程的数值解法”是一种重要而实用的方法,可以有效地求解微分方程的近似解。
微分方程数值解法

微分方程数值解法微分方程是数学中的重要概念,它描述了物理系统中变量之间的关系。
解微分方程是许多科学领域中常见的问题,其中又可以分为解析解和数值解两种方法。
本文将重点介绍微分方程的数值解法,并详细讨论其中的常用方法和应用。
一、微分方程的数值解法概述微分方程的解析解往往较为复杂,难以直接求解。
在实际问题中,我们通常利用计算机进行数值计算,以获得方程的数值解。
数值解法的基本思想是将微分方程转化为一组离散的数值问题,通过逼近连续函数来获得数值解。
二、常见的数值解法1. 欧拉法欧拉法是最基础的数值解法之一,其核心思想是将微分方程转化为差分方程,通过逼近连续函数来获得数值解。
欧拉法的基本形式为:yn+1 = yn + h·f(xn, yn)其中,yn表示第n个时间步的数值解,h为时间步长,f为微分方程右端的函数。
欧拉法的精度较低,但计算简单,适用于初步估计或简单系统的求解。
2. 改进的欧拉法(Heun法)改进的欧拉法(Heun法)是对欧拉法的改进,其关键在于求解下一个时间步的近似值时,利用了两个斜率的平均值。
Heun法的基本形式为:yn+1 = yn + (h/2)·(k1 + k2)k1 = f(xn, yn),k2 = f(xn+h, yn+h·k1)Heun法较欧拉法的精度更高,但计算量较大。
3. 龙格-库塔法(RK方法)龙格-库塔法是一类常用的数值解法,包含了多个不同阶数的方法。
其中,最常用的是经典四阶龙格-库塔法(RK4法),其基本形式为:k1 = f(xn, yn)k2 = f(xn + h/2, yn + (h/2)·k1)k3 = f(xn + h/2, yn + (h/2)·k2)k4 = f(xn + h, yn + h·k3)yn+1 = yn + (h/6)·(k1 + 2k2 + 2k3 + k4)RK4法实现较为复杂,但精度较高,适用于解决大多数常微分方程问题。
微分方程的解析与数值解法

微分方程的解析与数值解法微分方程既是数学分析的重要分支,也是许多学科领域的基础。
在实际问题的求解中,我们常常需要寻找微分方程的解析解或者数值解。
本文将围绕微分方程的解析和数值解法展开讨论。
一、微分方程的解析解解析解指的是通过代数计算得到的方程的解。
对于某些简单的微分方程,我们可以通过分离变量、变量代换等方法得到解析解。
下面以一阶线性常微分方程为例,讨论解的求解过程。
考虑一阶线性常微分方程形式如下:$$\frac{dy}{dx} + P(x)y = Q(x)$$其中,$P(x)$和$Q(x)$为已知函数。
我们可以通过以下步骤求解该微分方程:1. 将方程改写为标准形式:$\frac{dy}{dx} + P(x)y - Q(x) = 0$2. 求解齐次线性微分方程:$\frac{dy}{dx} + P(x)y = 0$。
记其解为$y_h$,即$y_h = Ce^{-\int P(x)dx}$,其中$C$为常数。
3. 利用常数变易法,假设原方程的解为$y = u(x)y_h$,其中$u(x)$为待定函数。
4. 将$y = u(x)y_h$代入原方程,得到关于$u(x)$的方程。
5. 求解$u(x)$的方程,得到$u(x)$的表达式。
6. 将$u(x)$代入$y = u(x)y_h$,得到原方程的解析解。
上述过程就是一阶线性常微分方程求解的一般步骤。
对于其他类型的微分方程,也有相应的解析解求解方法。
但并非所有微分方程都存在解析解。
二、微分方程的数值解法对于一些复杂的微分方程,无法找到解析解,此时我们需要借助数值方法求解。
常见的数值解法包括欧拉法、改进的欧拉法、四阶龙格-库塔法等。
1. 欧拉法欧拉法是一种较为简单的数值解法,其基本思想是通过离散化微分方程,将微分方程转化为差分方程。
具体步骤如下:将求解区间$[a, b]$等分成$n$个小段,步长为$h = \frac{b-a}{n}$。
利用微分方程的导数定义,将微分方程转化为差分方程,即$y_{i+1} = y_i + h \cdot f(x_i, y_i)$,其中$f(x, y)$为微分方程右端的函数。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
f (t , u1 ) − f (t , u2 )
≤ L u1 − u2
(1.2)
则(1.1)的解存在且唯一。
不是所有的初值问题(1.1)都有解析解u(t)的。因此, 对于科学和工程目的,有必要用逼近方法求出其近似解, 若要求解有多位有效数字,则需要更多的计算量和复杂的 算法。 逼近方法求解初值问题一般可分为两类: 近似解析方法 级数法和Picard逐步逼近法 数值解法
1.2 Euler法 考虑初值问题(1.1),首先将区间[t0,T]划分为N个 等距小区间,小区间长度
T − t0 h= N
并选取网格点, 点列
ti=ih,i=0,1,…,N(不妨设t0=0)。已知u(0)=u0,则可计算
f (t0 , u (t0 )) = f (t0 , u0 ) = u ′(t0 ) ,
un +1 = un + h f (tn +1 , un +1 ) n = 0, 1, 2, L, N − 1
这就是求解初值问题的隐式Euler公式。
(1.5)
将Euler与隐式Euler公式做算术平均,可得梯形公式: h un +1 = un + [ f (tn , un ) + f (tn +1 , un +1 ) ] 2 (1.6) n = 0, 1, 2, L, N − 1
)
2 2 = un + 0.1× t n + 100un
(
)
由初值 u (0) = u0 = 0,计算得 2 2 u ( 0 .1) ≈ u1 = u0 + 0.1× t0 + 100u0
( ) = 0.0 + 0.1× (0.1 + 100 × 0.0 ) = 0.0010 u(0.3) ≈ u = u + 0.1× ( t + 100u )
[*]
(
)
在实际计算中,通常要求满足如下不等式:
[ [ u nk++ 1] − u nk+]1 < ε 1
此时取 [k +1] 作为 的近似 u(tn +1 ) un+1 做为终止条件, 值 。
un+1
为了避免求解非线性代数方程,可以用Euler法将它显化, 建立预测——校正系统:
un +1 = un + hf (t n , un )
所谓微分方程数值解法,就是研究利用计算机 求解微分方程的近似解的数值方法及相关理论 。 《微分方程数值解法》是“信息与计算科学”专 业的专业基础课程之一,与数值代数、数值逼近和 计算几何统称三大核心课程。
本课程主要研究用计算机求解微分方程问题 的数值计算方法及其理论与软件实现 主要内容包括: 常微分方程初值问题数值解法
o
t1
t2
L
tN
t
利用Taylor公式,在t=tn+1处将u(tn)展开成: 1 u ( tn ) = u ( tn +1 ) − u ′ ( tn +1 ) h + u ′′ (ξ ) h 2 2! 1 − u ′′ (ξ ) h 2 , 用un近似代替u(tn)得: 舍去二次项 2! 一般的计算公式为:
[
如此迭代下去得到迭代序列: [ [] [ [ L L un0+]1 ,un1+1 ,u n2 ]1 , ,u nk+]1 , +
[ [ 若序列 { unk+]1 }k =0收敛于 un*+]1,当
∞
k →∞
时,得到:
[ u n +1 = u n*+]1 为第n+1个近似值。 则取
h [*] un +1 = un + f (tn , un ) + f (tn +1 , un +1 ) 2
数学界的战略科学家吴文俊
吴文俊,1919年出生,早年毕业于上海交通大学 数学系,1949年获法国Strassbourg大学博士学位,1957 年当选中科院学部委员(后改为院士)。现任中国科学 院系统科学研究所名誉所长。1991年当选第三世界科 学院院士。 1991年,吴文俊任国家科委攀登项目“机器证明及其应用”首席科学家。 从1956年到2001年,他曾先后获得国家自然科学一等奖、第三世界科学院 数学奖、陈嘉庚数理科学奖、香港求是科技基金会杰出科学家奖、国际Herbrand 自动推理杰出成就奖、首届国家最高科技奖等。 八十年代,美国计算机科学界的权威曾联名写信给我国中央领导,认为吴先 生的工作是“第一流的”,“独自使中国在该领域走上了世界领导的岗位”。 他所以能取得如此的成就,一个重要的因素是他对中国古代数学的深刻理解。 中国古代数学是构造性的,可计算的,而只有构造性的数学才可能在计算机 上实现。
微分方程包括:常微分方程(ODE)和偏微分方程(PDE)
在科学、技术和工程中的大量数学模型都可以用微分方程 来描述, 很多近代自然科学的基本方程本身是微分方程。 人们一 直用微分方程来解释、预见各种自然现象,不断取得了显著成 绩。遗憾的是,绝大多数微分方程定解问题的解不能以实用的 解析形式来表示。 这就产生了理论和应用的矛盾: 一方面,人们列出了反应客观现象的各类微分方程,建立 了大量实用的数学模型; 一方面,人们又无法得到这些方程的准确解以定量的描述 客观过程。 随着计算机技术的出现和发展,解决上述矛盾的一门科学 ——微分方程的数值解法,得到了前所未有的发展和应用。
从而要用如下迭代公式: 取初值为
un +1 = u n , 反复迭代,即
[0 ]
un +1
3 2 1
0 h 1 2 = un + f (t n , un ) + f (t n +1 , un +1 ) 2
[
] ]
一般的迭代公式表示为:k= 0,1,2,…,
un +1
[k +1]
h [k ] = un + f (t n , un ) + f (tn +1 , un +1 ) 2
线性多步法 有限差分法 单步法
u ′ = f (t , u ) u (t0 ) = u0
Δu = f
∂u ∂ 2u =a 2 + f ∂t ∂x ∂ 2u ∂ 2u = a2 2 ∂t 2 ∂x
偏微分方程数值解法
有限元法
课程的特点:
一、通过对典型、常用的数值方法的研究,进一步了解 构造数值方法的基本思想、技巧; 二、通过掌握数值方法所涉及的基本概念和基本理论(如 稳定性、收敛性、误差估计等),使我们具有一定的理论分析 能力; 三、通过数值实验,运用所学的数值方法求出数值结果, 培养实际解题能力。
⎧ u = f (t , u ), ⎨ ⎩ u (a) = u
'
0
a≤t ≤b
(1.1)a (1.1)b
或与其等价的积分方程
u (t ) = u0 + ∫ f (τ , u (τ ))dτ
a
t
若f(t,u)关于u满足Lipschitz条件,即存在常数L,对任意 t∈[a,b]和u1,u2∈(-∞, ∞)均成立着
授课方式
课堂授课:64学时 课堂授课: 计算实验:24学时 计算实验:
考试方法
总评成绩=平时作业+课堂测验+期末考试成绩 期末试题:涵盖了全书的基本知识点,特点是 期末试题: 题量较大,知识点较多,无偏题和难题。 评分标准:作业成绩(按A\B\C记载)占10%左 评分标准: 右,课堂测验占10%左右,期末考试成绩占80%左右
2
3
= 0.0 + 0.1× (0.0 + 100 × 0.0 ) = 0.0000 u(0.2) ≈ u2= u1 + 0.1× t12 + 100u12
2 2 2 2
(
)
2
= 0.0010 + 0.1× 0.2 2 + 100 × (0.0010 )
(
2
) = 0.0051
Euler法(切线法)的几何解释
主讲教材 微分方程数值解法
(第三 版)
李荣华 冯果忱
编
高等教育出版社
参考书目 (Reference)
科学计算中的偏微分方程有限差分法 张文生 编著(高等教育出版社) 微分方程数值方法 胡建伟 汤怀民 著 (科学出版社)
知识,只有当它靠积极的 思考得来而不是凭记忆得来的 时候,才是真正的知识。 列夫 ⋅ 托尔斯泰
这里u1是u(t1)的近似值,利用u1又可以算出u2,如此下去 可算出u(t)在所有节点上的近似值。 一般的计算公式为:
un +1 = un + h f (tn , un ) n = 0, 1, 2, L, N − 1 (1.4)
这就是求解初值问题的Euler公式。 Euler方法是最简单的数值方法。
tn+1
右端积分项使用右矩形求积公式,则得
∫
tn+1 tn
f (t , u (t ))dt ≈ h f (tn +1 , u (tn +1 ))
则用un替代u(tn)得: un +1 = un + h f (tn +1 , un +1 ) 隐Euler公式,又称右矩形公式。 显然梯形公式与Euler公式相比要精确的多(由于两 种数值积分公式的代数精度不同)。 但是梯形公式的计 算量要大一些。 每步计算要解一个非线性关于un+1方程。
微分方程数值解法
信息与计算科学专业核心课程
数学科学学院
课程基本情况
课 程名称:
微分方程数值解法法 Numerical Solution of Equation