数值分析Euler方法讲解
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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
则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 )
.......... .......... ........
§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
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 后退的 欧拉公式 (隐式欧拉公式)
过( 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
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
也称欧拉折线法 .
§2 Euler 方法 ? 2009, Henan Polytechnic University
66
第五章 常微分方程数值解法
3.欧拉法的局部截断误差: 定义 在假设 yi = y(xi),即第 i 步计算是精确的前 提下,考虑的截断误差 Ri = y(xi+1) ? yi+1 称为局部 截断误差
第二节 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??(?
?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)
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 ))
向后差商近似导数
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 隐式公式迭代求解。因此隐式 公式较显式公式计算复杂,但稳定性好。
此即为欧拉公式,又称 欧拉格式。
也称Euler 为单步法, 又称为显格式的单步法 。
依上述公式逐次计算可得:y1 , y2 ,? , yn
§2 Euler 方法 ? 2009, Henan Polytechnic University
55
第五章 常微分方程数值解法
2 欧拉法的几何意义:
( x2, y2 ) ( x1, y1 )
定义 若某算法的局部截断误差为 O(hp+1),则称该 算法有p 阶精度。
§2 Euler 方法 ? 2009, Henan Polytechnic University
77
第五章 常微分方程数值解法
欧拉法的局部截断误差:
Ri ? y( xi?1 ) ? yi?1
?
[
y(xi ) ?
hy?( xi ) ?
? ( 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
则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 )
.......... .......... ........
§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
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 后退的 欧拉公式 (隐式欧拉公式)
过( 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
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
也称欧拉折线法 .
§2 Euler 方法 ? 2009, Henan Polytechnic University
66
第五章 常微分方程数值解法
3.欧拉法的局部截断误差: 定义 在假设 yi = y(xi),即第 i 步计算是精确的前 提下,考虑的截断误差 Ri = y(xi+1) ? yi+1 称为局部 截断误差
第二节 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??(?
?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)
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 ))
向后差商近似导数
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 隐式公式迭代求解。因此隐式 公式较显式公式计算复杂,但稳定性好。
此即为欧拉公式,又称 欧拉格式。
也称Euler 为单步法, 又称为显格式的单步法 。
依上述公式逐次计算可得:y1 , y2 ,? , yn
§2 Euler 方法 ? 2009, Henan Polytechnic University
55
第五章 常微分方程数值解法
2 欧拉法的几何意义:
( x2, y2 ) ( x1, y1 )
定义 若某算法的局部截断误差为 O(hp+1),则称该 算法有p 阶精度。
§2 Euler 方法 ? 2009, Henan Polytechnic University
77
第五章 常微分方程数值解法
欧拉法的局部截断误差:
Ri ? y( xi?1 ) ? yi?1
?
[
y(xi ) ?
hy?( xi ) ?