数值分析Euler方法
高等数值分析作用欧拉法与阿达姆斯法

求解常微分方程初值问题的方法分为单步法和多步法,单步法主要有欧拉法和Runge- Kutta 法,多步法主要有Adams 法和Milne 法,本文仅以最常用的Runge- Kutta 法和Adams 法分别作为单步法和多步法的例子,对两种方法进行分析比较。
Euler 法是最简单的一种求解常微分方程初值问题的数值方法,但其局部截断误差仅为,是一阶方法,为了达到更高的精度,我们构造了RK 法.通过构造高阶单步法来提高精度,而较高的精度意味着计算结果更加精确,误差随着的减小迅速减小,考虑常微分方程:常用的多步法主要有Adams 法和Milne 法,本文仅以Adams 法为例介绍多步法,其中Adams 法又包括显式Adams 法和隐式Adams 法。
显式Adams 法:Adams- Bashforth 公式:公式(2.7)又称为Adams 外插公式[2]。
为方便计算,改用函数值表示后差:因(2.7)或(2.8)是显式公式,所以又称它们为显式Adams 公式, 易见显式Adams 公式(2.7)或(2.8)是线性步公式。
常用的四阶显式Adams 公式为[2]隐式Adams 法称(2.10)为Adams-Moulton 公式.所用的牛顿向后插值多项式基点为,而积分区间为,故上式又称为Adams 内插公式,该式为隐式公式,故又称为隐式Adams 公式。
这是一个关于的隐式方程,在计算中,需要将式(2.12)写成显式格式,但一些方程难以求出其显式格式,这就需要将四阶显式Adams 法和四阶隐式Adams 法结合起来,用显式公式(2.9)作为预测,然后用隐式公式(2.12)作校正,构造Adams预测- 校正公式[2]式(2.13)为四阶公式,式中的初始值除y0 已给定,y1,y2,y3 常用四阶RK法计算.四级RK 法每前进一步需要计算四个函数值,对N级RK法,每计算一步,函数f 需要计算N次。
因此,对给定的N,我们总是希望构造阶数最高的方法,记是N级RK法所能达到的最高的阶数,已经得到下面的结果[4]:由此可见,当时,,从而四级四阶RK法是较受欢迎的方法。
显示euler法

显示Euler法引言对于很多数学问题,我们往往需要求解微分方程。
微分方程描述了物理、化学、生物等领域中许多现象的变化规律。
然而,解析求解微分方程通常非常困难,甚至无法找到解析解。
因此,我们需要借助数值方法来近似求解微分方程。
Euler法是最简单且最早的一种数值方法之一,它可以用于求解一阶常微分方程。
本文将详细介绍Euler法的原理、步骤和应用。
一阶常微分方程在介绍Euler法之前,我们先来回顾一下一阶常微分方程的一般形式:dydt=f(t,y)其中,y为未知函数,t为自变量,函数f(t,y)描述了y关于t的变化规律。
Euler法原理Euler法的基本思想是将微分方程中的导数用差分的形式来近似表示。
我们将自变量t划分为若干个离散的点,步长为ℎ,即t0,t1,t2,…,t n,其中n为划分的个数。
在每个t i点,我们需要求解y(t i)的近似值y i。
根据微分的定义,可以得到:dy dt =limℎ→0y(t+ℎ)−y(t)ℎ为了用差分形式近似表示导数,我们可以将上式改写为:y(t+ℎ)−y(t)ℎ≈f(t,y)对上式进行变形可得:y(t+ℎ)≈y(t)+ℎf(t,y)这就是Euler法的基本迭代公式。
Euler 法步骤按照Euler 法的基本迭代公式,我们可以得到求解微分方程的步骤: 1.选择划分间隔步长ℎ,确定划分点个数n 。
2.给定初始条件y 0,即t =t 0时的y 值。
3.根据Euler 法迭代公式,计算y 1=y 0+ℎf (t 0,y 0)。
4. 重复步骤3,直到计算出所有的y i 。
Euler 法应用举例现在我们通过一个具体的例子来演示Euler 法的应用。
考虑一阶常微分方程:dy dt=−ty 初始条件为y (0)=1。
我们将该微分方程数值解与解析解进行比较。
划分步长和确定划分点个数为了开始计算,我们需要选择一个适当的步长ℎ和划分点个数n 。
在这个例子中,我们选择ℎ=0.1,n =10。
1Euler法

