数值分析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法的原理、步骤和应用。

一阶常微分方程在介绍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。

欧拉方法求数值解

欧拉方法求数值解

欧拉方法求数值解**《欧拉方法求数值解,看这一篇就够啦!》**嘿,朋友!今天我要给你唠唠一个超级厉害的东西——欧拉方法求数值解!别一听这名字就觉得头大,其实没那么难,跟着我一步一步来,保准你能搞明白。

首先咱来弄清楚啥是欧拉方法。

你就把它想象成一个在数学世界里的小导航,能帮咱找到那些复杂方程的近似答案。

比如说,有个方程像个迷宫,咱直接走进去可能会迷路,但欧拉方法就像给咱指了条小路,虽然不是百分百准确,但也能让咱大致知道往哪儿走。

接下来,咱们说说具体咋操作。

第一步,咱得有个方程。

就像你要去旅行得先知道目的地是哪儿一样。

比如说,咱有个方程:$y' = 2x + y$,初始条件是$y(0) = 1$。

别慌,这看着复杂,其实就是告诉咱这个“旅程”的规则和起点。

第二步,咱得确定步长$h$。

这个步长就好比你走路的步子大小。

步子太大容易跳过重要的地方,步子太小又走得太慢。

一般来说,咱先选个适中的,比如$h = 0.1$。

第三步,那就是开算啦!咱从初始点开始,按照欧拉公式一步步往前走。

公式就是:$y_{n+1} = y_n + hf(x_n, y_n)$ 。

这公式就像个魔法咒语,可管用了!比如说,第一步,$x_0 = 0$,$y_0 = 1$,那$f(0, 1)= 2×0 + 1 = 1$,所以$y_1 = y_0 + h×f(0, 1) = 1 + 0.1×1 = 1.1$ 。

然后就这么一步一步算下去,就像你一步一步走过一段路一样。

我跟你说,我第一次用欧拉方法的时候,那叫一个紧张,生怕算错一步。

结果还真算错了,从头再来,那感觉,真是酸爽!不过多练几次就熟练啦。

这里我再跟你强调一下哈,步长选得好不好很关键。

选大了,误差可能大得离谱,就像你大步流星结果跑偏了;选小了,算得又累又慢,就像小碎步挪半天还没走到重点。

还有啊,计算过程中可别粗心,一个数算错了,后面可能就全错啦,那可真是“一步错,步步错”。

1Euler法

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公式

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

微分方程数值解法

微分方程数值解法

微分方程数值解法微分方程数值解法微分方程数值解法【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方法精度高。

Euler法与改进Euler法知识讲解

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公式-龙格-库塔法

计算方法 常微分方程初值问题数值解法-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] 上积分得
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

77
第五章 常微分方程数值解法
欧拉法的局部截断误差:
Ri y( xi1 ) yi1
[ y( xi ) hy( xi )
h2 2
y( xi ) O(h3 )] [ yi
hf ( xi ,
yi )]
h2 2
y( xi ) O(h3 )
欧拉法具有 1 阶精度。
§2 Euler方法 © 2009, Henan Polytechnic University
h3 6
3
f
y
xn1
,
y xn
2y xn
Rn1
h2 2
y xn o(h2)
隐式欧拉法的局部截断误差:
Rn1Βιβλιοθήκη y(xn1) yn1
h2 2
y(xn) O(h3)
即隐式欧拉公式具有 1 阶精度。
§2 Euler方法 © 2009, Henan Polytechnic University
1515
因此yn( k1)的极限就是隐式方程的解
§2 Euler方法 © 2009, Henan Polytechnic University
2020
第五章 常微分方程数值解法
5.2.4 改进的欧拉格式
欧拉方法容易计算,但精度较低;梯形公式精度
高,但是隐式形式,不易求解;若将二者结合,可得
到改进的欧拉格式。
y y1 f ( x1, y1)( x x1)与x x2求交点,纵坐标记为y2,
则y2 y1 hf ( x1, y1 )
............................
也称欧拉折线法.
§2 Euler方法 © 2009, Henan Polytechnic University
66
§2 Euler方法 © 2009, Henan Polytechnic University
1212
第五章 常微分方程数值解法
隐式欧拉法的局部截断误差:
由微分中值定理,得
f xn1, yn1 f
xn1, y xn1
f
y
xn1, yn1
y xn1 ,
在yn1,y xn1 之间;







出yk

1








,称

