大学数值计算方法(第6章 常微分方程数值解法)
常微分方程的数值解法
常微分方程的数值解法在自然科学的许多领域中,都会遇到常微分方程的求解问题。
然而,我们知道,只有少数十分简单的微分方程能够用初等方法求得它们的解,多数情形只能利用近似方法求解。
在常微分方程课中已经讲过的级数解法,逐步逼近法等就是近似解法。
这些方法可以给出解的近似表达式,通常称为近似解析方法。
还有一类近似方法称为数值方法,它可以给出解在一些离散点上的近似值。
利用计算机解微分方程主要使用数值方法。
我们考虑一阶常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(yx y y x f dx dy在区间[a, b]上的解,其中f (x, y )为x, y 的已知函数,y 0为给定的初始值,将上述问题的精确解记为y (x )。
数值方法的基本思想是:在解的存在区间上取n + 1个节点b x x x x a n =<<<<= 210这里差i i i x x h -=+1,i = 0,1, …, n 称为由x i 到x i +1的步长。
这些h i 可以不相等,但一般取成相等的,这时na b h -=。
在这些节点上采用离散化方法,(通常用数值积分、微分。
泰勒展开等)将上述初值问题化成关于离散变量的相应问题。
把这个相应问题的解y n 作为y (x n )的近似值。
这样求得的y n 就是上述初值问题在节点x n 上的数值解。
一般说来,不同的离散化导致不同的方法。
§1 欧拉法与改进欧拉法 1.欧拉法1.对常微分方程初始问题(9.2))((9.1) ),(00⎪⎩⎪⎨⎧==y x y y x f dx dy用数值方法求解时,我们总是认为(9.1)、(9.2)的解存在且唯一。
欧拉法是解初值问题的最简单的数值方法。
从(9.2)式由于y (x 0) = y 0已给定,因而可以算出),()('000y x f x y =设x 1 = h 充分小,则近似地有:),()(')()(00001y x f x y hx y x y =≈-(9.3)记 ,n ,,i x y y i i 10 )(== 从而我们可以取),(0001y x hf y y ==作为y (x 1)的近似值。
数值分析常微分方程数值解法
第8页/共105页
➢ 数值积分方法(Euler公式)
设将方程 y=f (x, y)的两端从 xn 到xn+1 求积分, 得
y( xn1) y( xn )
xn1 f ( x, y( x))dx :
xn
xn1 F ( x)dx
xn
用不同的数值积分方法近似上式右端积分, 可以得到计算 y(xn+1)的不同的差分格 式.
h2 2
y''( )
Rn1
:
y( xn1)
yn1
h2 2
y''( )
h2 2
y''( xn ) O(h3 ).
局部截断误差主项
19
第20页/共105页
➢ 向后Euler法的局部截断误差
向后Euler法的计算公式
yn1 yn hf ( xn1, yn1 ), n 0, 1, 2,
定义其局部截断误差为
y 计算 的n递1 推公式,此类计算格式统称为差分格式.
3
第4页/共105页
数值求解一阶常微分方程初值问题
y' f ( x, y), a x b,
y(a)
y0
难点: 如何离散 y ?
➢ 常见离散方法
差商近似导数 数值积分方法 Taylor展开方法
4
第5页/共105页
➢ 差商近似导数(Euler公式)
(0 x 1)
y(0) 1.
解 计算公式为
yn1
yn
hfn
yn
h( yn
2xn ), yn
y0 1.0
n 0, 1, 2,
取步长h=0.1, 计算结果见下表
13
常微分方程的数值解法
第六章 常微分方程的数值解法 §6.0 引言§6.1 算法构造的主要途径§6.2 Runge-Kutta Method 算法§6.3 线性多步法§6.4 线性多步法的一般形式§6.5 算法的稳定性、收敛性§6.0 引 言1. 主要考虑如下的一阶常微分方程初值问题的求解:()()00,dy f x y dx y x y ⎧=⎪⎪⎨=⎪⎪⎩ 微分方程的解就是求一个函数y=y(x),使得该函数满足微分方程并且符合初值条件。
2. 例如微分方程:xy '-2y=4x ;初始条件: y(1)=-3。
于是可得一阶常微分方程的初始问题24(1)3y y x y ⎧'=+⎪⎨⎪=-⎩。
显然函数y(x)=x 2-4x 满足以上条件,因而是该初始问题的微分方程的解。
3. 但是,只有一些特殊类型的微分方程问题能够得到用解析表达式表示的函数解,而大量的微分方程问题很难得到其解析解,有的甚至无法用解析表达式来表示。
因此,只能依赖于数值方法去获得微分方程的数值解。
4. 微分方程的数值解:设微分方程问题的解y(x)的存在区间是[a,b ],初始点x 0=a ,将[a,b ]进行划分得一系列节点x 0 , x 1 ,...,x n ,其中a= x 0< x 1<…< x n =b 。
y(x)的解析表达式不容易得到或根本无法得到,我们用数值方法求得y(x)在每个节点x k 的近似值y(x k ),即y≈y(x k ),这样y 0 , y 1 ,...,y n 称为微分方程的数值解。
如图所示:§6.1 算法构造的主要途径x 0 x 1 x 2 ...1 欧拉公式1.1 构造的思想:利用差商代替一阶导数,即010()()x x y x y x dy dx h =-≈,则 1000()()(,)y x y x f x y h -≈。
常微分方程数值解法
介绍常微分方程数值解法常微分方程(ordinary differential equations,ODE)可用于描述许多日常存在的物理系统。
处理ODE问题常常被称为数值求解法,这指的是找到概括ODE或者其他适用于数学模型的解决方案来模括这些ODE。
这种解决方案可能在一系列不同方案中发挥重要作用,以此来提供更好的解释和预测。
常微分方程与几何图形更为相关,它利用二维或者三维空间中曲线的绘制以及分析。
通过引入一些不同的方法,可以对不同的常微分方程中的量进行描述,使得可以通过数值方法的解析来进行研究。
数值解法可能是时间消耗较多的,但有助于验证几何图形中的某些过程,以此帮助揭示数学模型。
四种常见的常微分方程数值解法四种常见的常微分方程数值解法是:前向差分法、向后差分法、中点法和全分方法。
•前向差分法:前向差分法的基本概念是利用ODE的特定解来表达时间步的影响。
这是一种基本的数值法,可以在ODE中确定任意位置的点作为终点。
在这里,任何这样的点都可以表示为ODE右边的时间步。
•向后差分法:它是反过来基于前向差分法。
它要求对ODE中的时间步进行逆向推导,以获得某一特定点的解。
向后差分法要求推导反向解中点,以便可以从每一步中获取该点的解。
•中点法:这是一种非常基本的数值解法,可以用来求解ODE中的某一步的解,但不具有直观的方法解释。
主要的思想是在每一次时间步中通过求出ODE的中点来寻找解。
•全分方法:这是一种更复杂的数值解法,它要求将ODE中的每一步解细分并解决。
与前面提到的三种解法不同,它首先要求将ODE分解成若干离散区间,然后计算每一段区间中的点。
这种解法可以更准确地进行处理,但时间消耗较多,因此比较少被使用。
优化方案在需要解决常微分方程时,为了得到最佳的结果,有必要考虑一些优化措施。
•首先,应考虑将一个复杂的ODE拆分成一些更易解决的问题。
这样做的结果是,预见到解决此ODR的总耗时将会降低。
•其次,为了加快计算速度,可以考虑使用预解算法。
哈尔滨工程大学工程算法课件06常微分方程的数值求解
欧拉法得: yn 1 yn hf xn , yn 因此,局部截断误差是 o h 2 。
19
2 改进Euler法
2.1方法构造
dy f x, y ,对其从 xk 到 xk 1 进 在微分方程初值问题 dx 行定积分得:
y xk 1 y xk
yk 1 是未知,待求的,未知量在 f x, y 中这是
一个方程,如f是非线性或超越函数,此方程是无法直接解出来(要 依靠迭代法才能解出)。这类格式称为隐式格式。
21
2.3 算例
y y x 例:用改进欧拉公式求解 , h 0.2 y 0 2 解: f x, y y x h yk 1 yk f xk , yk f xk 1 , yk 1 2 h h 1 2 y 2 x x y k 1 k 1 h k h k 1 1 2 2 可以从隐式格式中解出 yk 1 问题的精确解是 y x e x x 1
16
精确解为: y x 2 x
2
可以看出误差随着计算在积累。
17
1.4 Euler法的特点和误差
迭代格式 特点
1 单步方法:
yn 1 yn hf xn , yn n 0,1, 2,, N 1
2 显示格式: 3 局部截断误差为O h2
18
第六章 常微分方程数值解
§6.0 引言
§6.1 欧拉方法 §6.2 龙格-库塔方法
§6.3 单步法的收敛性和稳定性
§6.4 线性多步法
1
§6.0 引言
1 主要考虑如下的一阶常微分方程初值问题 的求解:
dy f x, y dx y x0 y0
实验09 数值微积分与方程数值解(第6章)
实验09 数值微积分与方程数值求解(第6章 MATLAB 数值计算)一、实验目的二、实验内容1. 求函数在指定点的数值导数232()123,1,2,3026x x x f x x xx x==2. 用数值方法求定积分(1) 210I π=⎰的近似值。
程序及运行结果:《数学软件》课内实验王平(2) 2221I dx x π=+⎰程序及运行结果:3. 分别用3种不同的数值方法解线性方程组6525494133422139211x y z u x y z u x y z u x y u +-+=-⎧⎪-+-=⎪⎨++-=⎪⎪-+=⎩ 程序及运行结果:4. 求非齐次线性方程组的通解1234123412342736352249472x x x x x x x x x x x x +++=⎧⎪+++=⎨⎪+++=⎩5. 求代数方程的数值解(1) 3x +sin x -e x =0在x 0=1.5附近的根。
程序及运行结果(提示:要用教材中的函数程序line_solution ):(2) 在给定的初值x 0=1,y 0=1,z 0=1下,求方程组的数值解。
23sin ln 70321050y x y z x z x y z ⎧++-=⎪+-+=⎨⎪++-=⎩6. 求函数在指定区间的极值(1) 3cos log ()xx x x xf x e ++=在(0,1)内的最小值。
(2) 33212112122(,)2410f x x x x x x x x =+-+在[0,0]附近的最小值点和最小值。
7. 求微分方程的数值解,并绘制解的曲线2250(0)0'(0)0xd y dyy dx dx y y ⎧-+=⎪⎪⎪=⎨⎪=⎪⎪⎩程序及运行结果(注意:参数中不能取0,用足够小的正数代替):令y 2=y,y 1=y ',将二阶方程转化为一阶方程组:'112'211251(0)0,(0)0y y y x x y y y y ⎧=-⎪⎪=⎨⎪==⎪⎩8. 求微分方程组的数值解,并绘制解的曲线123213312123'''0.51(0)0,(0)1,(0)1y y y y y y y y y y y y =⎧⎪=-⎪⎨=-⎪⎪===⎩程序及运行结果:三、实验提示四、教程:第6章 MATLAB 数值计算(2/2)6.2 数值微积分 p155 6.2.1 数值微分1. 数值差分与差商对任意函数f(x),假设h>0。
常微分方程的数值解法
常微分方程的数值解法常微分方程是研究变量的变化率与其当前状态之间的关系的数学分支。
它在物理、工程、经济等领域有着广泛的应用。
解常微分方程的精确解往往十分困难甚至不可得,因此数值解法在实际问题中起到了重要的作用。
本文将介绍常见的常微分方程的数值解法,并比较其优缺点。
1. 欧拉方法欧拉方法是最简单的数值解法之一。
它基于近似替代的思想,将微分方程中的导数用差商近似表示。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)根据微分方程的定义使用近似来计算下一个点的值。
欧拉方法的计算简单,但是由于误差累积,精度较低。
2. 改进欧拉方法为了提高欧拉方法的精度,改进欧拉方法应运而生。
改进欧拉方法通过使用两个点的斜率的平均值来计算下一个点的值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)根据微分方程的定义使用近似来计算下一个点的值。
改进欧拉方法相较于欧拉方法而言,精度更高。
3. 龙格-库塔法龙格-库塔法(Runge-Kutta)是常微分方程数值解法中最常用的方法之一。
它通过迭代逼近精确解,并在每一步中计算出多个斜率的加权平均值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)计算各阶导数的导数值。
(4)根据权重系数计算下一个点的值。
与欧拉方法和改进欧拉方法相比,龙格-库塔法的精度更高,但计算量也更大。
4. 亚当斯法亚当斯法(Adams)是一种多步法,它利用之前的解来近似下一个点的值。
具体步骤如下:(1)确定初始条件,即问题的初值。
(2)选择相应的步长h。
(3)通过隐式或显式的方式计算下一个点的值。
亚当斯法可以提高精度,并且比龙格-库塔法更加高效。
5. 多步法和多级法除了亚当斯法,还有其他的多步法和多级法可以用于解常微分方程。
多步法通过利用多个点的值来逼近解,从而提高精度。
而多级法则将步长进行分割,分别计算每个子问题的解,再进行组合得到整体解。
第6章常微分方程初值问题的解法
ykh 2 k[ (ykx k 1 ) ( yk 1x k 1 1 )]
yk11 29 1yk1k05110
预估-校正Euler方法:
y k 1 0 .90 y k 5 0 .00 k 9 0 .1 5
20
Euler方法
xk
yk
yk y(xk)
0.0 1.000000
0.0
梯形方法
yk
yk y(xk)
1.000000
0.0
续
预估-校正方法
yk
yk y(xk)
1.000000
0.0
0.1 1.000000 0.2 1.010000
4.8×10-3 8.7×10-3
1.004762 1.018594
y(0) 1
其解析解为: y1xe-t2dt x[0,1] 0 很难得到其解析解
4
例如:
y=x+y , x[0,1]
y(0) 1
其解析解为 yx12ex
只有一些特殊类型的微分方程问题能够得到用解析表达式 表示的函数解,而大量的微分方程问题很难得到其解析解。
因此,只能依赖于数值方法去获得微分方程的数值解。
例如:
y=x+y , x[0,1]
y(0) 1
其解析解为:yx12ex
3
但是, 只有一些特殊类型的微分方程问题能够得到用解析 表达式表示的函数解,而大量的微分方程问题很难得到其解 析解。
因此,只能依赖于数值方法去获得微分方程的数值解。
例如:
y =e-x2 ,
x[0,1]
7.5×10-5 1.4×10-4
常微分方程数值解法课件
根据选择的步长,确定当 前时刻的数值解的近似值 。
重复上述步骤,直到达到 所需的时间积分区间终止 点。
龙格-库塔方法的误差分析
误差主要来源于时间步长 的离散化,步长越小,误 差越小。
龙格-库塔方法的收敛性 和稳定性取决于所选步长 和步数。
ABCD
机械工程
在机械工程中,机构的动力学行为可以用常微分方程来描 述,如机器人的运动轨迹、机械臂的姿态等,通过数值解 法可以模拟这些机构的运动。
在金融问题中的应用
股票价格模拟
股票价格的变化可以用常微分方程来描述,通过数值解法可以模 拟股票价格的走势,预测未来的股票价格。
期货价格模拟
期货价格的变化也可以用常微分方程来描述,通过数值解法可以 模拟期货价格的走势,预测未来的期货价格。
可以通过增加步数来减小 误差,但会增加计算量。
在实际应用中,需要根据 具体问题选择合适的步长 和步数,以达到精度和计 算效率的平衡。
05
数值解法的应用
在物理问题中的应用
计算物体运动轨迹
通过数值解法求解常微分方程,可以模拟物体的运动轨迹,如行星 运动轨迹、炮弹弹道等。
模拟振动系统
在物理中,许多系统可以用常微分方程来描述,如弹簧振荡器、电 磁振荡器等,通过数值解法可以模拟这些系统的振动行为。
终止条件
当达到预设的精度或迭代次数时,停止迭代并输出结果。
欧拉方法的误差分析
截断误差
由于欧拉方法使用离散化近似 ,因此存在截断误差。这种误 差的大小取决于步长$h$的选
择。
稳定性
欧拉方法对于某些微分方程可 能是不稳定的,这意味着随着 迭代的进行,解可能会发散或
数值分析中的常微分方程数值求解
数值分析中的常微分方程数值求解常微分方程是自然科学中一类最为普遍的数学模型,涉及到热力学、物理、化工等多个领域。
然而,解常微分方程并非易事。
尤其是当我们面对一些复杂、非线性、多维的方程组时,常微分方程数值求解成为了一个十分关键的问题。
因此,数值求解方法成为了常微分方程研究中的重要组成部分。
本文将介绍一些数值解常微分方程的常见方法和应用。
1. 一般线性方法一般线性方法(general linear methods)是经典的常微分方程数值解法之一。
它以一种特殊的形式给出步进公式:$$ y_{n+1}=\sum_{i=0}^{s-1}\alpha_i y_{n-i}+h\sum_{i=0}^{s-1}\beta_i f(t_{n-i},y_{n-i}) $$ 其中,$y_{n}$为第$n$步的项值,$f(t_n,y_n)$为时间$t_n$处函数$y(t)$的导数。
$\alpha_i$和$\beta_i$是常数,可以通过确定如下特征方程来选择:$$ \sum_{i=0}^{s-1}\alpha_i\ lambda^{i}=0,~(\lambda\in C) $$ 与此同时,也可以通过选择$\beta_i$来使方法达到一定的准确性和稳定性。
2. Runge-Kutta方法比一般线性方法更为流行的方法是Runge-Kutta方法。
通常附加一个或多个修正以获得更好的数值稳定性和误差控制。
第1阶Runge-Kutta方法仅使用导数$f(t_n,y_n)$估算下一个项的值:$$y_{n+1}=y_n+hf(t_n,y_n)$$ 许多高阶方法可以使用中间的“插值”来更准确地估计下一个步骤:$$y_{n+1}=y_n+h\sum_{i=1}^kb_ik_i$$$$k_i=f(t_n+c_ih,y_n+h\sum _{j=1}^{i-1}a_{ij}k_j)$$ $k_i$是第$i$台车的估计值,$a_{ij}$和$b_i$在经典Runge-Kutta方法和其他变体中具有不同的取值。
第六章_常微分方程初值问题的数值解法_习题课
h2 h3 y ( x n ) y ( x n ) O(h 4 ) 2 6 而且 y ( x n ) f ( x n , y ( x n )) , y ( x n 1 ) f ( x n 1 , y ( x n 1 )) ,对 y ( x n 1 ) 也在 x n 处作 Talor 展开, y ( x n 1 ) y ( x n ) hy ( x n )
湖北民族学院理学院《数值计算方法》教学辅导材料
陈以平编写
h2 h3 y ( x n ) y ( x n ) O(h 4 ) 2 6 h h h2 h3 y ( x n ) y ( x n ) y ( x n ) y ( x n ) y ( x n ) O(h 4 ) 2 2 2 12 h3 y ( x n ) O(h 4 ) O(h 3 ) 12 h3 所以,梯形公式是 2 阶方法,其截断误差的主项是 y ( x n ) 。 12 y ( x n ) hy ( x n )
y k (0.9 0.1y k sin x k ) 0.1( y k 1 y k 1 sin x k 1 )
2
当 k=0,x0=1, y0=1 时,x1=1.2,有 y y (. . y sin x ) (. sin ) .
y f ( x, y ) 3.求解初值问题 欧拉法的局部截断误差是( y ( x ) y 改进欧拉法的局部截断误差是( ); 四阶龙格-库塔法的局部截断误差是( ). (A)O(h2) (B)O(h3) (C)O(h4) (D)O(h5)
4. 改进欧拉法的平均形式公式是( ) y p y k hf ( x k , y k ) y p y k hf ( x k , y k ) (B) y c y k hf ( x k , y p ) .(A) y c y k hf ( x k , y p ) y k ( y p y c ) y k ( y p y c ) y p y k hf ( x k , y k ) y p y k hf ( x k , y k ) (C) y c y k hf ( x k , y p ) (D) y c y k hf ( x k , y p ) y k h ( y p y c ) y k ( y p y c ) (D) 答案:
第6章 常微分方程数值解法-文档资料
for i=1:5 y=(1-h)*y+h*x x=x+h; end
科大研究生学位课程
数值分析
6.1.2 欧拉格式的改进
对微分方程 y'd yf(x,y) , x [a,b] dx
所以,有格式为:
yi 1yih 2[f(xi,yi)f(xi 1,yi 1)]
上式称为梯形格式。
类似,可以算出梯形格式的误差估计式:
i1 O(h3)
2阶的方法
梯形法是二阶、隐式单步的方法,要用迭代法求解。怎么求?
科大研究生学位课程
数值分析
改进欧拉格式 /* modified Euler’s Formula */
科大研究生学位课程
数值分析
微分方程的数值方法。求的是在一系列离散点列上,未知 函数y(x)在这些点上的值的近似。 为了考察数值方法提供的数值解,是否有实用价值,需要 知道如下问题:
① 步长充分小时,所得到的数值解能否逼近问题得真解; 即收敛性问题 ② 误差估计,主要考虑局部截断误差。 ③ 产生的舍入误差,在以后得各步计算中,是否会无限
计算定积分,则: d xi1 y xi1 f(x,y)dx
xi
xi
y(xi1)y(xi)xxii1 f(x,y)dx
用左矩形公式 x x ii 1f(x ,y (x )d ) x f(x i,y (x i)()x i 1 x i)
y ( x i 1 ) y i f( x i,y ( x i)x ) i 1 ( x i)
数值分析
例6.1:考虑初值问题:
总结第6章常微分方程数值解法
第6章 常微分方程数值解法
相关定义
阶数:微分方程中出现的未知函数的最高 阶导数的阶数。
线性微分方程:如果未知函数y及其各阶导 数都是一次的。
非线性微分方程: 一阶常微分方程
第6章 常微分方程数值解法
典型方程的解法:可分离变量法,常系数齐 次线性方程的解法,常系数非齐次线性方程 的解法 。
单步迭代法:计算yi+1时只用到xi+1, xi, yi。
代表:龙格—库塔法
多步迭代法:计算yi+1时除用到xi+1, xi, yi,
还用到xi-p, yi-p (p=1,2, …k)。 代表:亚当斯法
第6章 常微分方程数值解法
§2 欧拉法和改进的欧拉法 一、欧拉法基本思想
dy dx
f
(x, y)
y(x0 ) y0
离散结点a=x0<x1<x2<…<xn=b, h= xi-xi-1 xi=x0+ih
积分曲线上每一点(x,y)的切线的斜率y'(x)等 于函数f(x,y)在该点的值
第6章 常微分方程数值解法
y-y0=f(x0,y0)(x-x0)⇒ y1=y0+f(x0,y0)(x1-x0)=y0+f(x0,y0)h y-y1=f(x1,y1)(x-x1)⇒ y2=y1+f(x1,y1)(x2-x1)=y1+f(x1,y1)h
但能求解的常微分方程仍然是有限的,
大多数的常微分方程是不可能给出解析解的。
如 y' x2 y2,
y' y y(0) 1
第6章 常微分方程数值解法
从实际问题中归纳出来的微分方程, 通常主要依靠数值解法来解决。也就是 求在某些点上满足一定精度的近似解。
计算方法 第6章 常微分方程数值解
已知Euler格式 yn1 yn hf ( xn , yn )
h2 y( xn1 ) yn1 2 y''( xn )
即Euler格式具有一阶精度
如果令
y( xn1 ) y( xn1 ) 2h
y'( xn )
f ( xn , yn )
并假定 y( xn1 ) yn1, y( xn ) yn
常微分方程数值解
常微分方程的数值解法
§1 引 言 §2 欧拉方法 §3 龙格-库塔方法
2
§1 引 言
在工程和科学技术的实际问题中,常需要解常微 分方程。但常微分方程组中往往只有少数较简单和典 型的常微分方程(例如线性常系数常微分方程等)可 求出其解析解。对于变系数常微分方程的解析求解就 比较困难,而一般的非线性常微分方程就更不用说了。 在大多数情况下,常微分方程只能用近似法求解。这 种近似解法可分为两大类:一类是近似解析法,如级 数解法、逐次逼近法等;另一类则是数值解法,它给 出方程在一些离散点上的近似解。
yn
2
xn yn
令 h 0.1 将 x0 0, y0 1 代入Euler格式
步进计算结果见P106表5.1
第五章:常微分方程数值解
Euler值
y 1 2x
第五章:常微分方程数值解
Euler格式的误差分析
pn1
事实上Euler格式的每一步都存在误差,为了方便讨论y算( x)
d2x
dt 2 x(t
0
c
m )
x x
0
0 (t
t) 0
x(t ) x
0
0
5
大学数值计算方法(第6章 常微分方程数值解法)
1 3 2 (3) 取1 , 可得2 , , 又有算式 4 4 3 1 ( yn 1 yn 4 k1 3k 2 ) k1 hf ( xn , yn ) 2 2 k 2 hf ( xn h, yn k1 ) 3 3 这也是二阶R - K方法。
初值问题的Euler方法
为实现这一目标,Euler方法首先将微分算子离 散化,并用xn 代替x0 , 于是该式可离散为: y ( xn h ) y ( xn ) f ( xn , y ( xn )) h 以yn 表示y ( xn )的近似值,则有 yn 1 yn hf ( xn , yn ) (n 0,1,2,...) 算出y1 , y2 , y3 ...。 (1)
~ ~
误差概述
定义6.1. 如果给果给定的算法的截断 2 误差为 Tn 1 O(h p 1 )
p 1
则称该算法具有p阶精度。如果 Tn 1 g ( xn ,y ( xn )) h O(h
p2
)
则非零项g ( xn , y ( xn )) h p 1称为为局部截断误差主。
1 yn 1 yn (k1 k 2 ) 2 2 xn 改进的Euler法: k1 0.1( yn ) yn 2( xn 0.1) k 2 0.1( yn k1 ) yn k1 计算结果如下表所示:
(n 0,1,2,...)
( yn0 )1 yn hf ( xn , yn ) (3) h ( k 1) (k ) yn 1 yn 2 [ f ( xn , yn ) f ( xn 1 , yn 1 )] (k 0,1,2,...) ( ( 当 | ynk 1) ynk ) | 1 ( 时, 取yn 1 ynk 1) 1
第6章常微分方程数值解法
对y′=f(x,y)等式两边在(xi,xi+1)上取积分
xi1y'dx xi1 f(x,y(x)d ) x
xi
xi
《 计 算
y(xi1)y(xi)xxii1f(x,y(x)d ) x
方 法
(xi+1,yi+1)
》
(xi,yi)
xi
xi+1
第6章 常微分方程数值解法
xi 1
方 法
i0,1,2,...
》
(xi+1,yi+1)
这样得到的点列仍
(xi,yi)
为一折线,只是用 平均斜率来代替原
来一点处的斜率。
xi
xi+1
改进的欧拉公式,又称为梯形公式
第6章 常微分方程数值解法
《 计 算 方 法 》
第6章 常微分方程数值解法
不难发现:
欧拉公式 yi+1=yi +hf(x i,yi)
《 初值问题(6.1)(6.2)的数值解法的基本特点是:
计
算
求解过程顺着节点排列的顺序一步步向前推进,
方
法 》
也即按递推公式由y0,y1…..yi推yi+1,下面各种方法的
实质是建立递推公式。
第6章 常微分方程数值解法
§2 欧拉法和改进的欧拉法
一、欧拉方法
1. 基本思想
《
计 算
区间[a,b]上给定n+1个点x0,x1,x2,……xn
法
》
0.8 0.587322 0.527792
1.0 0.399383 0.367879
1.2 0.239630 0.236938
可见欧拉法的精度是很差的
第六章常微分方程数值解法
三阶龙格-库塔法和四阶龙格-库塔法的计算公式也是有无 穷多个。
四阶龙格-库塔法计算举例 四阶龙格 库塔法计算举例
例 取步长h=0.2,用四阶龙格-库塔公式求下面初值问题的数值解。
解
y' = y − 2yx (0 ≤ x ≤1 ) y(0) =1
由标准的四阶龙格-库塔公式 0, y =1 h = 0.2 f (x, y) = y − 2x / y, x0 = 0 ,
第三节 线性多步法
前面讨论的各种方法,计算yi+1时只使用yi的值,统称为
单步法。在计算yi+1时我们可以使用前面的k个yi的值,即
由yi , yi-1 ,yi -2,…, yi-k+1计算yi+1 ,这便称为多步法。 下面讨论常用的四阶阿当姆斯(亚当斯)线性多步法。
线性多步法的基本思想
我们知道初值问题 y' = f (x, y) y(x0 ) = y0 与积分方程
h 2
龙格-库塔法 第二节 龙格 库塔法
欧拉公式 可写为
y0 = y(x0 ) (i = 0,1 2,...) , yi+1 = yi + hf (xi , yi )
yi+1 = yi + k1 其 部 断 差 o(h2 )。 局 截 误 为 k1 = hf (xi , yi )
p yi(+1) = yi + hf (xi , yi )(预 ) 测 (c) h p yi+1 = yi + [ f (xi , yi ) + f (xi+1, yi(+1) )] 校 ) ( 正 yi + k1 + k2 2 k1 = hf (xi , yi ) 其局部 截断误 差为 (h3 ) o k = hf (x + h, y + k ) i i 1 2
数值计算方法复习资料
《数值计算方法》复习资料(总20页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--《数值计算方法》复习资料课程的性质与任务数值计算方法是一门应用性很强的基础课,在学习高等数学,线性代数和算法语言的基础上,通过本课程的学习及上机实习、使学生正确理解有关的基本概念和理论,掌握常用的基本数值方法,培养应用计算机从事科学与工程计算的能力,为以后的学习及应用打下良好基础。
第一章数值计算方法与误差分析一考核知识点误差的来源类型;绝对误差和绝对误差限,相对误差和相对误差限,有效数字;绝对误差的传播。
二复习要求1. 知道产生误差的主要来源。
2. 了解绝对误差和绝对误差限、相对误差和相对误差限和有效数字等概念以及它们之间的关系。
3. 知道四则运算中的误差传播公式。
22三例题例1设x*= =…近似值x==×101,即m=1,它的绝对误差是- 592 6…,有即n=3,故x=有3位有效数字.x=准确到小数点后第2位.又近似值x=,它的绝对误差是…,有即m=1,n=5,x=有5位有效数字.而近似值x=,它的绝对误差是…,有即m=1,n=4,x=有4位有效数字.这就是说某数有s位数,若末位数字是四舍五入得到的,那么该数有s位有效数字;例2 指出下列各数具有几位有效数字,及其绝对误差限和相对误差限:4 - 00 9 000 9解因为x1= 4= 04×101, 它的绝对误差限 05=×10 1―5,即m=1,n=5,故x= 4有5位有效数字. a1=2,相对误差限33x=- 00,绝对误差限 005,因为m=-2,n=3,x2=- 00有3位有效2数字. a1=2,相对误差限r== 5x=9 000,绝对误差限为×100,因为m=4, n=4, x3=9 000有4位有效数3字,a=9,相对误差限r== 056x=9 ,绝对误差限,因为m=4,n=6,x4=9 有6位有效数字,相对误4差限为r== 000 56由x3与x4可以看到小数点之后的0,不是可有可无的,它是有实际意义的.例3ln2=0.…,精确到10-3的近似值是多少?解精确到10-3=,意旨两个近似值x1,x2满足,由于近似值都是四舍五入得到的,要求满足,近似值的绝对误差限应是=,故至少要保留小数点后三位才可以。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6.1 初值问题的Euler方法
设一阶常微分方程初值问题 dy f ( x, y ) dx y ( x0 ) y0 记 xn a nh (n 0,1,2,...), h 0为步长,一般总 假定为常数。该式的数值解是指通过某种方法 去获得解y ( x)在点xn 上的近似值yn , 即 y ( xn ) y n (n 0,1,2,...)
误差概述
一般说来,一个算法,局部截断 误差阶p 越大, 则精度相对的越高。 h2 对于显式Euler法:Tn 1 y( xn ) O(h 3 ) 2 h2 对于隐式Euler法:Tn 1 y( xn ) O( h 3 ) 2 h3 ( xn ) O (h 4 ) 对于梯形公式:Tn 1 y 2
这就是隐式的`Euler 公式或向后Euler方法,它与显式 的不同在于,它每算一步要解函数方程(2)才能得到 yn 1。
初值问题的Euler方法
如果取以上两式的算术平均值的结果,则得 h yn 1 yn [ f ( xn , yn ) f ( xn 1 , yn 1 )] (n 0,1,2,...) 2 称为梯形公式。 计算yn时常用以下迭代式:
~ ~
误差概述
定义6.1. 如果给果给定的算法的截断 2 误差为 Tn 1 O(h p 1 )
p 1
则称该算法具有p阶精度。如果 Tn 1 g ( xn ,y ( xn )) h O(h
p2
)
则非零项g ( xn , y ( xn )) h p 1称为为局部截断误差主。
1 yn 1 yn (k1 k 2 ) 2 2 xn 改进的Euler法: k1 0.1( yn ) yn 2( xn 0.1) k 2 0.1( yn k1 ) yn k1 计算结果如下表所示:
(n 0,1,2,...)
初值问题的Euler方法
对于( 2)计算yn 1 ,由于迭代工作量较大, 一般只 迭代一次, 构成一类预估 校正算法, 即
( p) yn 1 yn hf ( xn , yn ) h (c) ( p) yn ` yn [ f ( xn , yn ) f ( xn 1 , yn 1 )] 2 ( 并取yn 1 ync )1。
6.1.2 误差概述
显式单步法一般形式为 yn 1 yn h ( xn , yn , h) 而隐式单步法一般形式为 yn 1 yn h ( xn , yn , xn 1 , yn 1 , h) 函数与f ( x, y )有关,称为增量函数。
误差概述
定义6.1.1 从初值y ( x0 ) y0出发,由单步法显式
或隐式逐步计算,得xn 1的值yn 1 , 则en 1 y ( xn 1 ) yn 1 称为在点xn 1上的整体截断误差。如果第n步在点xn的 值计算没有误差,即yn y ( xn ),由单步法计算出 y n 1 , 则Tn 1 y ( xn 1 ) y n 1 , 称为点xn 1上的局部截断误差。
于是 yn 1 y ( xn ) (1 2 )hy( xn ) [ 2 f x( xn , yn ) 2 f ( xn , yn ) f y ( xn , yn )]h 2 O(h3 )
Runge-Kutta方法
与Taylor展式相比较得 : 1 2 1 1 2 2 2 1 2 由于四个参数,三个方程,因此有一个 自由参数,即解答不唯一。
这就是显式的`Euler公式,它可以从y0出发,逐次
初值问题的Euler方法
如果用xn 1代替x0 , 于是该式可离散为: y ( xn h ) y ( xn ) f ( xn 1 , y ( xn 1 )) h 以yn 表示y ( xn )的近似值,则有 yn 1 yn hf ( xn 1 , yn 1 ) (n 0,1,2,...) ( 2)
初值问题的Euler方法
例6.1.1 设初值问题
2x dy y y dx y (0) 1 试分别用Euler法和改进Euler法求解, 并与 精确解y 1 2 x 进行比较。
初值问题的Euler方法
解:取h 0.1, 计算x [0,1]上结果,此时 2 xn Euler法:yn 1 yn 0.1( yn ) yn (n 0,1,2,...)
( yn0 )1 yn hf ( xn , yn ) (3) h ( k 1) (k ) yn 1 yn 2 [ f ( xn , yn ) f ( xn 1 , yn 1 )] (k 0,1,2,...) ( ( 当 | ynk 1) ynk ) | 1 ( 时, 取yn 1 ynk 1) 1
证明:由式(2)和(3)有 | y n 1 y
(k 1) n 1
h ( ) | | f ( xn 1 , yn 1 ) f ( xn 1 , ynk 1 ) | 2 hL ( ) | yn 1 ynk 1 | 2 ......
hL k 1 ( ( ) | yn 1 yn0 )1 | 2 hL k 1 ( 由假设知 : lim ( ) 0 , 故有 lim ynk 1) yn 1。 1 k 2 k
初值问题的Euler方法
定理6.1.1 设函数f ( x, y )对变量y满足Lipschitz
hL 条件,L为Lipschitz常数。如果步长h满足0 1, 2 2 ( ) 即h 时,则由(3)产生的序列{ ynk 1}( k 0,1,2...) L 收敛。
初值问题的Euler方法
1 1 (1) 取1 , 可得2 , 1, 此时算式为 2 2 1 yn 1 yn 2 (k1 k 2 ) k1 hf ( xn , yn ) k hf ( x h, y k ) n n 1 2 这是改进的Euler方法。
~ ~
数值稳定性分析
定义6.1.3 若某数值算法的绝对稳定性区 域包含hλ平面上的左半平面Re(hλ)<0, 则称该方法是A稳定的。 隐式Euler法是A稳定的。
6.2 Runge-Kutta方法
受改进的Euler方法启发,更一般算式可设为 yn 1 yn 1k1 2 k 2 (n 0,1,2,...) k1 hf ( xn , yn ) k hf ( x h, y k ) n n 1 2 适当选择参数1,2,,,使局部截断误差 Tn 1 y ( xn 1 ) yn 1 O(h ), 这里仍假定yn y ( xn )。
1 3 2 (3) 取1 , 可得2 , , 又有算式 4 4 3 1 ( yn 1 yn 4 k1 3k 2 ) k1 hf ( xn , yn ) 2 2 k 2 hf ( xn h, yn k1 ) 3 3 这也是二阶R - K方法。
初值问题的Euler方法
上式还常写成 1 yn 1 yn 2 f (k1 k 2 ) k1 hf ( xn , yn ) k hf ( x h, y k ) (n 0,1,2,...) n n 1 2 该式称为改进Euler方法, 亦可写成 h yn 1 yn [ f ( xn yn ) f ( xn 1 , yn hf ( xn , yn ))] 2
Runge-Kutta方法
1 (2) 取1 0, 可得2 1, , 此时算式为 2 yn 1 yn k 2 k1 hf ( xn , yn ) 1 1 k 2 hf ( xn h, yn k1 ) 2 2 这是二阶R - K方法.
初值问题的Euler方法
为实现这一目标,Euler方法首先将微分算子离 散化,并用xn 代替x0 , 于是该式可离散为: y ( xn h ) y ( xn ) f ( xn , y ( xn )) h 以yn 表示y ( xn )的近似值,则有 yn 1 yn hf ( xn , yn ) (n 0,1,2,...) 算出y1 , y2 , y3 ...。 (1)
3
Runge-Kutta方法
由二元函数Taylor展开式 : k 2 hf ( xn , yn ) h 2 f x( xn , yn ) hk1 f y ( xn , yn ) O(h 3 ) hy( xn ) h 2 (f x( xn , yn ) f ( xn , yn ) f y ( xn , yn )) O(h 3 )
x
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.000 1.000000 1.191818 1.277438 1.358213 1.435133 1.508966 1.580338 1.649783 1.717779 1.784770
改进的Euler法y 精确解
1.000000 1.095909 1.184097 1.266201 1.343360 1.416402 1.485956 1.552514 1.616475 1.678166 1.737867 1.000000 1.095445 1.183216 1.264911 1.341641 1.414214 1.483240 1.549193 1.612452 1.673320 1.732051
第6章 常微分方程数值解法
绪论
在工程和科学计算中,所建立的各 种常微分方程的初值或边值问题,除很 少几类的特殊方程能给出解析解,绝大 多数的方程是很难甚至不可能给出解析 解的,其主要原因在于积分工具的局限 性。因此,人们转向用数值方法去解常 微分方程,并获得相当大的成功,讨论 和研究常微分方程的数值解法是有重要 意义的。