x0 x1 x2 ... xn ...
x0 ih; h : 步长
(解的存在唯一性) Th9.1
对于初值问题 ( ),如果 f ( x, y ) 在下列区域内连续:
G {a x b;| y | }
且关于 y 满足Lipschitz条件,即存在常数 L 0,使
第九章 常微分方程初值问题的数值解法
/*Numerical Method of Initial Value Problem for Ordinary Differential Equations*/
本章主要介绍一阶常微分方程初值问题的数值解法。
§1 基本概念与Euler方法
一、初值问题及其数值解的概念
上述迭代法的收敛性:
( k 1) n 1
缺陷:计算量太大
h (k ) | yn1 y | | f ( xn1 , yn1 ) f ( xn1 , yn 1 ) | 2 h hL k 1 (k ) ( 0) L | yn1 yn1 | ... ( ) | yn1 yn1 | 2 2 2 ( k 1) 只要 h | yn1 yn1 | 0 ( k ) L
y( x ) 积分曲线
o
x0
x1
x2
xn
x
初值问题 ( ) 的解表示过点 ( x0 , y0 )的一条曲线 初值问题 ( ) 的数值解表示一组离散点列 ( xi , yi ) 可用拟合方法求该组数据 ( xi , yi ) 的近似曲线
二、Euler 法
y ( x , y ) 现在从 0 0 出发
解: yn1 Euler公式:
0.2 xn yn hf ( xn , yn ) 1.1 yn yn
Euler法与修正的Euler法局部截断误差Range-Kutta公式

h xn x0 0 n
16
定义 若一种数值方法对于固定的 xn ,x当0 nh h 时0 有 yn ,其y(中xn ) 是原问y题(x的) 确解,则称该方法 是收敛的.
定理 假设单步法具有p阶精度,且增量函数 (x, y关, h于) y 满足利普希茨条件
(x, y, h) (x, y, h) L y y ,
k1=f(xn,yn), k2=f(xn+0.5h, yn+0.5hk1) k3=f(xn+0.5h, yn+0.5hk2), k4=f(xn+h, yn+hk3)
12
例4
dy
y xy2 ,
0
x2
dx y(0) 1
1 y( x) x 1 2e x
数值实验:几种不同求数值解公式的误差比较
11
Range-Kutta公式
三阶Range-Kutta公式一般形式
yn+1= yn+ h[k1+4k2+k3]/6 k1=f(xn,yn), k2=f(xn+0.5h, yn+0.5hk1) k3=f(xn+h, yn – hk1+2hk2)
四阶Range-Kutta公式一般形式
yn+1= yn+ h[k1+2k2+2k3+k4]/6
常微分方程数值解
Euler法与修正的Euler法 局部截断误差 Range-Kutta公式
1
Euler法与修正的Euler法
一阶常微分方程初值问题:
dy dx
f (x, y), x
x0
其中, y = y(x) 是未知函数, y( x0 ) y0
Euler法与改进Euler法知识讲解

yn1 yn dy h dx
常用方法
(2) 用数值积分近似积分
dy xn1
xn1
dx f ( x, y)dx (n 0,1, )
xn dx
xn
即
y( xn1) y( xn )
xn1 f ( x, y( x))dx
xn
进一步: 令 yn1 y( xn1) , yn y( xn )
xn x0 nh, n 0,1,2 .
二、建立数值解法的常用方法
建立微分方程数值解法,首先要将微分方程离散化.
一般采用以下几种方法: (1) 用差商近似导数
dy
y xn1 yxn
xn1 xn
f xn , y(xn )
dx x y , n n
进一步 : 令 yn1 y(xn1) , yn y(xn )
y0 ( x x0 ) f ( x0 , y0 )
dx x y , 0 0
几何意义
等步长为h,则 x1 x0 h,可由切线算出y1 : y1 y0 hf(x0 , y0)
逐步计算出y
y( x)
在
xn
点
1
的
值
:
yn1 yn hf(xn , yn) n 0,1,2,
注意:这是“折线法”而非“切线法” y 除第一个点是曲线切线外,其他点不是!
能用解析方法求出精确解的微分方程为数不多, 而且有的方程即使有解析解,也可能由于解的表达 式非常复杂而不易计算,因此有必要研究微分方程 的数值解法
常微分方程数值解法
重点 研究一阶常微分方程的初值问题的数值解
其一般形式为:
dy
dx
f (x, y)
y( x0 ) y0
a xb
计算方法 常微分方程初值问题数值解法-Euler公式-龙格-库塔法

