数值分析Euler方法讲解
第五章:常微分方程数值解法第一节欧拉法
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方法和梯形法重点讲义资料
四.实验环境(所用软件、硬件等)及实验数据文件
Matlab
五.实验结果及实例分析
欧拉法输出分析:
H=0.2
计算值解析值误差
1.0000 1.0000 0
1.4000 1.4918 -0.0918
1.9600 2.2255 -0.2655
2.7440 3.3201 -0.5761
6.1159 6.6859 -0.57
计算值解析值误差
H=0.2
1.0000 1.0000 0
1.4800 1.4918 -0.0118
2.1680 2.2255 -0.0575
3.1504 3.3201 -0.1697
4.5488 4.9530 -0.4042
3.2727 3.3201 -0.0474
3.6089 3.6693 -0.0604
3.9793 4.0552 -0.0759
4.3871 4.4817 -0.0946
4.8362 4.9530 -0.1168
5.3307 5.4739 -0.1432
5.8752 6.0496 -0.1744
6.4748 6.6859 -0.2111
6.5342 7.3891 -0.8548
H=0.1
1.0000 1.0000 0
1.2200 1.2214 -0.0014
1.4860 1.4918 -0.0058
1.8074 1.8221 -0.0147
2.1955 2.2255 -0.0300
2.6639 2.7183 -0.0544
3.2289 3.3201 -0.0912
7.1349 7.3891 -0.2541
Euler 方法
| y( x ) y( xm ) | dx
Kh / 2 L
| y( xm ( x xm )) | ( x xm ) dx
( K LM )h2 / 2
其中: 0 1, M max | y( x ) | max | f ( x, y( x )) | 。
(*)
<< 第10页/共26页 >>
注意:对于Euler方法
h2 将 R M1代入()式得: 若 0 y0 y x0 0, 2
m 1
hM 1 L( b a ) e 1 2L
这里M 1 =( K LM ), 可记为 m O h ,
说明Euler方法的整体截断误差与h同阶。
欧拉方法的几何意义:
y X
y x2
yn
y0
y x1
y1
y2
x0
x1
x2
X
h步长
Euler方法的几何意义
<< 第4页/共26页 >>
xn
二、误差分析
Rm 称为局部截断误差,它表示当 ym y( xm )为
精确值时, 计算时 y( xm h) 的误差。
m y( xm ) ym , 记:
<< 第8页/共26页 >>
从而有:
| m 1 || m | hL | m | R,
对任一 m 0,1,
, N 1, 有:
| m | (1 hL) | m 1 | R
(1 hL)2 | m 2 | (1 hL) R R
(1 hL)m | 0 | R (1 hL) j
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] 上积分得
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
.欧拉(euler)齐次方程方法
文章题目:探讨欧拉(Euler)齐次方程方法及其应用一、欧拉(Euler)齐次方程方法简介欧拉齐次方程方法是数学中常用的一种求解微分方程的方法,它主要适用于一阶线性微分方程。
欧拉齐次方程方法的核心思想是将微分方程转化为一个以积分的形式表示的方程,从而通过积分求解出微分方程的解析解。
欧拉齐次方程方法在工程、物理、经济、生物等领域都有着广泛的应用,因此深入理解并掌握欧拉齐次方程方法对于解决实际问题具有重要意义。
二、欧拉齐次方程方法的具体步骤1. 首先, 对给定的微分方程进行变量代换,将其转化为欧拉形式。
2. 其次, 解出转化后的欧拉方程的通解,得到一个包含待定常数的通解表达式。
3. 最后, 利用已知的初始条件或边界条件,求解待定常数,得到微分方程的特解。
三、欧拉齐次方程方法在实际问题中的应用欧拉齐次方程方法可以应用于很多实际问题,比如弹簧振子的运动方程、放射性物质的衰变规律、生物种群的增长模型等。
通过欧拉齐次方程方法的求解,可以得到这些实际问题的精确解,从而更好地理解和预测实际问题的发展规律。
四、欧拉齐次方程方法的个人观点和理解我认为欧拉齐次方程方法是一种非常有用的数学工具,它可以帮助我们更深入地理解微分方程的解析解,同时也可以应用于解决实际问题。
通过掌握欧拉齐次方程方法,我们可以更好地应对工程、物理、经济、生物等领域中的复杂问题,为实际问题的解决提供有力的数学支持。
总结与回顾欧拉齐次方程方法是一种解决微分方程的重要方法,它在实际问题中具有广泛的应用。
通过对欧拉齐次方程方法的深入探讨和理解,我们可以更好地应对复杂的实际问题,并为问题的解决提供可靠的数学支持。
以上便是我对欧拉齐次方程方法的一些个人观点和理解,希望能对你有所帮助。
如果还有其他问题,欢迎随时和我交流讨论。
欧拉(Euler)齐次方程方法是微分方程中的重要工具,它可以用于解决许多不同领域的实际问题。
通过欧拉齐次方程方法,我们可以求解微分方程的解析解,从而更好地理解和预测实际问题的发展规律。
Euler法
h
3
3
y ( ), x n x n 1
二阶方法
本节小结
小 结
建立数值解法的常用方法 Euler方法 几何意义 Euler方法的误差估计 向后Euler方法 两步Euler法
宽
高
实际上是左矩形法
常用方法 (3) 用Taylor多项式近似并可估计误差
y( xn+ 1 ) = y( xn + h) = y( xn ) + hy '( xn ) + h
2
y ''( ξ )
2!
进一步 : 令 yn y( xn )
yn+ 1 ? yn hf ( xn , yn )
y( x n1 ) yn1
h
2
max y' ' ( x )
a xb
2
三、Euler方法
已知初值问题的一般形 式为: dy f ( x, y) dx y( x ) y 0 0 a xb
(1)
用差商近似导数 问题转化为
y n1 y n h
dy dx
y n1 y n hf ( x n , y n ) y 0 y( x 0 )
由 L ip sch itz 条 件
en1 Rn1 1 hL en 对一切n成立。
反复递推得 e n 1 h2 M (1 h L ) M (1 h L ) e n 1 2 2 h
2
截断误差
h2 2 M (1 h L ) M (1 h L ) M (1 h L ) e n 2 2 2 2 h
初值问题与解方法
初值问题与解方法初值问题是数学中的一个重要概念,它涉及到微分方程的解的初始条件。
解决初值问题的方法有多种,本文将介绍几种常用的解法,并讨论它们的适用性和优缺点。
一、欧拉法(Euler's method)欧拉法是一种较为简单的数值解法,通过逐步逼近微分方程的解。
它的基本思想是将时间和空间分割成小的步长,并用线性逼近的方式求解微分方程。
欧拉法的计算公式为:y_{n+1} = y_n + h * f(t_n, y_n)其中,y_{n+1} 是下一个时间步长上的解,y_n 是当前时间步长上的解,h 是步长(时间或空间),f(t_n, y_n) 是微分方程的右端函数。
欧拉法的优点是简单易懂、计算量小。
然而,它的精度较低,对于具有较大步长或非线性的微分方程,可能会产生较大的误差。
二、改进的欧拉法(Improved Euler's method)改进的欧拉法是对欧拉法的一种改进方法,通过增加一个中间点的计算来提高精度。
改进的欧拉法的计算公式为:y_{n+1} = y_n + (h/2) * (f(t_n, y_n) + f(t_{n+1}, y_n + h * f(t_n, y_n)))改进的欧拉法通过使用两个不同的斜率来进行计算,提高了解的逼近精度。
相比于欧拉法,改进的欧拉法的精度更高,误差较小。
三、龙格-库塔方法(Runge-Kutta methods)龙格-库塔方法是一类常用的数值解法,包括一阶、二阶、四阶等不同精度的方法。
其中,最常用的是四阶龙格-库塔方法。
四阶龙格-库塔方法的计算公式为:k_1 = h * f(t_n, y_n)k_2 = h * f(t_n + h/2, y_n + k_1/2)k_3 = h * f(t_n + h/2, y_n + k_2/2)k_4 = h * f(t_n + h, y_n + k_3)y_{n+1} = y_n + (k_1 + 2k_2 + 2k_3 + k_4)/6四阶龙格-库塔方法通过使用多个斜率进行逼近,进而提高了解的精度。
二,Euler方法
二,Euler 方法及改进的Euler 方法问题:<数值分析简明教程>P151-实验1用Euler 方法求初值问题的数值解。
取步长h=0.1,并在一个坐标系中画出数值解与准确解的图形。
问题求解:一, 工具:Mathematica二,分析:用Euler 公式y n+1= y n +h f(x n ,y n )求数值解的方法成为Euler 方法。
三,算法及求解过程算法:1. 输入函数f(x,y)、初值y 0、自变量区间端点a,b 步长h2. 计算节点数n 和节点x k3. 用Euler 公式y n+1= y n +h f(x n ,y n ) 求数值解Euler 方法程序Clear[x,y,f]f[x_,y_]= Input["函数f(x,y)="]y0=Input["初值y 0 ="]a=Input["左端点a="]b=Input["右端点b="]h=Input["步长h="]n=(b-a)/h;For[i=0,i<n,i++,xk=a+i*h;y1=y0+h*f[xk,y0];Print["y(",xk+h//N,")=",y1//N];y0=y1]说明:本程序用Euler 公式求常微方程初值问题数值解。
程序执行后,按要求通过键盘依次输入输入函数f(x,y)、初值y 0、自变量区间端点a,b 步长h 后,计算机则给出常微方程初值问题数值解。
程序中变量说明f[x,y]: 存放函数f(x,y)y0: 存放初值y 0及数值解⎪⎩⎪⎨⎧=<<-='1)0(102y x y x y ya:存放自变量区间左端点b: 存放自变量区间右端点n: 存放节点个数h: 存放节点步长xk:存放节点xiy1: 存放数值解注:(1)语句Print["y(",xk+h//N,")=",y1//N]是将数值解用6位有效数字显示出来,如果要显示n位数有效数字,可以将语句改为Print["y(",xk+h//N,")=",N[y1,n]](2)Mathematica中有求微分方程初值问题数值解的命令,形式为:NDSolve[ {y’[x]==f[x,y[x]],y[a]==y0}, y, {x, a, b}]由N DSolve命令得到的解是以{{未知函数名->InterpolatingFunction[range, <>]}}的形式给出的,其中的InterpolatingFunction[range, <>]是所求的插值函数表示的数值解, range就是所求数值解的自变量范围。
euler法与梯形法求解微分方程
euler法与梯形法求解微分方程Euler方法和梯形法是常用的数值方法,用于求解微分方程的数值解。
这两种方法在数值计算中具有重要的应用价值,可以有效地近似微分方程的解。
我们来介绍一下Euler方法。
Euler方法是一种简单而直观的数值方法,用于求解一阶常微分方程。
它的基本思想是将微分方程转化为差分方程,通过逐步逼近真实解来得到数值解。
具体步骤如下:1. 将自变量的取值范围划分为一系列小的区间,并选择一个合适的步长h。
2. 根据微分方程的初值条件,确定初始值。
3. 使用差分逼近的方法,不断迭代计算每个区间的数值解。
4. 重复步骤3,直到达到所需的精度或计算到指定的自变量值。
Euler方法的优点是计算简单、易于实现,但它的精度相对较低。
由于它是通过线性逼近来近似解,所以在复杂的微分方程中可能会产生较大的误差。
因此,在某些情况下,我们需要使用更为精确的数值方法,如梯形法。
梯形法是一种改进的数值方法,用于求解一阶常微分方程。
它的基本思想是利用梯形的面积来逼近函数的曲线面积,从而得到更为精确的数值解。
具体步骤如下:1. 将自变量的取值范围划分为一系列小的区间,并选择一个合适的步长h。
2. 根据微分方程的初值条件,确定初始值。
3. 使用梯形规则,通过迭代计算每个区间的数值解。
4. 重复步骤3,直到达到所需的精度或计算到指定的自变量值。
梯形法相比于Euler方法,具有更高的精度。
它通过考虑两个相邻点之间的曲线,得到更准确的数值解。
然而,梯形法的计算量较大,需要进行更多的计算。
因此,在实际应用中,我们需要根据具体情况选择合适的数值方法。
总结起来,Euler方法和梯形法是常用的数值方法,用于求解微分方程的数值解。
它们各自具有优缺点,适用于不同的求解问题。
在实际应用中,我们需要根据问题的要求和计算资源的限制,选择合适的数值方法来求解微分方程。
通过合理选择数值方法,可以有效地得到微分方程的数值解,从而解决实际问题。
euler法 -回复
euler法-回复什么是Euler法?Euler方法是数值解常微分方程的一种基本方法。
它由瑞士数学家莱昂哈德·欧拉于18世纪提出。
这种方法基于微分方程的近似解,在给定的初始条件下,通过一系列的步骤来逼近方程的解。
为什么需要使用Euler法?常微分方程是数学中一个重要的研究领域,它描述了许多自然现象和物理定律。
然而,很多微分方程并没有能求出解析解的方法。
在实际问题中,我们常常需要通过数值方法来近似地计算方程的解。
此时,Euler法被广泛应用,因为它简单易懂、易于实现,并在解决简单方程时具有较好的精度。
Euler法的原理是什么?Euler法的基本思想是将微分方程看作一个一阶差分方程,通过给定的初始条件和步长(时间间隔),逐步逼近方程的解。
对于一个一阶常微分方程dy/dx = f(x, y),Euler法的迭代步骤如下:1. 给出初始条件:x0,y02. 计算斜率:k = f(x0, y0)3. 根据步长h,计算下一个点的值:x1 = x0 + h,y1 = y0 + hk4. 重复步骤2和3,直到达到所需的点数量或精度这样,我们就能够通过一系列的迭代步骤,逐渐逼近微分方程的解。
Euler法的优缺点是什么?Euler法被广泛使用的原因之一是其简单性,易于理解和实现。
此外,它在解决简单微分方程时具有较好的精度。
然而,Euler法也有一些缺点。
首先,它在逼近解时产生的误差较大,特别是对于步长较大的情况。
这种误差被称为截断误差,它来自于将微分方程近似为差分方程的过程。
此外,Euler法在解决刚性方程或具有奇点(singularity)的方程时效果较差。
如何改进Euler法的精度?为了提高Euler法的精度,可以考虑使用更高阶的数值方法,如改进的Euler法和四阶Runge-Kutta方法。
这些方法在每个步骤中使用更多的信息来逼近微分方程的解,从而减小截断误差。
此外,可以通过减小步长h 的大小来增加精度,但这同时会增加计算量。
欧拉方法求数值解
欧拉方法求数值解**《欧拉方法求数值解,看这一篇就够啦!》**嘿,朋友!今天我要给你唠唠一个超级厉害的东西——欧拉方法求数值解!别一听这名字就觉得头大,其实没那么难,跟着我一步一步来,保准你能搞明白。
首先咱来弄清楚啥是欧拉方法。
你就把它想象成一个在数学世界里的小导航,能帮咱找到那些复杂方程的近似答案。
比如说,有个方程像个迷宫,咱直接走进去可能会迷路,但欧拉方法就像给咱指了条小路,虽然不是百分百准确,但也能让咱大致知道往哪儿走。
接下来,咱们说说具体咋操作。
第一步,咱得有个方程。
就像你要去旅行得先知道目的地是哪儿一样。
比如说,咱有个方程:$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$ 。
然后就这么一步一步算下去,就像你一步一步走过一段路一样。
我跟你说,我第一次用欧拉方法的时候,那叫一个紧张,生怕算错一步。
结果还真算错了,从头再来,那感觉,真是酸爽!不过多练几次就熟练啦。
这里我再跟你强调一下哈,步长选得好不好很关键。
选大了,误差可能大得离谱,就像你大步流星结果跑偏了;选小了,算得又累又慢,就像小碎步挪半天还没走到重点。
还有啊,计算过程中可别粗心,一个数算错了,后面可能就全错啦,那可真是“一步错,步步错”。
数值分析Euler方法讲解
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
© 2009, Henan Polytechnic University §2 Euler方法
3 3
第五章 常微分方程数值解法
方法三 数值积分法
由y( x) f ( x, y( x)),两端同时[ xk , xk 1 ]在积分可得:
y( xk 1 ) y( xk )
xk 1
k 0,1,2.....n 1
© 2009, Henan Polytechnic University §2 Euler方法
ห้องสมุดไป่ตู้
1717
第五章 常微分方程数值解法
在用数值积分的方法推导欧拉公式时,右端的 积分用梯形积分公式可得:
由y( x) f ( x, y( x)),两端同时 [ xk , xk 1 ]在积分可得:
斜率k y( x0 ) f ( x0 , y( x0 )) f ( x0 , y0 )
Euler法所得的折线 y 从上述几何意义上得知,由 y0 f ( x0 , y0 )( x x0 )与x x1求交点, 纵坐标记为y1, 明显偏离了积分曲线,可见此方法非常粗糙。 则y1 y0 hf ( x0 , y0 ) 过( x1 , y1 )以f ( x1 , y1 )为斜率作直线,
© 2009, Henan Polytechnic University §2 Euler方法
euler-cromer方法
euler-cromer方法Euler-Cromer方法是一种常用的数值积分方法,用于求解微分方程。
它是由瑞士数学家Leonhard Euler和德国数学家Ludwig Cromer分别独立提出的。
在物理学和工程学中,我们经常需要求解微分方程来描述系统的运动。
然而,许多情况下,这些微分方程很难或者无法通过解析方法求解。
这时,数值方法就成为了一个有效的工具。
Euler-Cromer方法是一种一阶近似方法,它通过迭代计算来逼近真实解。
这种方法的基本思想是将微分方程转化为差分方程,然后利用离散化的时间步长进行数值计算。
具体来说,Euler-Cromer方法采用了一种特殊的迭代形式,即先计算速度,再计算位移。
在使用Euler-Cromer方法求解微分方程时,我们首先需要确定初始条件,即系统的初始位置和速度。
然后,我们选择一个合适的时间步长,将时间离散化。
接下来,我们利用差分方程进行迭代计算,依次更新系统的位置和速度。
在每一步迭代中,我们首先根据当前的速度计算位移的变化量,然后根据位移的变化量更新位置,最后根据更新后的位置计算速度。
重复这个过程,直到达到所需的时间点。
Euler-Cromer方法相比于传统的Euler方法有一定的优势。
传统的Euler方法在计算位置时,使用的是当前时刻的速度,然后再根据位置计算速度。
而Euler-Cromer方法则是先计算速度,再计算位置。
这种顺序的调整,使得Euler-Cromer方法更加稳定。
特别是在模拟一些周期性系统时,Euler-Cromer方法的结果更加准确。
然而,Euler-Cromer方法也有一些局限性。
首先,它是一种一阶方法,因此在一些复杂的系统中,误差可能会积累得比较快。
其次,Euler-Cromer方法并不是无条件稳定的,对于一些特殊的系统,可能需要选择更小的时间步长才能保证结果的准确性。
总的来说,Euler-Cromer方法是一种简单而有效的数值积分方法,适用于求解一些简单的微分方程。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
此即为欧拉公式,又称 欧拉格式。
也称Euler 为单步法, 又称为显格式的单步法 。
依上述公式逐次计算可得:y1 , y2 ,? , yn
§2 Euler 方法 ? 2009, Henan Polytechnic University
55
第五章 常微分方程数值解法
2 欧拉法的几何意义:
( x2, y2 ) ( x1, y1 )
也称欧拉折线法 .
§2 Euler 方法 ? 2009, Henan Polytechnic University
66
第五章 常微分方程数值解法
3.欧拉法的局部截断误差: 定义 在假设 yi = y(xi),即第 i 步计算是精确的前 提下,考虑的截断误差 Ri = y(xi+1) ? yi+1 称为局部 截断误差
xk
? ( xk?1 ? xk ) f ( xk , y( xk )) ? hf ( xk , y( xk ))
即: y( xk ? 1 ) ? y( x k ) ? hf ( xk , y( x k ))
§2 Euler 方法 ? 2009, Henan Polytechnic University
22
第五章 常微分方程数值解法
方法二 数值微分法(用向前差商近似导数)
在点xk 处有y?( x k ) ? f ( xk , y( xk )) 利用数值微分公式
y?( xk ) ?
y( xk?1 ) ? h
y( xk )
得:y( xk ?1 ) ? y( x k ) ? hf ( x k , y( xk ))
第二节 Euler方法
1
第五章 常微分方程数值解法
5.2.1.Euler 方法
设节点为 xk=x0+kh (h=(b-a)/n k=0,1,…n)
方法一 泰勒展开法 (将y(x k+1)在xk泰勒展开得 )
y( xk?1) ?
y( xk ) ?
y?( x k )( x k ?1 ?
xk ) ?
y??(?
定义 若某算法的局部截断误差为 O(hp+1),则称该 算法有p 阶精度。
§2 Euler 方法 ? 2009, Henan Polytechnic University
77
第五章 常微分方程数值解法
欧拉法的局部截断误差:
Ri ? y( xi?1 ?( xi ) ?
过( x0 , y( x0 )) ? ( x0 , y0 )作切线
y ? y0 ? k ( x ? x0 )
斜率k ? y?( x 0 ) ? f ( x 0 , y( x0 )) ? f ( x0 , y0 ) x0
x1
x2
y ? 从y0 上? 述f (几x0何, y意0 )(义x ?上x得0 )与知x,?由x1求Eu交le点r法,所纵得坐的标折记线为 y1,
2
)
(
x
k
?1
?
xk )2
?
y( xk ) ?
hf
( xk , y( xk )) ?
h2 y??(? )
2
则可得:
y( xk?1) ? y( xk ) ? hf ( xk , y( xk )) k ? 0,1,2.....n
§2 Euler 方法 ? 2009, Henan Polytechnic University
§2 Euler 方法 ? 2009, Henan Polytechnic University
33
方法三 数值积分法
第五章 常微分方程数值解法
由y?( x ) ? f ( x , y( x )),两端同时[ xk , xk ?1]在积分可得:
? y( xk?1) ? y( xk ) ?
xk?1 f ( x, y( x ))dx
§2 Euler 方法 ? 2009, Henan Polytechnic University
99
第五章 常微分方程数值解法
? ? ?
yn0? y(k ?1)
n?1
1? ?
yn ? h yn ? h
f (xn f (xn?
, yn ) , y(k)
1 n?1
)
y ? ( k ? 1) n?1
yn?1
向后差商近似导数
y?( x k ? 1 ) ?
y(xk?1) ? h
y( xk )
y( xk?1 ) ? y( xk ) ? hf (xk?1, y( xk?1 ))
yk?1 ? yk ? hf ( xk?1, yk?1 ) k ? 0,1,2.....n ? 1
由于未知数 yn+1 同时出现在等式的两边,故称为 隐 式 欧拉公式,而前者称为 显式 欧拉公式。隐式公 式不能直接求解,一般需要用 Euler 显式公式得到 初值,然后用 Euler 隐式公式迭代求解。因此隐式 公式较显式公式计算复杂,但稳定性好。
?h
f
( xn?1 ,
y
( n
k ?
) 1
)
?
f (xn?1, yn?1)
? hL
y (k ) n?1
?
yn?1
?
? ? ?
hL
y ? y k ? 1 (0)
n?1
n?1
hL ? 1, ?
y ? ( k ? 1) n?1
yn?1(k ?
?)
在迭代公式中取极限,有
yn?1 ? yn ? h f (xn?1, yn?1)
h2 2
y??( xi ) ?
O(h3 )] ? [
yi
?
hf
(xi,
yi )]
?
h2 2
y??( x i ) ? O ( h 3 )
欧拉法具有 1 阶精度。
§2 Euler 方法 ? 2009, Henan Polytechnic University
88
第五章 常微分方程数值解法
5.2.2 后退的 欧拉公式 (隐式欧拉公式)
则y明1 ?显y偏0 ?离hf了(积x0 ,分y0曲) 过线(,x1可, y见1 )以此方f ( 法x1 ,
非常粗糙。 y1 )为斜率作直线,
y ? y1 ? f ( x1 , y1 )( x ? x1 )与x ? x 2求交点,纵坐标记为 y2,
则y2 ? y1 ? hf ( x1 , y1 )
.......... .......... ........
44
第五章 常微分方程数值解法
y( xk ? 1 ) ? y( x k ) ? hf ( x k , y( x k ))
用y( x k )的近似值 yk 代入上式右端,记所得 近似结果为 yk ? 1,则可得:
yk?1 ? yk ? hf ( x k , yk )
k ? 0,1,2.....n ? 1