数值分析-常微分方程初值问题的解法

合集下载

浅谈常微分方程初值问题数值解法

浅谈常微分方程初值问题数值解法

浅谈常微分方程初值问题数值解法在自然科学、工程技术、甚至社会科学的一些领域中,常常会遇见一阶常微分方程的求解问题:()上述问题,寻求解的具体表达式十分困难,仅对一些特殊形式的才有可能找到解的解析表达式,在大多情况下,初值问题的解不能用初等函数表示出来即使可写出解的解析表达式,但因为这些表达式过于复杂,要计算它在某些点上的函数值也异常困难。

在实际问题中,经常需要的恰是解在某些点上的函数值,因此研究初值问题的数值解法十分必要。

1 常微分方程初值问题的数值解法常微分方程的近似解法大体可分成三大类:一类是图解法和器械法;第二类是解的近似法;第三类是数值解法,即通过离散化的方法直接求出函数在某些点上的近似值,此数值解仅为精确解的近似解。

其基本原理为:一阶常微分方程的初值问题的解是上变量的连续函数,因此求上述问题的数值解,就是在区间上的若干离散点上用离散化的方法将初值问题化成离散变量的相应问题,从而相应问题的解可作为初值问题理论解的近似值。

由常微分方程的理论可知,只要在区域内连续,且关于满足林普希兹条件,则方程的解存在且唯一。

初值问题的数值解法通常采取“步进法”,而“步进法”又可分为“单步法”和“多步法”两类。

(1)单步法。

所谓“单步法”是指在计算时,只用到前一步的有关信息。

其一般形式为:,主要包括下面三种方法:Euler方法,改进的Euler公式-梯形公式和Runge-Kutta法。

(2)线性多步法。

单步法没有用到前几步计算得到的信息,因此为了提高精度,需重新计算多个点处的函数数值,如RK方法,故计算量较大。

线性多步法的基本思想是充分利用前面的已知信息来构造精度高且计算量小的算法来计算。

多步法常用方法是线性多步法,求解公式为:构造的常用方法是Taylor展开和数值积分方法。

常用的线性多步公式有:四阶Adams显式公式:四阶Adams隐式公式:四阶Milne显式公式:三阶Hamming公式:(隐式公式)预测校正系统和预测校正修正法:一般地,同阶的隐式法比显式法精确,而且数值稳定性好,但隐式公式中的求解较难,需要用到迭代法,这就增加了计算量。

第五章 常微分方程初值问题数值解法

第五章 常微分方程初值问题数值解法

则有
yn 1 yn hf ( xn , yn )
( 5.2 ) Euler格式
例5.1 用Euler格式解初值问题
2x y y y y (0) 1
取步长h=0.1.
(0 x 1)
Euler格式的具体形式为
y n 1 y n hf ( x n , y n ) 2 xn yn 0.1( yn ) yn 0.2 xn 1.1 yn yn
计算公式的精度 常以Taylor展开为工具来分析计算公式的精度. 为简化分析,假定yn是准确的,即在 yn y ( xn ) 的前提下估计误差 y ( xn 1 ) yn 1 Euler格式的局部截断误差 由 从而 局部截断误差
f ( xn , yn ) f ( xn , y ( xn )) y '( xn ) y ( xn 1 ) yn 1 y ( xn 1 ) ( yn hf ( xn , yn )) y ( xn 1 ) y ( xn ) hy '( xn )
y ( xn ), y ( xn 1 ), 的近似值 y1 , y2 , , yn , yn 1 ,
相邻两个节点的间距 h xi 1 xi 称为步长,步 长可以相等,也可以不等.本章总是假定h为定数, 称为定步长,这时节点可表示为
xn x0 nh , n 0,1, 2,
由f ( xn 1 , yn 1 ) f ( xn 1 , y ( xn 1 )) f y ( xn 1 , )( yn 1 y ( xn 1 )) f ( xn 1 , y ( xn 1 )) y '( xn 1 )(在xn点Taylor展开) h2 y '( xn ) hy ''( xn ) y '''( xn ) ... 2 3 2 h h 因此yn 1 y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 4 h f y ( xn 1 , )( yn 1 y ( xn 1 )) 2 h2 h3 y ( xn 1 ) y ( xn ) hy '( xn ) y ''( xn ) y '''( xn ) 2 3!

数值分析 第9章 常微分方程初值问题数值解法

数值分析 第9章 常微分方程初值问题数值解法