yi1
1 2
(y p
yc)
i 0,1, 2 … , n 1
(9.12)
例9.2 用改进欧拉法解初值问题
y
y
2x y
y(0) 1
区间为0,1,取步长 h=0.1
解:
改进欧拉法公式
y p
yi
0.1(yi
2xi ) yi
课堂练习: x0 = 0, y0 = 1 计算出
欧拉公式的截断误差推导:
在欧拉公式中,假定 yi y(x i ) (近似地相等),则有
yi1 y(x i ) h[f(x i , y(x i ))] y(x i ) hy(xi ) (a)
而将真解y(x)在xi处按二阶泰勒展开,得
y(x i1 )
y(x i ) hy(xi )
h2 2!
y(x0 ) f(x 0 , y0 )
Pn
y
P1(x1 , y1)
P2(x2 , y2)
y=y(x)
Pi(xi , yi) Pi+1(xi+1 , yi+1) y(xn)
P0 y(x0) y(x1)
y(x2) y(xi)
y(xi+1)
x0 x1
x2 xi
xi+1
xn
直线 P0P1 的方程为: y y0 f(x 0 , y0 )(x x0 )
(9.5)式的右端含有未知的yi+1,它是一个关于yi+1的函 数方程,这类数值方法称为隐式方法。相反地,欧拉法 是显式方法。
Home
两步Euler公式
9.2.3 两步欧拉公式
2个区间
对方程 y f( x,y) 两端在区间 [xi1, xi1] 上积分得
微分方程常用的两种数值解法:欧拉方法与龙格—库塔法

资料范本本资料为word版本,可以直接编辑和打印,感谢您的下载微分方程常用的两种数值解法:欧拉方法与龙格—库塔法地点:__________________时间:__________________说明:本资料适用于约定双方经过谈判,协商而共同承认,共同遵守的责任与义务,仅供参考,文档可直接下载或修改,不需要的部分可直接删除,使用时请详细阅读内容四川师范大学本科毕业论文四川师范大学教务处二○一○年五月微分方程常用的两种数值解法:欧拉方法与龙格—库塔法学生姓名:xxx 指导教师:xx【内容摘要】微分方程是最有生命力的数学分支,在自然科学的许多领域中,都会遇到常微分方程的求解问题。
当前计算机的发展为常微分方程的应用及理论研究提供了非常有力的工具,利用计算机解微分方程主要使用数值方法,欧拉方法和龙格——库塔方法是求解微分方程最典型常用的数值方法。
本文详细研究了这两类数值计算方法的构造过程,分析了它们的优缺点,以及它们的收敛性,相容性,及稳定性。
讨论了步长的变化对数值方法的影响和系数不同的同阶龙格—库塔方法的差别。
通过编制C程序在计算机上实现这两类方法及对一些典型算例的结果分析比较,能更深切体会它们的功能,优缺点及适用场合,从而在实际应用中能对不同类型和不同要求的常微分方程会选取适当的求解方法。
关键词:显式单步法欧拉(Euler)方法龙格—库塔(Runge—Kutta)方法截断误差收敛性Two commonly used numerical solution of differential equations:Euler method and Runge - Kutta methodStudent Name: Xiong Shiying Tutor:Zhang Li【Abstract】The differential equation is the most vitality branch in mathematics. In many domains of natural science, we can meet the ordinary differential equation solution question. Currently, the development of computer has provided the extremely powerful tool for the ordinary differential equation application and the fundamental research, the computer solving differential equation mainly uses value method. The Euler method and the Runge—Kutta method are themost typical commonly value method to solve the differential equation. This article dissects the structure process of these two kinds of values commonly value method to solve the analyses their good and bad points, to their astringency, the compatibility, and the stabilityhas made the proof. At the same time, the article discuss the lengthof stride to the numerical method changing influence and thedifference of the coefficient different same step Runge—kutta method. Through establishing C program on the computer can realize these two kind of methods, Anglicizing some models of calculate example result can sincerely realize their function, the advantage and disadvantage points and the suitable situation, thus the suitable solution method can be selected to solve the different type and the different request ordinary differential equation in the practical application .Keywords: Explicit single-step process Euler method Runge—Kutta method truncation error convergence目录微分方程常用的两种数值解法:欧拉方法与龙格—库塔法前言常微分方程的形成与发展是和力学、天文学、物理学以及其他科学技术的发展密切相关的。
9-1Euler方法