预估值;再用梯形方法进行精确化,称为校正值。即:
yk
1
yk
yk1 yk hf(xk ,yk )
h[ 2
f
( xk ,
yk )
f
( xk1,
yk1 )]
§2 Euler方法 © 2009, Henan Polytechnic University
88
第五章 常微分方程数值解法
5.2.2 后退的 欧拉公式(隐式欧拉公式)
向后差商近似导数
y( xk1 )
y( xk1 ) h
y( xk )
y( xk1 ) y( xk ) hf ( xk1 , y( xk1 ))
yk1 yk hf ( xk1 , yk1 ) k 0,1,2.....n 1
y( xk1) y( xk )
xk1 f ( x, y( x))dx
xk
( xk1 2
xk ) [ f ( xk ,
y( xk ))
f ( xk1,
y( xk1 ))]
h 2
[
f
(
xk
,
yk )
f ( xk1,
yk1 )]
h yk1 yk 2 [ f ( xk , yk ) f ( xk1 , yk1 )] k 0,1,2.....n 1
y (k 1) n 1
yn1 (k
)
在迭代公式中取极限,有
yn1 yn h f ( xn1, yn1 ) 因此yn(k1)的极限就是隐式方程的解
§2 Euler方法 © 2009, Henan Polytechnic University
1010
第五章 常微分方程数值解法
几何意义:
向后差商近似导数
y( xk1) y( xk )
xk1 f ( x, y( x))dx
xk
( xk1 xk ) f ( xk , y( xk )) hf ( xk , y( xk ))
即 : y( xk1 ) y( xk ) hf ( xk , y( xk ))
§2 Euler方法 © 2009, Henan Polytechnic University
hf
( xk ,
y( xk ))
h2 y(
2
)
则可得:
y( xk1 ) y( xk ) hf ( xk , y( xk )) k 0,1,2..... n
§2 Euler方法 © 2009, Henan Polytechnic University
22
第五章 常微分方程数值解法
方法二 数值微分法(用向前差商近似导数) 在 点xk处 有y( xk ) f ( xk , y( xk ))
y( x1 )
y( x1 ) y( x0 ) h
y( x1 ) y0 h f ( x1, y( x1 ))
x0
x1
§2 Euler方法 © 2009, Henan Polytechnic University
1111
几何意义
第五章 常微分方程数值解法
y Pn+1
设已知曲线上一点 Pn (xn , yn ),过该 点作弦线,斜率为(xn+1 , yn +1 ) 点的 方向场f(x,y)方向,若步长h充分小, 可用弦线和垂线x=xn+1的交点近似 曲线与垂线的交点。
44
第五章 常微分方程数值解法
y( xk1 ) y( xk ) hf ( xk , y( xk ))
用y( xk )的近似值yk代入上式右端,记所得




为yk

1




yk1 yk hf ( xk , yk )
k 0,1,2..... n 1
此即为欧拉公式,又称欧拉格式。
也称Euler为单步法, 又称为显格式的单步法。
1313
从而
第五章 常微分§方1 程Eu数ler值’s M解eth法od
Rn1
y(xn1)
yn1
hf
y
xn 1 ,
y
xn1
yn1
h2 2
y
xn
h3 3
y xn

1
hf
y
xn1
,
Rn1
h2 2
y xn
h3 3
y xn
1
hf
y
1
xn1,
1
hf
y
xn1,
h2
2
f
y
xn1
依上述公式逐次计算可得:y1 , y2 ,, yn
§2 Euler方法 © 2009, Henan Polytechnic University
55
第五章 常微分方程数值解法
2 欧拉法的几何意义:
( x2, y2 ) ( x1, y1 )
过( x0 , y( x0 )) ( x0 , y0 )作切线
y y0 k( x x0 )
斜 率k y( x0 ) f ( x0 , y( x0 )) f ( x0 , y0 ) x0
x1
x2
y 从y0 上 述f (几x0 ,何y0意)( 义x 上x得0 )与知x,由x1E求u交ler点法,所纵得坐的标折记线为y1,
则y明1 显y偏0 离hf了( x积0 ,分y0曲) 过线(,x1可, y见1 )以此f方( x法1, 非y1 )常为粗斜糙率。作直线,

§2 Euler方法 © 2009, Henan Polytechnic University
1616
5.2.3 梯形公式
第五章 常微分方程数值解法
若将这两种方法进行算术平均, 即可消除误差
的主要部分而获得更高的精度, 称为梯形法
h yk1 yk 2 [ f ( xk , yk ) f ( xk1, yk1)]
yn 1
h 2
f
( xn1,
y(k ) n 1
)
f ( xn1, yn1 )
hL 2
y(k ) n 1
yn1
hL 2
k
1
y(0) n 1
yn1
当 h 2 时, hL 1,
L
2
y (k 1) n 1
yn1 (k
)
在迭代公式中取极限,有
yn1
yn
h 2
f ( xn , yn ) f ( xn1, yn1 )
第二节 Euler方法
1
第五章 常微分方程数值解法
5.2.1.Euler方法
设节点为xk=x0+kh (h=(b-a)/n k=0,1,…n)
方法一 泰勒展开法 (将y(xk+1)在xk泰勒展开得)
y( xk1 )
y( xk )
y( xk )(xk1
xk )
y( )
2
( xk1
xk )2
y( xk )
Pn
y(x)
xn
xn+1
x
见上图, 显然,这种近似也有一定误差, 如何估计这种误差y(xn+1) yn+1 ? 方法同上,基于Taylor展开估计局部截断误差。 但是注意,隐式公式中右边含有f(xn+1 , yn +1 ) , 由于yn +1不准确,所以不能直接用
相关文档
最新文档