 隐式欧拉法 /* implicit Euler method */

Slides:



Advertisements
Similar presentations
What do you usually do on weekends? I usually help my parents.
Advertisements

( Numerical Methods for Ordinary Differential Equations )
第六章 6.1 常微分方程及其求解概述 6.2 初值问题解法 6.3 边值问题解法
全国卷书面表达备考建议 广州市第六中学 王慧珊 Aug. 24th, 2015.
台灣民間部門在長期照護中角色的趨勢 4th International Symposium on Chinese Elderly
第九章 常微分方程的数值解法 主 要 内 容 §1、引言 §2、初值问题的数值解法--单步法 §3、龙格-库塔方法 §4、收敛性与稳定性
-CHINESE TIME (中文时间): Free Response idea: 你周末做了什么?
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
第二章 语音 第六节 音变 轻 声1.
我们会赞叹生命之花的绚丽和多姿,也会歌颂生命之树的烂漫和青翠,但是生命是如此脆弱……
自衛消防編組任務職責 講 義 This template can be used as a starter file for presenting training materials in a group setting. Sections Right-click on a slide to add.
TQC+ 物件導向程式認證-JAVA.
Could you please tell me where the restrooms are? Unit 11.
補充: Input from a text file
3 心靈雞湯 ——怎樣移動 富士山 謹以此書 獻給不甘平庸的年輕人 [美]詹姆斯·H·波倫.
3 怎样移动 富士山 —— 献给热爱生活的人.
-Artificial Neural Network- Hopfield Neural Network(HNN) 朝陽科技大學 資訊管理系 李麗華 教授.
The discipline of algorithms
程設一.
How can we be a member of the Society? You should finish the following tasks if you want to be a member of the Birdwatching Society.
XI. Hilbert Huang Transform (HHT)
Unit 2 What should I do? Period 1.
3-3 Modeling with Systems of DEs
Could you please clean your room?
Euler’s method of construction of the Exponential function
Ⅱ、从方框里选择合适的单词填空,使句子完整通顺。 [ size beef special large yet ]
Unit 2 What should I do?.
Population proportion and sample proportion
Differential Equations (DE)
API设计实例分析 通用IO API.
Chapter 4 歸納(Induction)與遞迴(Recursion)
Chapter 1 用VC++撰寫程式 Text book: Ivor Horton.
今天, AC 你 了吗? 2018/11/21.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Write a letter in a proper format
Course 9 NP Theory序論 An Introduction to the Theory of NP
创建型设计模式.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
程式撰寫流程.
Unit 4 My day Reading (2) It’s time for class.
C 語言簡介 - 2.
数值积分  在[a, b]上取 a  x0 < x1 <…< xn  b,做 f 的 n 次插值多项式 ,即得到
第四章 插值 /* Interpolation */
数据集合体.
本章中將會更詳細地考慮有關重複的概念,並且會 介紹for和do…while等兩種用來控制重複的敘述 式。 也將會介紹switch多重選擇敘述式。 我們會討論直接和迅速離開某種控制敘述式的 break敘述式,以及用來跳過重複敘述式本體剩餘 部份的continue敘述式。 本章會討論用來組合控制條件的邏輯運算子,最後.
Lesson 28 How Do I Learn English?
英语教学课件 九年级全.
Hobbies II Objectives A. Greet a long time no see friend: Respond to the greeting: B. Ask the friend if he/she likes to on this weekend? She/he doesn’t.
Chapter 5 Recursion.
Chapter 2 & Chapter 3.
BORROWING SUBTRACTION WITHIN 20
3.5 Region Filling Region Filling is a process of “coloring in” a definite image area or region. 2019/4/19.
Speaker: Liu Yu-Jiun Date: 2009/4/29
爬蟲類動物2 Random Slide Show Menu
TEEN CHALLENGE Next Steps 核心价值观总结 CORE VALUES 青年挑战核心价值观
3 心靈雞湯 ——怎樣移動 富士山 謹以此書 獻給不甘平庸的年輕人 [美]詹姆斯·H·波倫.
Q & A.
计算机问题求解 – 论题1-5 - 数据与数据结构 2018年10月16日.
冀教版 九年级 Lesson 20: Say It in Five.
提问:计算方法是做什么用的? 输入复杂问题或运算 数值 分析     计算机 近似解.
英语单项解题思路.
2012年9月4日 Do Now Answer the questions accordingly:
1753: Need for Speed ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Arguments to the main Function and Final Project
10107: What is the Median? ★★☆☆☆
12439: February 29 ★☆☆☆☆ 題組:Problem Set Archive with Online Judge
簡單迴歸分析與相關分析 莊文忠 副教授 世新大學行政管理學系 計量分析一(莊文忠副教授) 2019/8/3.
3 心靈雞湯 ——怎樣移動 富士山 謹以此書 獻給不甘平庸的年輕人 [美]詹姆斯·H·波倫.
Gaussian Process Ruohua Shi Meeting
1200: A DP problem ★★☆☆☆ 題組:Problem Set Archive with Online Judge
Presentation transcript:

 隐式欧拉法 /* implicit Euler method */ §1 Euler’s Method x0 x1  欧拉公式的改进:  隐式欧拉法 /* implicit Euler method */ 向后差商近似导数 )) ( , ) 1 x y f h +  ) 1 , ... ( - = + n i y x f h Hey! Isn’t the leading term of the local truncation error of Euler’s method ? Seems that we can make a good use of it … 由于未知数 yi+1 同时出现在等式的两边,不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。 一般先用显式计算一个初值,再迭代求解。  隐式欧拉法的局部截断误差: 即隐式欧拉公式具有 1 阶精度。

 梯形公式 /* trapezoid formula */ §1 Euler’s Method  梯形公式 /* trapezoid formula */ — 显、隐式两种算法的平均 注:的确有局部截断误差 , 即梯形公式具有2 阶精度,比欧拉方法有了进步。但注意到该公式是隐式公式,计算时不得不用到迭代法,其迭代收敛性与欧拉公式相似。 需要2个初值 y0和 y1来启动递推 过程,这样的算法称为双步法 /* double-step method */,而前面的三种算法都是单步法 /* single-step method */。  中点欧拉公式 /* midpoint formula */ x0 x2 x1 中心差商近似导数 假设 ,则可以导出 即中点公式具有 2 阶精度。

  方 法 显式欧拉 隐式欧拉 梯形公式 中点公式 简单 精度低 稳定性最好 精度低, 计算量大 精度提高 计算量大 精度提高, 显式 §1 Euler’s Method 方 法   显式欧拉 隐式欧拉 梯形公式 中点公式 简单 精度低 稳定性最好 精度低, 计算量大 精度提高 计算量大 精度提高, 显式 多一个初值, 可能影响精度 Can’t you give me a formula with all the advantages yet without any of the disadvantages? Do you think it possible? Well, call me greedy… OK, let’s make it possible.

 改进欧拉法 /* modified Euler’s method */ Step 1: 先用显式欧拉公式作预测,算出 ) , ( 1 i y x f h + = Step 2: 再将 代入隐式梯形公式的右边作校正,得到 1 + i y )] , ( ) [ 2 = x f h 注:此法亦称为预测-校正法 /* predictor-corrector method */。可以证明该算法具有 2 阶精度,同时可以看到它是个单步递推格式,比隐式公式的迭代求解过程简单。后面将看到,它的稳定性高于显式欧拉法。

§2 龙格 - 库塔法 /* Runge-Kutta Method */ 建立高精度的单步递推格式。 单步递推法的基本思想是从 ( xi , yi ) 点出发,以某一斜率沿直线达到 ( xi+1 , yi+1 ) 点。欧拉法及其各种变形所能达到的最高精度为2阶。  考察改进的欧拉法,可以将其改写为: 斜率 一定取K1 K2 的平均值吗? 步长一定是一个h 吗?

首先希望能确定系数 1、2、p,使得到的算法格式有2阶精度,即在 的前提假设下,使得 §2 Runge-Kutta Method 将改进欧拉法推广为: ) , ( ] [ 1 2 phK y ph x f K h i + = l 首先希望能确定系数 1、2、p,使得到的算法格式有2阶精度,即在 的前提假设下,使得 Step 1: 将 K2 在 ( xi , yi ) 点作 Taylor 展开 Step 2: 将 K2 代入第1式,得到

存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库塔格式。 §2 Runge-Kutta Method Step 3: 将 yi+1 与 y( xi+1 ) 在 xi 点的泰勒展开作比较 要求 ,则必须有: 这里有 个未知数, 个方程。 3 2 存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库塔格式。 注意到, 就是改进的欧拉法。 Q: 为获得更高的精度,应该如何进一步推广?

 最常用为四级4阶经典龙格-库塔法 /* Classical Runge-Kutta Method */ : ) ... , ( ] [ 1 2 32 31 3 21 - + = m m m i hK y h x f K b a l 其中i ( i = 1, …, m ),i ( i = 2, …, m ) 和 ij ( i = 2, …, m; j = 1, …, i1 ) 均为待定系数,确定这些系数的步骤与前面相似。  最常用为四级4阶经典龙格-库塔法 /* Classical Runge-Kutta Method */ :

 龙格-库塔法的主要运算在于计算 Ki 的值,即计算 f 的值。Butcher 于1965年给出了计算量与可达到的最高精度阶数的关系: §2 Runge-Kutta Method 注:  龙格-库塔法的主要运算在于计算 Ki 的值,即计算 f 的值。Butcher 于1965年给出了计算量与可达到的最高精度阶数的关系: 7 5 3 可达到的最高精度 6 4 2 每步须算Ki 的个数  由于龙格-库塔法的导出基于泰勒展开,故精度主要受解函数的光滑性影响。对于光滑性不太好的解,最好采用低阶算法而将步长h 取小。 HW: p.202 #1, 2

Lab 15. Runge-Kutta (Order Four) §2 Runge-Kutta Method Lab 15. Runge-Kutta (Order Four) Use Runge-Kutta method of order four to approximate the solution of the initial-value problem , , and (1) You are supposed to write a function void RK4 ( double (*f)( ), double a, double b, double y0, int n, FILE *outfile) to approximate the solution of Problem (1) with y’= f, x in [a, b], and the initial value of y being y0. Output the approximating values of y on the n+1 equally spaced grid points from a to b to outfile. Input There is no input file. Instead, you must hand in your function in a *.h file. The rule of naming the *.h file is the same as that of naming the *.c or *.cpp files. Output ( represents a space) For each test case, you are supposed to print n+1 lines, and each line is in the following format: fprintf( outfile, “%8.4f%12.8e\n”, x, y );

#include <stdio.h> #include <math.h> §2 Runge-Kutta Method Sample Judge Program #include <stdio.h> #include <math.h> #include "98115001_15.h"   double f0(double x, double y) { return (yx*x+1.0); } void main( ) { FILE *outfile = fopen("out.txt", "w"); int n; double a, b, y0; a = 0.0; b = 2.0; y0 = 0.50; n = 10; RK4(f0, a, b, y0, n, outfile); fprintf(outfile, "\n"); fclose(outfile); } Sample Output ( represents a space) 0.00005.00000000e001 0.20008.29293333e001 0.40001.21407621e+000 0.60001.64892202e+000 0.80002.12720268e+000 1.00002.64082269e+000 1.20003.17989417e+000 1.40003.73234007e+000 1.60004.28340950e+000 1.80004.81508569e+000 2.00005.30536300e+000

 §3 收敛性与稳定性 /* Convergency and Stability */ 定义     若某算法对于任意固定的 x = xi = x0 + i h,当 h0 ( 同时 i  ) 时有 yi  y( xi ),则称该算法是收敛的。 例:就初值问题 考察欧拉显式格式的收敛性。 解:该问题的精确解为 欧拉公式为 对任意固定的 x = xi = i h ,有  

What is wrong ??!  稳定性 /* Stability */ 例:考察初值问题 在区间[0, 0.5]上的解。 §3 Convergency and Stability  稳定性 /* Stability */ 例:考察初值问题 在区间[0, 0.5]上的解。 分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。 An Engineer complains: "Math theorems are so unstable that a small perturbation on the conditions will cause a crash on the conclusions!" 0.0 0.1 0.2 0.3 0.4 0.5 精确解 改进欧拉法 欧拉隐式 欧拉显式 节点 xi 1.0000 2.0000 4.0000 8.0000 1.6000101 3.2000101 1.0000 2.5000101 6.2500102 1.5625102 3.9063103 9.7656104 1.0000 2.5000 6.2500 1.5626101 3.9063101 9.7656101 1.0000 4.9787102 2.4788103 1.2341104 6.1442106 3.0590107 What is wrong ??!

§3 Convergency and Stability 定义    若某算法在计算过程中任一步产生的误差在以后的计算中都逐步衰减,则称该算法是绝对稳定的 /*absolutely stable */。 常数,可以是复数 一般分析时为简单起见,只考虑试验方程 /* test equation */ 当步长取为 h 时,将某算法应用于上式,并假设只在初值产生误差 ,则若此误差以后逐步衰减,就称该算法相对于 绝对稳定, 的全体构成绝对稳定区域。我们称算法A 比算法B 稳定,就是指 A 的绝对稳定区域比 B 的大。 h l h =

由此可见,要保证初始误差0 以后逐步衰减, 必须满足: §3 Convergency and Stability 例:考察显式欧拉法 - 1 2 Re Img 由此可见,要保证初始误差0 以后逐步衰减, 必须满足: 例:考察隐式欧拉法 2 1 Re Img 可见绝对稳定区域为: 注:一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。

例:隐式龙格-库塔法 其中2阶方法 的绝对稳定区域为 而显式 1~ 4 阶方法的绝对稳定区域为 HW: p.202 #6 无条件稳定 §3 Convergency and Stability 例:隐式龙格-库塔法 其中2阶方法 的绝对稳定区域为 Re Img 而显式 1~ 4 阶方法的绝对稳定区域为 k = 1 2 3 4 - Re Img 无条件稳定 HW: p.202 #6

§4 线性多步法 /* Multistep Method */ 当 10 时,为隐式公式; 1=0 则为显式公式。 用若干节点处的 y 及 y’ 值的线性组合来近似y(xi+1)。 其通式可写为: ) ... ( 1 k i f h y - + = b a  基于数值积分的构造法 将 在 上积分,得到 只要近似地算出右边的积分 ,则可通过 近似y(xi+1) 。而选用不同近似式 Ik,可得到不同的计算公式。

 亚当姆斯显式公式 /* Adams explicit formulae */ §4 Multistep Method  亚当姆斯显式公式 /* Adams explicit formulae */ 利用k+1 个节点上的被积函数值 构造 k 阶牛顿后插多项式 , 有 /* 显式计算公式 */ Newton 插值余项 局部截断误差为: 例:k=1 时有

注:一般有 ,其中Bk 与yi+1 计算公式中 fi , …, fik 各项的系数均可查表得到 。 §4 Multistep Method 注:一般有 ,其中Bk 与yi+1 计算公式中 fi , …, fik 各项的系数均可查表得到 。 1 2 3 k fi fi1 fi2 fi3 … Bk Misprint on p.204 常用的是 k = 3 的4阶亚当姆斯显式公式

 亚当姆斯隐式公式 /* Adams implicit formulae */ §4 Multistep Method  亚当姆斯隐式公式 /* Adams implicit formulae */ 利用k+1 个节点上的被积函数值 fi+1 , fi , …, fik+1 构造 k 阶牛顿前插多项式。与显式多项式完全类似地可得到一系列隐式公式,并有 ,其中 与 fi+1 , fi , …, fik+1 的系数亦可查表得到。 ~ 1 2 3 k fi+1 fi fi1 fi2 … Bk ~ 小于Bk 较同阶显式稳定 常用的是 k = 3 的4阶亚当姆斯隐式公式

 亚当姆斯预测-校正系统 Predicted value pi+1 §4 Multistep Method  亚当姆斯预测-校正系统 /* Adams predictor-corrector system */ Predicted value pi+1 注意:三步所用公式的精度必须相同。通常用经典Runge-Kutta 法配合4阶Adams 公式。 Step 1: 用Runge-Kutta 法计算前 k 个初值; Step 2: 用Adams 显式计算预测值; Step 3: 用同阶Adams 隐式计算校正值。 Hey! Look at the local truncation error of the explicit and implicit Adams methods: and Don’t you think there’s something you can do? 4阶Adams显式公式的截断误差为 4阶Adams隐式公式的截断误差为 当 h 充分小时,可近似认为i  i ,则: Modified final value yi+1 Corrected value ci+1 Modified value mi+1 外推技术 /* extrapolation */

应为( ci+1  pi+1 ), 但因ci+1 尚未算出,只好用( ci  pi )取代之。 §4 Multistep Method Adams 4th-Order predictor-corrector Algorithm To approximate the the solution of the initial-value problem At (N+1) equally spaced numbers in the interval [a, b]. Input: endpoints a, b; integer N; initial value y0 . Output: approximation y at the (N+1) values of x. Step 1 Set h = (b  a) / N ; x0 = a; y0 = y0; Output ( x0, y0 ); Step 2 For i = 1, 2, 3 Compute yi using classical Runge-Kutta method; Output ( xi , yi ); Step 3 For i = 4, …, N do steps 4-10 Step 5 ; /* predict */ Step 6 ; /* modify */ Step 7 ; /* correct */ Step 8 ; /* modify the final value */ Step 9 Output ( xi+1 , yi+1 ); Step 10 For j = 0, 1, 2, 3 Set xi = xi+1 ; yi = yi+1 ; /* Prepare for next iteration */ Step 11 STOP. 应为( ci+1  pi+1 ), 但因ci+1 尚未算出,只好用( ci  pi )取代之。