差分方程初值问题
若用向后差商近似导数,即
y ( x n 1 ) y ( x n ) h y ( x n 1 ) y ( x n ) hf ( x n 1 , y ( x n 1 )) y ( x n 1 )
一阶常微分方程初值问题的数值解法
要计算出解函数 y(x) 在一系列节点 a = x0< x1<…< xn= b 处的近似值 yi y( xi ) ( i 1, ... , n)
节点间距 hi xi 1 xi (i 0, ... , n 1) 为步长,通常采用等距节点, 即取 hi = h (常数)。
y( x1 ) y( x 2 ) y( x0 ) 2h
y( x2 ) y( x0 ) 2h f ( x1 , y( x1 ))
yi 1 yi 1 2h f ( xi , yi ) i 1, ... , n 1
x0 x1 x2
假设 yi 1 y( xi 1 ), yi y( xi ) ,则可以导出 即中点公式具有 2 阶精度。
第九章 常微分方程数值解法
§1 Euler方法 §2 改进的Euler 方法
§3 Runge-Kutta方法
§4 线性多步法 §5 相容性、收敛性与稳定性
一阶常微分方程初值问题
考虑一阶常微分方程的初值问题
dy f ( x, y) dx y ( a ) y0 x [a , b ]
Rn 1 y ( xn ) y n h f ( xn , y ( xn )) f ( xn , yn )
Rn 1 en hL y ( xn ) yn Rn 1 (1 hL) en
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
© 2009, Henan方法 Polytechnic University §2 Euler
1616
第五章 常微分方程数值解法
5.2.3 梯形公式
若将这两种方法进行算术平均, 即可消除误差 的主要部分而获得更高的精度, 称为梯形法
h yk 1 yk [ f ( xk , yk ) f ( xk 1 , yk 1 )] 2
k 0,1,2.....n 1
© 2009, Henan方法 Polytechnic University §2 Euler
© 2009, Henan方法 Polytechnic University §2 Euler
9 9
第五章 常微分方程数值解法
0 yn 1 y n h f ( xn , y n ) ( k 1) (k ) y y h f ( x , y n n 1 n 1 ) n 1
h2 y ( x i ) O ( h 3 ) 2 欧拉法具有 1 阶精度。
2
© 2009, Henan方法 Polytechnic University §2 Euler
8 8
第五章 常微分方程数值解法
5.2.2 后退的 欧拉公式(隐式欧拉公式) 向后差商近似导数
y ( x k 1 ) y( x k 1 ) y( x k ) h
© 2009, Henan方法 Polytechnic University §2 Euler
1313
§1 Euler’s Method 第五章 常微分方程数值解法
从而 R n 1 y ( x n 1 ) y n 1 hf y x n 1 , y x n 1 y n 1 h2 h3 y x n y x n 2 3 即 1 hf x , R y n 1 n 1 h2 h3 y x n y x n 2 3
第二节 Euler方法
1
第五章 常微分方程数值解法
5.2.1.Euler方法 设节点为xk=x0+kh 方法一 (h=(b-a)/n k=0,1,…n)
泰勒展开法 (将y(xk+1)在xk泰勒展开得) y( ) y( xk 1 ) y( xk ) y( xk )( xk 1 xk ) ( x k 1 x k ) 2 2
也称Euler为单步法, 又称为显格式的单步法。
y1 , y2 ,, yn 依上述公式逐次计算可得:
© 2009, Henan方法 Polytechnic University §2 Euler
5 5
第五章 常微分方程数值解法
2
欧拉法的几何意义:
( x2 , y2 ) ( x1 , y1 )
过 ( x0 , y( x0 )) ( x0 , y0 )作切线 y y0 k ( x x 0 )
在迭代公式中取极限,有 y n 1 y n h f ( x n 1 , y n 1 )
(k ) 因 此 yn 1的 极 限 就 是 隐 式 方 程 的 解
© 2009, Henan方法 Polytechnic University §2 Euler
1010
第五章 常微分方程数值解法
h2 2
即隐式欧拉公式具有 1 阶精度。
© 2009, Henan方法 Polytechnic University §2 Euler
1515
第五章 常微分方程数值解法
比较欧拉显式公式和隐式公式及其局部截断误差 显 n 0, 1,... 式 yn 1 yn h f ( xn , yn ) 公 3 h2 式 Rn1 y( xn1 ) yn1 2 y( xn ) O(h ) 隐 yn 1 yn h f ( xn 1 , yn 1 ) 式 3 h2 公 Rn1 y( xn1 ) yn1 2 y( xn ) O(h ) 式
h2 h3 y xn 3 f y xn1, y xn 2 y xn 2 6 h2 Rn1 y xn o(h2 ) 2
隐式欧拉法的局部截断误差:
Rn 1 y ( xn 1 ) yn 1 y( xn ) O(h3 )
xk
f ( x , y( x ))dx
( xk 1 xk ) f ( xk , y( xk )) hf ( xk , y( xk ))
即: y( x k 1 ) y( x k ) hf ( x k , y( x k ))
© 2009, Henan方法 Polytechnic University §2 Euler
2
1 1 hf y xn 1 ,
1 hf y xn 1 , h
f x
y
n 1
,
2
1 ( 1 x x 2 ) 1 x
© 2009, Henan方法 Polytechnic University §2 Euler
也称欧拉折线法.
6 6
第五章 常微分方程数值解法
3.欧拉法的局部截断误差: 定义 在假设 yi = y(xi),即第 i 步计算是精确的前提 下,考虑的截断误差 Ri = y(xi+1) yi+1 称为局部截断 误差 定义若某算法的局部截断误差为 O(hp+1) ,则称该 算法有p 阶精度。
4 4
第五章 常微分方程数值解法
y( x k 1 ) y( x k ) hf ( x k , y( x k ))
用 y ( x k )的近似值 y k 代入上式右端,记所得 近似结果为 y k 1,则可得:
yk 1 yk hf ( xk , yk )
k 0,1,2.....n 1
几何意义:
向后差商近似导数
y( x1 )
y ( x1 ) y0 h f ( x1 , y ( x1 ))
y( x1 ) y( x0 ) h
x0
x1
© 2009, Henan方法 Polytechnic University §2 Euler
1111
y
第五章 常微分方程数值解法
Pn+1 Pn y(x)
1414
§1 Euler’s Method 第五章 常微分方程数值解法 2 3 2 h h 2 Rn1 1 hf y xn1, h f y xn1, y xn y xn 3 2
在yn 1,y xn 1 之间;
h2 又 f xn 1 , y xn 1 y xn 1 y xn hy xn y xn 2 yn 1 hf y xn 1 , yn 1 y xn 1 y xn 3 h hy xn h 2 y xn y xn 2 而 h2 h3 y xn 1 y xn hy xn y xn y xn 2 6
则可得:
h y( ) y( xk ) hf ( xk , y( xk )) 2
2
y( xk 1 ) y( xk ) hf ( xk , y( xk ))
© 2009, Henan方法 Polytechnic University §2 Euler
k 0,1, 2.....n
2 2
第五章 常微分方程数值解法
方法二
数值微分法(用向前差商近似导数)
在点x k 处有y( x k ) f ( x k , y( x k ))
利用数值微分公式
y( xk 1 ) y( xk ) y( xk ) h
得:y( x k 1 ) y( x k ) hf ( x k , y( x k ))
© 2009, Henan方法 Polytechnic University §2 Euler
3 3
第五章 常微分方程数值解法
方法三
数值积分法
由y( x ) f ( x , y( x )),两端同时[ x k , x k 1 ]在积分可得:
y( xk 1 ) y( xk )
xk 1
© 2009, Henan方法 Polytechnic University §2 Euler
7 7
第五章 常微分方程数值解法
欧拉法的局部截断误差:
Ri y( xi 1 ) yi 1
h [ y( xi ) hy( xi ) y( xi ) O( h3 )] [ yi hf ( xi , yi )] 2
斜率k y( x0 ) f ( x0 , y( x0 )) f ( x0 , y0 )
y 从上述几何意义上得知,由Euler法所得的折线 y0 f ( x0 , y0 )( x x0 )与x x1求交点, 纵坐标记为 y1, 明显偏离了积分曲线,可见此方法非常粗糙。 则y1 y0 hf ( x0 , y0 ) 过 ( x1 , y1 )以f ( x1 , y1 )为斜率作直线,
x0
x1
x2
y y1 f ( x1 , y1 )( x x1 ) 与 x x 2求交点,纵坐标记为 y 2,
则y2 y1 hf ( x1 , y1 )
© 2009, Henan方法 Polytechnic University §2 Euler
............................
( k 1) (k ) yn y h f ( x , y 1 n 1 n 1 n 1 ) f ( x n 1 , y n 1 )
hL y
(k ) n 1