9 .2 .2 梯形方法/* trapezoid formula */— 显、隐式两种算法的平均 为得到比欧拉法精度高的计算公式, 在等式( 2.4) 右端积分 中若用梯形求积公式近似, 并用yn 代替y ( xn ) , yn+1 代替y ( xn+1 ) ,则得
h yn 1 yn [ f ( xn , yn ) f ( xn 1 , yn 1 )], 2
yn 1 yn f ( xn , yn ), xn 1 xn
即 yn+1 = yn + hf ( xn , yn ) . ( 2 .1)
这就是著名的欧拉( Euler ) 公式.
• 若初值y0 已知, 则依公式( 2.1)可逐步算出
• y1 = y0 + hf ( x0 , y0 ) ,
为了分析迭代过程的收敛性, 将( 2. 7) 式与(2. 8 )式相减, 得
h ( k 1) (k ) yn 1 yn [ f ( x , y ) f ( x , y 1 n 1 n 1 n 1 n 1 )] 2
于是有
| yn 1 y
( k 1) n 1
hL (k ) | | yn 1 yn 1 |, 2
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 |, y1, y2 R,
定理1 设f在区域D={(x,y)|a≤x ≤b,y∈R}上连续, 关于y满足利普希茨条件,则对任意x0 ∈[a,b], y0 ∈R,常微分方程初值问题(1.1)式和(1.2)式当x ∈[a,b]时存在唯一的连续可微解y(x). 定理2 设f在区域D上连续,且关于y满足利 普希茨条件,设初值问题
1 2 1 2 dy x ydy xdx y x c 2 2 dx y y (0) 2 y2 x2 4

第9章 常微分方程初值问题数值解法

第9章 常微分方程初值问题数值解法

oa
b
a f ( x)dx (b a) f (b)
中矩形公式
b
ab
a f ( x)dx (b a) f ( 2 )
计算方法
梯形公式
bx
右矩形公式 中矩形公式 左矩形公式
§ 欧拉方法几何意义
y y y(x)
y0 y1 y2 0 x0 x1 x2
计算方法
x
§ 隐式欧拉方法
➢隐式欧拉法 /* implicit Euler method */
初 值 问 题 的 解 必 存 在 且唯 一 。
计算方法
§9.1 引言
三. 数值解法含义
所谓数值解法, 就是设法将常微分方程离散化, 建 立差分方程, 给出解在一些离散点上的近似值。
微分方程的数值解: 设方程问题的解y(x)的存在区 间是[a,b], 令a= x0< x1<…< xn =b, 其中hk=xk+1-xk, 如是等距节点h=(b-a)/n, h称为步长。
yi1 yi1 2h f ( xi , yi ) i 1, ... , n 1
计算方法
预估-校正法
三. 预估 — 校正法
/* predictor-corrector method */
方法 显式欧拉 隐式欧拉 梯形公式
中点公式
简单
稳定性最好
精度提高
精度低
精度低, 计算量大
计算量大
精度提高, 显式
在x0 x X上的数值解法。
四. 误差估计、收敛性
和稳定性
计算方法
§9.2 简单的数值方法与基本概念
一. 欧拉(Euler)格式
设 节 点 为xi a ih (i 0,1,2 , n) 方 法 一 :Taylor展 开 法

常微分方程初值问题的数值解法

常微分方程初值问题的数值解法

第七章 常微分方程初值问题的数值解法--------学习小结一、本章学习体会通过本章的学习,我了解了常微分方程初值问题的计算方法,对于解决那些很难求解出解析表达式的,甚至有解析表达式但是解不出具体的值的常微分方程非常有用。

在这一章里求解常微分方程的基本思想是将初值问题进行离散化,然后进行迭代求解。

在这里将初值问题离散化的方法有三种,分别是差商代替导数的方法、Taylor 级数法和数值积分法。

常微分方程初值问题的数值解法的分类有显示方法和隐式方法,或者可以分为单步法和多步法。

在这里单步法是指计算第n+1个y 的值时,只用到前一步的值,而多步法则是指计算第n+1个y 的值时,用到了前几步的值。

通过对本章的学习,已经能熟练掌握如何用Taylor 级数法去求解单步法中各方法的公式和截断误差,但是对线性多步法的求解理解不怎么透切,特别是计算过程较复杂的推理。

在本章的学习过程中还遇到不少问题,比如本章知识点多,公式多,在做题时容易混淆,其次对几种R-K 公式的理解不够透彻,处理一个实际问题时,不知道选取哪一种公式,通过课本里面几种方法的计算比较得知其误差并不一样,,这个还需要自己在往后的实际应用中多多实践留意并总结。

