第七章常微分方程数值解 课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
y?? x2 ? y2
这个一阶微分方程就不能用初等函数及其积 分来表达它的解。
再如,方程
? y?? y
? ?
y
(0 )
?
1
的解 y ? e x ,虽然有表可查,但对于表 上没有给出 e x 的值,仍需插值方法来
计算
从实际问题当中归纳出来的微分方程,通常主要依
靠数值解法来解决。本章主要讨论一阶常微分方程
称为定步长,这时节点可表示为 xi ? x0 ? ih, i ? 1,2,? , n
数值解法需要把连续性的问题加以离散化,从而求
出离散节点的数值解。
对常微分方程数值解法的基本出发点就是离散
化。其数值解法有两个基本特点,它们都采用“步
进式”,即求解过程顺着节点排列的次序一步一步
地向前推进,描述这类算法,要求给出用已知信息
7.2 数值方法的基本思想 对常微分方程初值问题 (7.1)式的数值解法,就
是要算出精确解 y(x)在区间?a,b ?上的一系列离散节 点 a ? x0 ? x1 ? ? ? xn?1 ? xn ? b 处的函数值 y ( x 0 ), y ( x1 ), ? , y ( x n ) 的近似值 y 0 , y 1 , ? , y n 。相邻两个节点的间距 h ? xi?1 ? xi 称为步长,步 长可以相等,也可以不等。本章总是假定 h为定数,
是亚当斯法。
7.3 欧拉(Euler )法 7.3.1 Euler 公式
欧拉(Euler )方法是解初值问题的最 简单的数值方法。初值问题
? y?? f (x, y)
? ?
y(x0
)
?
y0
的解y=y(x)代表通过点 (x0 , y0 ) 的一条称之为 微分方程的积分曲线。积分曲线上每一点
(x, y) 的切线的斜率 y?(x) 等于函数 f (x, y) 在
当 x ? x2 时,得 y2 ? y1 ? f (x1 , y1 )(x2 ? x1 )
P 1?
P1 P0
P ?i+1 P n?
P i?
Pi
P i+1
y=y(x) Pn
x0 x1
xi
x i+1
xn
由此获得了 P2的坐标。重复以上过程 ,就可获得一系
列的点 :P1,P1,…,Pn。对已求得点 Pn (xn , yn )
以 y?(xn ) = f (xn , yn ) 为斜率作直线 y ? yn ? f (xn, yn)(x ? xn)
当 x ? xn?1 时,得 yn?1 ? yn ? f (xn , yn )( xx?1 ? xn )
取 y(xn ) ? yn
P 1?
P1 P0
初值问题
? y?? f (x, y)
? ?
y(x0 )
?
y0
Βιβλιοθήκη Baidu( 7.1 )
在区间a ≤ x ≤ b 上的数值解法 。
可以证明 ,如果函数在带形区域 R=a≤x≤b,
-∞<y<∞}内连续,且关于 y满足李普希兹
(Lipschitz) 条件,即存在常数 L(它与x,y无关)使
f (x, y1 ) ? f (x, y2 ) ? L y1 ? y2 对R内任意两个 y1, y2 都成立 ,则方程 ( 7.1 )的解 y ? y(x) 在?a, b ?上存在且唯一。
Tel: 86613747 E-mail : lsszjtcm 授课: 68 学分:4
第七章 常微分方程的数值解法
7.1 引言 包含自变量、未知函数及未知函数的导数或微
分的方程称为微分方程。在微分方程中 , 自变量的 个数只有一个 , 称为常微分方程 .。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分 方程的阶数。如果未知函数 y及其各阶导数
y ?, y ??, ? , y ( n )
都是一次的 ,则称它是线性的 ,否则称为非线性的。
在高等数学中,对于常微分方程的求解,给出 了一些典型方程求解析解的基本方法,如可分离变 量法、常系数齐次线性方程的解法、常系数非齐次 线性方程的解法等。但能求解的常微分方程仍然是 有限的,大多数的常微分方程是不可能给出解析解。 譬如
xi xi+1 xn
相交于 P 1点(即点 (x1,y1),得到y1作为y(x 1)的近似值 , 如上图所示。过点 (x0,y0),以f(x0,y0)为斜率的切线 方程为
y ? y 0 ? f ( x 0 , y 0 )( x ? x 0 )
当x ? x1时,得
y1 ? y0 ? f (x0 , y0 )( x1 ? x0 )
y i , y i ? 1 , y i ? 2 , ? , y 0 计算 y i ? 1 的递推公式。建立 这类递推公式的基本方法是在这些节点上用数值积
分、数值微分、泰勒展开等离散化方法,对初值问
题
? y?? f (x, y)
? ?
y(x0 )
?
y0
中的导数 y ? 进行不同的离散化处理 。
对于初值问题 ? y ? ? f ( x , y )
? ?
y(x0 )
?
y0
的数值解法,首先要解决的问题就是如何对微分方
程进行离散化,建立求数值解的递推公式。递推公
式通常有两类,一类是计算 yi+1时只用到 xi+1, xi 和yi, 即前一步的值,因此有了初值以后就可以逐步往下
计算,此类方法称为单步法;其代表是龙格 —库塔
法。另一类是计算 yi+1时,除用到 xi+1,xi和yi以外, 还要用到 xi? p, yi? p ( p ? 1,2,?, k) ,即前面 k步的值,此类方法称为多步法;其代表
这点的值。
Euler 法的求解过程是 :从初
始点 P 0(即点 (x 0,y0)) 出发 , 作积分曲线 y=y(x)在P0点上 切线 P0 P1 ( 其斜率为 y?(x0) ? f (x0, y0)), 与x=x1直线
P1? P1
P0
x0 x1
P?i+1Pn? y=y(x)
Pi?
Pn
Pi Pi+1
这样就获得了 P1点的坐标。
P1?
P1 P0
P?i+1 Pn? y=y(x)
Pi?
Pn
Pi Pi+1
x0 x1
xi xi+1 xn
同样, 过点P1(x1,y1),作积分曲线 y=y(x)的切线
交直线 x=x2于P2点,切线 P1P2 的斜率 y?(x1) = f (x1, y1 ) 直线方程为
y ? y1 ? f ( x1 , y1 )( x ? x1 )
这个一阶微分方程就不能用初等函数及其积 分来表达它的解。
再如,方程
? y?? y
? ?
y
(0 )
?
1
的解 y ? e x ,虽然有表可查,但对于表 上没有给出 e x 的值,仍需插值方法来
计算
从实际问题当中归纳出来的微分方程,通常主要依
靠数值解法来解决。本章主要讨论一阶常微分方程
称为定步长,这时节点可表示为 xi ? x0 ? ih, i ? 1,2,? , n
数值解法需要把连续性的问题加以离散化,从而求
出离散节点的数值解。
对常微分方程数值解法的基本出发点就是离散
化。其数值解法有两个基本特点,它们都采用“步
进式”,即求解过程顺着节点排列的次序一步一步
地向前推进,描述这类算法,要求给出用已知信息
7.2 数值方法的基本思想 对常微分方程初值问题 (7.1)式的数值解法,就
是要算出精确解 y(x)在区间?a,b ?上的一系列离散节 点 a ? x0 ? x1 ? ? ? xn?1 ? xn ? b 处的函数值 y ( x 0 ), y ( x1 ), ? , y ( x n ) 的近似值 y 0 , y 1 , ? , y n 。相邻两个节点的间距 h ? xi?1 ? xi 称为步长,步 长可以相等,也可以不等。本章总是假定 h为定数,
是亚当斯法。
7.3 欧拉(Euler )法 7.3.1 Euler 公式
欧拉(Euler )方法是解初值问题的最 简单的数值方法。初值问题
? y?? f (x, y)
? ?
y(x0
)
?
y0
的解y=y(x)代表通过点 (x0 , y0 ) 的一条称之为 微分方程的积分曲线。积分曲线上每一点
(x, y) 的切线的斜率 y?(x) 等于函数 f (x, y) 在
当 x ? x2 时,得 y2 ? y1 ? f (x1 , y1 )(x2 ? x1 )
P 1?
P1 P0
P ?i+1 P n?
P i?
Pi
P i+1
y=y(x) Pn
x0 x1
xi
x i+1
xn
由此获得了 P2的坐标。重复以上过程 ,就可获得一系
列的点 :P1,P1,…,Pn。对已求得点 Pn (xn , yn )
以 y?(xn ) = f (xn , yn ) 为斜率作直线 y ? yn ? f (xn, yn)(x ? xn)
当 x ? xn?1 时,得 yn?1 ? yn ? f (xn , yn )( xx?1 ? xn )
取 y(xn ) ? yn
P 1?
P1 P0
初值问题
? y?? f (x, y)
? ?
y(x0 )
?
y0
Βιβλιοθήκη Baidu( 7.1 )
在区间a ≤ x ≤ b 上的数值解法 。
可以证明 ,如果函数在带形区域 R=a≤x≤b,
-∞<y<∞}内连续,且关于 y满足李普希兹
(Lipschitz) 条件,即存在常数 L(它与x,y无关)使
f (x, y1 ) ? f (x, y2 ) ? L y1 ? y2 对R内任意两个 y1, y2 都成立 ,则方程 ( 7.1 )的解 y ? y(x) 在?a, b ?上存在且唯一。
Tel: 86613747 E-mail : lsszjtcm 授课: 68 学分:4
第七章 常微分方程的数值解法
7.1 引言 包含自变量、未知函数及未知函数的导数或微
分的方程称为微分方程。在微分方程中 , 自变量的 个数只有一个 , 称为常微分方程 .。自变量的个数 为两个或两个以上的微分方程叫偏微分方程。微分 方程中出现的未知函数最高阶导数的阶数称为微分 方程的阶数。如果未知函数 y及其各阶导数
y ?, y ??, ? , y ( n )
都是一次的 ,则称它是线性的 ,否则称为非线性的。
在高等数学中,对于常微分方程的求解,给出 了一些典型方程求解析解的基本方法,如可分离变 量法、常系数齐次线性方程的解法、常系数非齐次 线性方程的解法等。但能求解的常微分方程仍然是 有限的,大多数的常微分方程是不可能给出解析解。 譬如
xi xi+1 xn
相交于 P 1点(即点 (x1,y1),得到y1作为y(x 1)的近似值 , 如上图所示。过点 (x0,y0),以f(x0,y0)为斜率的切线 方程为
y ? y 0 ? f ( x 0 , y 0 )( x ? x 0 )
当x ? x1时,得
y1 ? y0 ? f (x0 , y0 )( x1 ? x0 )
y i , y i ? 1 , y i ? 2 , ? , y 0 计算 y i ? 1 的递推公式。建立 这类递推公式的基本方法是在这些节点上用数值积
分、数值微分、泰勒展开等离散化方法,对初值问
题
? y?? f (x, y)
? ?
y(x0 )
?
y0
中的导数 y ? 进行不同的离散化处理 。
对于初值问题 ? y ? ? f ( x , y )
? ?
y(x0 )
?
y0
的数值解法,首先要解决的问题就是如何对微分方
程进行离散化,建立求数值解的递推公式。递推公
式通常有两类,一类是计算 yi+1时只用到 xi+1, xi 和yi, 即前一步的值,因此有了初值以后就可以逐步往下
计算,此类方法称为单步法;其代表是龙格 —库塔
法。另一类是计算 yi+1时,除用到 xi+1,xi和yi以外, 还要用到 xi? p, yi? p ( p ? 1,2,?, k) ,即前面 k步的值,此类方法称为多步法;其代表
这点的值。
Euler 法的求解过程是 :从初
始点 P 0(即点 (x 0,y0)) 出发 , 作积分曲线 y=y(x)在P0点上 切线 P0 P1 ( 其斜率为 y?(x0) ? f (x0, y0)), 与x=x1直线
P1? P1
P0
x0 x1
P?i+1Pn? y=y(x)
Pi?
Pn
Pi Pi+1
这样就获得了 P1点的坐标。
P1?
P1 P0
P?i+1 Pn? y=y(x)
Pi?
Pn
Pi Pi+1
x0 x1
xi xi+1 xn
同样, 过点P1(x1,y1),作积分曲线 y=y(x)的切线
交直线 x=x2于P2点,切线 P1P2 的斜率 y?(x1) = f (x1, y1 ) 直线方程为
y ? y1 ? f ( x1 , y1 )( x ? x1 )