二、本章知识梳理常微分方程初值问题的数值解法一般概念步长h ,取节点0,(0,1,...,)n t t nh n M =+=,且M t T ≤,则初值问题000'(,),()y f t y t t Ty t y =≤≤⎧⎨=⎩的数值解法的一般形式是1(,,,...,,)0,(0,1,...,)n n n n k F t y y y h n M k ++==-@显示单步法7.2.1 显示单步法的一般形式1(,,),(0,1,...,1)n n n n y y h t y h n M ϕ+=+=-定理7.2.1 设增量函数(,,)n n t y h ϕ在区域00{(,,)|,||,0}D t y h t t T y h h =≤≤<∞≤≤内对变量y 满足Lipschitz 条件,即存在常数K ,使对D 内任何两点1(,,)t u h 和2(,,)t u h ,不等式1212|(,,)(,,)|||t u h t u h K u u ϕϕ-≤-成立,那么,若单步法的局部截断误差1n R +与1(1)p h p +≥同阶,即11()p n R O h ++=,则单步法的整体截断误差1n ε+与p h 同阶,即1()p n O h ε+=。

数值分析(25) 常微分方程初值问题的

数值分析(25) 常微分方程初值问题的

忽略高阶项,取近似值可得到Euler公式
yn1 yn h f ( xn , yn ) (n 0,1, 2, ... )
数值分析
数值分析
3. 数值积分法区间 将方程y' f ( x, y)在区间 [ xn , xn1 ]上积分
xn1 y'dx xn1 f ( x, y)dx (n 0,1,L )
dy f ( x, y) x [a, b] dx y(a) y0
(9-1)
只要 f (x, y) 在[a, b] R1 上连续,且关于 y 满足 Lipschitz 条
件,即存在与 x, y 无关的常数 L 使 | f (x, y1) f (x, y2) | L | y1 y2 |
x1
记为
y1
过点 (x0 , y0 ) ,以 f (x0 , y0 ) 为切线斜率的 x0 x1
切线方程为 y y0 f (x0 , y0 )(x x0 )
用 y1 y0 f (x0 , y0 )(x1 x0 ) y0 hf (x0 , y0 ) 近似代替 y(x1)
数值分析
数值分析
h f (xn , yn )
y n 1
(n 0, 1, 2L )
数值分析
数值分析
例9-2 用改进的Euler方法解初值问题
y' y x 1
y(0)
1
取 h 0.1 ,计算到 x 0.5 。
解:利用
h yn1 yn 2 ( f (xn , yn ) f (xn1, yn hf (xn , yn ))
解:该问题的精确解为 y( x) y0e x
欧拉公式为 yn1 yn h yn (1 h) yn yn (1 h)n y0

常微分方程初值问题的数值解法

常微分方程初值问题的数值解法

常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。

怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。

•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。

•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。

注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。

数值分析李庆扬第9章常微分方程初值问题数值解法讲义.

数值分析李庆扬第9章常微分方程初值问题数值解法讲义.
得到离散点:x0 , x1 , , xn , ;
② 由 x0 , y0 f x0 , y0 切线 P0P1 ,
切线与 x x1 交点 P1 : y1 的近似值 ;
③ 再由 x1 , y1 向前推进到 P2 , 得到折线 P0P1 Pn ,近似 y yx 。
7
2021年5月4日
《数值分析》 黄龙主讲
h
yxn
yxn1
yn1 yn f
h
xn1 , yn1
yn1 yn h f xn1 , yn1
——后退的欧拉公式(隐式)
注意:① 显式计算方便,隐式稳定性较好;
② 上式隐含 yn1 ? ,采用迭代法求解。
12
2021年5月4日
《数值分析》 黄龙主讲来自欧拉公式的另一种理解:
将常微分方程 y f x, y 改写 dy f t , ytdt
“步进式”:顺着节点排列顺序,一步一步地向前推进。
步长:常用等步长 hn xn1 xn ,节点为 xn x0 nh 单步法:计算 yn1 时,只用到前一点的值 yn k 步法:计算 yn1 时,用到前面 k 点的值 yn , yn1 , , ynk1
5
2021年5月4日
《数值分析》 黄龙主讲
对微分方程从 xn 到 xn1 积分
y xn1 yxn
xn1 f t , yt dt
xn
由积分左矩形公式得
xn1 xn
f
t ,
yt dt
hf
xn ,
yxn
例如:
lim
h0
yxn1
h
yxn
yxn
yxn1
h
yxn
yxn
f xn , yxn
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
这里 x , x0 都可以是任意一点。
Taylor级数复习
y y( x)
x x0
则:
1 1 2 ( n ) n y ( x )( = y x )( + y x ) ( x x ) + y ( x ) ( x x ) + + y ( x ) ( x x ) + 0 0 0 0 0 0 0 2 ! n !
2 n h h ( n ) y ( x ) y ( x + h ) y ( x ) h y ( x ) y ( x ) y ( x ) i + 1 i i i i i 2 ! n !
2 n h ( h ) ( n ) y () x y ( x h ) y ( x ) h y ( x ) y ( x ) y ( x ) i 1 i i i i i 2 ! n !
x x i 0 , ... , n 1 ) 通常取节点间距 h 为步长,通常采用等 i i 1 i(求解,应用广泛,具
有应用价值。
Taylor级数复习
( x) 函数 y y 在
x 点作 x 0 Taylor级数展开:
1 2 yx ( )=yx ( 0) + y ( x ) ( x -x ) + y ( x ) ( x -x ) 0 0 0 0 2 ! 1 (n n + + y )( x ) ( x -x ) 0 0 + n !
2 n h h ( n + 1 ) y ( x ) y ( x h ) y ( x ) h y ( x ) y ( x ) y ( x ) i + 1 i i i i i 2 ! n !
2 n h ( h ) ( n + 1 ) y () x y ( x h ) y ( x ) h y ( x ) y ( x ) y ( x ) i 1 i i i i i 2 ! n !

y y hf ( x , y ) n 1 n n 1 n 1
是隐格式,要迭代求解
y n 1 y n 1
( k 1 ) ( 0 )
y hf ( x ,y n n 1 n 1 )
( k )
可以由向前差商公式求出
3、中心差商公式
y ( x ) y ( x ) h n 1 n 1 y ' ( x ) y ' ' ( ) n 1 n h 2 y y hf ( x , y ) n 1 n 1 n 1 n 1
计算方法
第六章 常微分方程初值 问题的数值解法
计算方法课程组
华中科技大学数学与统计学院
§6 常微分方程数值解法 §6.1 基本离散方法
§6.2 Runge-Kutta方法 §6.3 线性多步法
§6.4 收敛性与稳定性
§6.1 基本离散方法
考虑一阶常微分方程的初值问题 :
dy f (x , y) dx (a ) y 0 y x [a ,b ]
例如:
=x+y , x [01 ,] y (0 )1 y
x
其解析解为: y x 1 2 e
但是, 只有一些特殊类型的微分方程问题能够得到用解析 表达式表示的函数解,而大量的微分方程问题很难得到其解 析解。 因此,只能依赖于数值方法去获得微分方程的数值解。
y =e , x [0,1] 例如: y(0) 1
-x2
其解析解为:
y 1 e d t x [, 0 1 ]
t2 0
x
很难得到其解析解
例如:
=x+y , x [01 ,] y (0 )1 y
其解析解为
y x 1 2 ex
只有一些特殊类型的微分方程问题能够得到用解析表达式
表示的函数解,而大量的微分方程问题很难得到其解析解。 因此,只能依赖于数值方法去获得微分方程的数值解。 要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值 y y ( x ) ( i 1 , ... , n ) i i
6.1.2 Euler公式 利用等距分割,数值微分来代替导数项,建立差分格式。 b- a xi = i 称为局部截断误差。 m 1、向前差商公式
y ( x ) y ( x ) h n 1 n y ' ( x ) y ' ' ( ) n n h 2 y ( x ) y ( x ) h n 1 n f ( x , y ( x )) y ' ' ( ) n n n h 2 2 h y ( x ) y ( x ) hf ( x , y ( x )) y ' ' ( ) n 1 n n n n 2 所以,可以构造差分方程
显然,这个误差在 逐步计算过程中会 传播,积累。因此 还要估计这种积累
y y hf ( x , y ) n 1 n n n
定义: 在假设 yi = y(xi),即第 i 步计算是精确的前提下,考 虑的截断误差 Ri = y(xi+1) yi+1 称为局部截断误差。 定义: 若某算法的局部截断误差为O(hp+1),则称该算法有p 阶精度。 收敛性: 考察局部误差的传播和积累
2 h y ( x ) y ( x ) hf ( x , y ( x )) y ' ' ( ) n 1 n n n n 2 y y hf ( x , y ) n 1 n n n
2、向后差商公式
y ( x ) y ( x ) h n 1 n y ' ( x ) y ' ' ( ) n 1 n h 2 y ( x ) y ( x ) h n 1 n f ( x , y ( x )) y ' ' ( ) n 1 n 1 n h 2 2 h y ( x ) y ( x ) hf ( x , y ( x )) y ' ' ( ) n 1 n n 1 n 1 n 2
相关文档
最新文档