常微分方程数值解法

合集下载

第七章常微分方程数值解法

第七章常微分方程数值解法

h2 h3 y ( xi 1 ) y ( xi h) y ( xi ) hy '( xi ) y ''( xi ) y '''( xi ) 2! 3!
丢掉高阶项,有
y( xi 1 ) y( xi h) y( xi ) hy '( xi ) yi hf ( xi , yi )
| f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | ,
那么模型问题在 [ a, b] 存在唯一解。
Lipschitz 连续: | f ( x, y1 ) f ( x, y2 ) | L | y1 y2 | .
(1) 比连续性强: y1 y2 可推出 f ( x, y1 ) f ( x, y2 ) ; (2) 比连续的 1 阶导弱:具有连续的 1 阶导,则
f | f ( x, y1 ) f ( x, y2 ) || ( ) || y1 y2 | L | y1 y2 | . y
常微分方程数值解法
目标:计算出解析解 y ( x) 在一系列节点 a x0 x1 xn1 xn b 处的近似值 yi y( xi ) ,即所谓的数值解。节点间距 hi xi 1 xi ,一般 取为等距节点。
常微分方程初值问题的数值解法一般分为两大类: (1)单步法:在计算 yn 1 时,只用到前一步的值,即用到 xn1 , xn , yn ,则给定初
值之后,就可逐步计算。例如 Euler 法、向后欧拉法、梯形公式、龙格-库塔法;
(2) 多步法: 这 类 方 法 在 计算 yn 1 时 , 除 了 用 到 xn1 , xn , yn 外 , 还 要 用到

常微分方程数值解法

常微分方程数值解法

介绍常微分方程数值解法常微分方程(ordinary differential equations,ODE)可用于描述许多日常存在的物理系统。

处理ODE问题常常被称为数值求解法,这指的是找到概括ODE或者其他适用于数学模型的解决方案来模括这些ODE。

这种解决方案可能在一系列不同方案中发挥重要作用,以此来提供更好的解释和预测。

常微分方程与几何图形更为相关,它利用二维或者三维空间中曲线的绘制以及分析。

通过引入一些不同的方法,可以对不同的常微分方程中的量进行描述,使得可以通过数值方法的解析来进行研究。

数值解法可能是时间消耗较多的,但有助于验证几何图形中的某些过程,以此帮助揭示数学模型。

四种常见的常微分方程数值解法四种常见的常微分方程数值解法是:前向差分法、向后差分法、中点法和全分方法。

•前向差分法:前向差分法的基本概念是利用ODE的特定解来表达时间步的影响。

这是一种基本的数值法,可以在ODE中确定任意位置的点作为终点。

在这里,任何这样的点都可以表示为ODE右边的时间步。

•向后差分法:它是反过来基于前向差分法。

它要求对ODE中的时间步进行逆向推导,以获得某一特定点的解。

向后差分法要求推导反向解中点,以便可以从每一步中获取该点的解。

•中点法:这是一种非常基本的数值解法,可以用来求解ODE中的某一步的解,但不具有直观的方法解释。

主要的思想是在每一次时间步中通过求出ODE的中点来寻找解。

•全分方法:这是一种更复杂的数值解法,它要求将ODE中的每一步解细分并解决。

与前面提到的三种解法不同,它首先要求将ODE分解成若干离散区间,然后计算每一段区间中的点。

这种解法可以更准确地进行处理,但时间消耗较多,因此比较少被使用。

优化方案在需要解决常微分方程时,为了得到最佳的结果,有必要考虑一些优化措施。

•首先,应考虑将一个复杂的ODE拆分成一些更易解决的问题。

这样做的结果是,预见到解决此ODR的总耗时将会降低。

•其次,为了加快计算速度,可以考虑使用预解算法。

常微分方程的数值解法

常微分方程的数值解法

常微分方程的数值解法1. 引言常微分方程是自变量只有一个的微分方程,广泛应用于自然科学、工程技术和社会科学等领域。

由于常微分方程的解析解不易得到或难以求得,数值解法成为解决常微分方程问题的重要手段之一。

本文将介绍几种常用的常微分方程的数值解法。

2. 欧拉方法欧拉方法是最简单的一种数值解法,其具体步骤如下:- 将自变量的区间等分为n个子区间;- 在每个子区间上假设解函数为线性函数,即通过给定的初始条件在每个子区间上构造切线;- 使用切线的斜率(即导数)逼近每个子区间上的解函数,并将其作为下一个子区间的初始条件;- 重复上述过程直至达到所需的精度。

3. 改进的欧拉方法改进的欧拉方法是对欧拉方法的一种改进,主要思想是利用两个切线的斜率的平均值来逼近每个子区间上的解函数。

具体步骤如下: - 将自变量的区间等分为n个子区间;- 在每个子区间上构造两个切线,分别通过给定的初始条件和通过欧拉方法得到的下一个初始条件;- 取两个切线的斜率的平均值,将其作为该子区间上解函数的斜率,并计算下一个子区间的初始条件;- 重复上述过程直至达到所需的精度。

4. 二阶龙格-库塔方法二阶龙格-库塔方法是一种更为精确的数值解法,其基本思想是通过近似计算解函数在每个子区间上的平均斜率。

具体步骤如下: - 将自变量的区间等分为n个子区间;- 在每个子区间上计算解函数的斜率,并以该斜率的平均值近似表示该子区间上解函数的斜率;- 利用该斜率近似值计算下一个子区间的初始条件,并进一步逼近解函数;- 重复上述过程直至达到所需的精度。

5. 龙格-库塔法(四阶)龙格-库塔法是目前常用的数值解法之一,其精度较高。

四阶龙格-库塔法是其中较为常用的一种,其具体步骤如下:- 将自变量的区间等分为n个子区间;- 在每个子区间上进行多次迭代计算,得到该子区间上解函数的近似值;- 利用近似值计算每个子区间上的斜率,并以其加权平均值逼近解函数的斜率;- 计算下一个子区间的初始条件,并进一步逼近解函数;- 重复上述过程直至达到所需的精度。

第7章 常微分方程数值解法

第7章  常微分方程数值解法

代入(6―3)式得
h yi 1 yi [ f ( xi , yi ) f ( xi 1 , yi 1 )] 2 i 0,1, 2, , n 1
(6―5)
这样得到的点列仍为一折线,只是用平均斜率 来代替原来一点处的斜率。式(6―5)称为改进的欧拉 公式。
不难发现,欧拉公式(6―3)是关于yi+1 的显式,只
h y xi 1 yi 1 f xi 1 , y xi 1 f xi 1 , yi 1 2 (6―15) h 3 '' f 12
因此
hL h3 y ( xi 1 ) yi 1 y ( xi 1 ) yi 1 f ( ) 2 12 h3 (1 q) y ( xi 1 ) yi 1 f ( ) 12 y ( xi 1 ) yi 1 O ( h 3 )
c 并取 yi 1 yi(1)
(6―7)
虽然式(6―7)仅迭代一次,但因进行了预先估计,
故精度却有较大的提高。 在实际计算时,还常常将式(6―7)写成下列形式:
k1 f ( xi , yi ) k f ( x h, y hk ) i i 1 2 h yi 1 yi 2 (k1 k2 ) i 0,1, 2,
在进行误差分析时,我们假设yi=y(xi),考虑用
yi+1 代替y(x
i+1)而产生截断误差,确定欧拉公式和改
进的欧拉公式的精确度。 设初值问题(6―1)的准确解为y=y(x),则利用泰 勒公式
y ( xi 1 ) y ( xi h ) h2 y ( xi ) hy ( xi ) y ( xi ) 2! h3 y ( xi ) 3!

常微分方程的数值解法

常微分方程的数值解法
第九章 常微分方程的数值解法
主要内容
§1、引言 §2、初值问题的数值解法--单步法 §3、龙格-库塔方法 §4、收敛性与稳定性 §5、初值问题的数值解法―多步法 §6、方程组和刚性方程 §7、习题和总结
§1、 引 言 主要内容 ➢研究的问题 ➢数值解法的意义
1.什么是微分方程 ? 现实世界中大多数事物
使得对任意的x [a,b]及y1, y2都成立
则称 f (x,y) 对y 满足李普希兹条件,L 称为 Lipschitz常数.
就可保证方程解的存在唯一性
若 f (x,y) 在区域 G连续,关于y
满足李普希兹 条件
一阶常微分方程的初值问题的解存在且唯一. 我们以下的讨论,都在满足上述条件下进行.
一阶常微分方程组常表述为:
y(x0
)
y0
(1.2)
种 数 值 解

其中f (x,y)是已知函数,(1.2)是定解条件也称为 初值条件。
常微分方程的理论指出:
当 f (x,y) 定义在区域 G=(a≤x≤b,|y|<∞)
若存在正的常数 L 使:
(Lipschitz)条件
| f (x, y1) f (x, y2) | L | y1 y2 | (1.3)
节点 xi a ihi,一般取hi h( (b a) / n)即等距
要计算出解函数 y(x) 在一系列节点
a x0 x1 xn b
处的近似值 yi y(xi )
y f (x, y)
y
(
x0
)
y0
a xb
(1.1) (1.2)
对微分方程(1.1)两端从 xn到xn1 进行积分
内部联系非常复杂
其状态随着 时间、地点、条件 的不同而不同

常微分方程数值解法

常微分方程数值解法

ρ ρ
n+1 n
≤1
三、梯形公式
由 分 径 y ( xn+1) = y ( xn) + 积 途 : xn+1

f ( x, y)dt

积分 梯形 式 且令:yn+1 = y( xn+1), yn = y( xn) 用 公 , h 则 yn+1 = yn + ( f (xn , yn) + f (xn+1 , yn+1)) 得: 2
第九章 常微分方程数值解法
§1 、引言
一 常 分 程 初 问 : 阶 微 方 的 值 题 dy dx = f (x, y) y( x0) = y0
'
a ≤ x ≤b
2 y 例 : 方 程 xy -2 y = 4 x ⇒ y = + 4 x 2 y 令 :f ( x , y ) = + 4 且 给 出 初 值 y (1 )= -3 x 就 得 到 一 阶 常 微 分 方 程 的 初 值 问 题 : 2 y dy = f (x, y) = + 4 dx x y(1) = − 3
n n n n n 2 // n n+1
~
y
n+1
= yn + hf ( xn, yn ) = y(xn) + hf
n+1
~
y
n+1
( x , y( x ))
n n
则 T = y( x ) − = h y (ξ ) x y 2 ~
// n+1 n+1
2
n
< ξ < xn+1

常微分方程组数值解法

常微分方程组数值解法

常微分方程组数值解法一、引言常微分方程组是数学中的一个重要分支,它在物理、工程、生物等领域都有广泛应用。

对于一些复杂的常微分方程组,往往难以通过解析方法求解,这时候数值解法就显得尤为重要。

本文将介绍常微分方程组数值解法的相关内容。

二、数值解法的基本思想1.欧拉法欧拉法是最基础的数值解法之一,它的思想是将时间连续化,将微分方程转化为差分方程。

对于一个一阶常微分方程y'=f(x,y),其欧拉公式为:y_{n+1}=y_n+hf(x_n,y_n)其中h为步长,x_n和y_n为第n个时间点上x和y的取值。

2.改进欧拉法改进欧拉法是对欧拉法的改良,其公式如下:y_{n+1}=y_n+\frac{h}{2}[f(x_n,y_n)+f(x_{n+1},y_n+hf(x_n,y_n))] 3.四阶龙格-库塔方法四阶龙格-库塔方法是目前最常用的数值解法之一。

其公式如下:k_1=f(x_n,y_n)k_2=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_1)k_3=f(x_n+\frac{h}{2},y_n+\frac{h}{2}k_2)k_4=f(x_n+h,y_n+hk_3)y_{n+1}=y_n+\frac{h}{6}(k_1+2k_2+2k_3+k_4)其中,k_i为中间变量。

三、常微分方程组的数值解法1.欧拉法对于一个二阶常微分方程组:\begin{cases} y'_1=f_1(x,y_1,y_2) \\ y'_2=f_2(x,y_1,y_2)\end{cases}其欧拉公式为:\begin{cases} y_{n+1,1}=y_{n,1}+hf_1(x_n,y_{n,1},y_{n,2}) \\y_{n+1,2}=y_{n,2}+hf_2(x_n,y_{n,1},y_{n,2}) \end{cases}其中,x_n和y_{n,i}(i=1, 2)为第n个时间点上x和y_i的取值。

常微分方程数值解法

常微分方程数值解法

欧拉方法
总结词
欧拉方法是常微分方程数值解法中最基础的方法之一,其基本思想是通过离散化时间点上的函数值来 逼近微分方程的解。
详细描述
欧拉方法基于微分方程的局部线性化,通过在时间点上逐步逼近微分方程的解,得到一系列离散点上 的近似值。该方法简单易行,但精度较低,适用于求解初值问题。
龙格-库塔方法
总结词
影响
数值解法的稳定性对计算结果的精度和可靠 性有重要影响。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有稳定性和收敛性。
数值解法的收敛性
定义
数值解法的收敛性是指随着迭代次数的增加, 数值解逐渐接近于真实解的性质。
影响
数值解法的收敛性决定了计算结果的精度和 计算效率。
分类
根据收敛速度的快慢,可以分为线性收敛和 超线性收敛等。
判断方法
通过分析数值解法的迭代公式或离散化方法, 判断其是否具有收敛性。
误差分析
定义
误差分析是指对数值解法计算过程中 产生的误差进行定量分析和估计的过 程。
分类
误差可以分为舍入误差、截断误差和 初始误差等。
影响
误差分析对于提高计算精度和改进数 值解法具有重要意义。
分析方法
通过建立误差传递公式或误差估计公 式,对误差进行定量分析和估计。
生物学
生态学、生物种群动态和流行病传播 等问题可以通过常微分方程进行建模
和求解。
化学工程
化学反应动力学、化学工程流程模拟 等领域的问题可以通过常微分方程进 行描述和求解。
经济学
经济系统动态、金融市场模拟和预测 等问题可以通过常微分方程进行建模 和求解。
02 常微分方程的基本概念
常微分方程的定义
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章 常微分方程数值解法常微分方程中只有一些典型方程能求出初等解(用初等函数表示的解),大部分的方程是求不出初等解的。

另外,有些初值问题虽然有初等解,但由于形式太复杂不便于应用。

因此,有必要探讨常微分方程初值问题的数值解法。

本章主要介绍一阶常微分方程初值问题的欧拉法、龙格-库塔法、阿达姆斯方法,在此基础上推出一阶微分方程组与高阶方程初值问题的 数值解法;此外,还将简要介绍求解二阶常微分方程值问题的差分方法、试射法。

第一节 欧拉法求解常微分方程初值问题⎪⎩⎪⎨⎧==00)(),(y x y y x f dxdy(1)的数值解,就是寻求准确解)(x y 在一系列离散节点 <<<<<n x x x x 210 上的近似值 ,,,,,210n y y y y{}n y 称为问题的数值解,数值解所满足的离散方程统称为差分格式,1--=i i ix x h 称为步长,实用中常取定步长。

显然,只有当初值问题(1)的解存在且唯一时,使用数值解法才有意义,这一前提条件由下 面定理保证。

定理 设函数()y x f ,在区域+∞≤≤-∞≤≤y b x a D ,:上连续,且在区域D 内满足李普希兹(Lipschitz)条件,即存在正数L ,使得对于R 内任意两点()1,y x 与()2,y x ,恒有()()2121,,y y L y x f y x f -≤-则初值问题(1)的解()x y 存在并且唯一。

一、欧拉法(欧拉折线法)若将函数)xy 在点nx处的导数()n x y '用两点式代替, 即()hx y x y x y n n n )()(1-≈'+,再用n y 近似地代替()n x y ,则初值问题(1)变为⎩⎨⎧==++=+ ,2,1,0),()(001n x y y y x hf y y n n n n(2)(2)式就是著名的欧拉(Euler)公式。

以上方法称 为欧 拉法或欧拉折线法。

欧拉公式有明显的几何意义。

从几何上看,求解初值问题(1)就是xy 平面上求一条通过点()00,y x 的曲线()x y y =,并使曲线上任意一点()y x ,处的切线斜率为()y x f ,。

欧拉公式的几何意义就是从点)000,y x P 出发作一斜率为()00,y x f 的直线交直线1x x =于点()111,y x P ,1P 点的纵坐标1y 就是()1x y 的近似值;再从点1P 作一斜率为()11,y x f 的直线2x x =交直线于点()222,y x P , 2P 点的纵坐标2y 就是的近似值()2x y ;如此继续进行,得一条折线 210P P P 。

该折线就是解()x y y =的近似图形,如图7-1。

图7-1欧拉法的其它几种解释:1.假设()x y 在n x 附近展开成泰勒级数()()()()()()()()+''++=+''+'+=+n n n n n n n n x y h x y x hf x y x y hx y h x y x y 2,2221取h 的线性部分,并用n y 作为()n x y 的近似值,得 ()n n n n y x hf y y ,1+=+2. 对方程()y x f dxdy,=两边从n x 到1+n x 积分,得()dxx y x f x y x y n nx x n n ⎰+=-+1))(,()(1 (3)用 矩形公式计算上式右侧积分,即 ()()x x x x x d x y x f dx x y x f n nn n⎰⎰++≈11,))(,(并用n y 作为的近似值()n x y ,得()n n n n y x hf y y ,1+=+ 故欧拉法也称为矩形法。

二、改进的欧拉法(梯形法)欧拉法形式简单,低,特别当曲线y=y(x)计算方便,但精度比较的曲率较大时,欧拉法的效果更差。

为了达到较高精度的计算公式,对欧拉法进行改进,用梯形公式计算(3)式 右侧积分,即()()()()[]11,,2))(,(1+++≈⎰+n n n n x x x y x f x y x f h dx x y x f n n并用y n 作为y(x n )的近似值,得到改进 的欧拉公式()()[]111,,2+++++=n n n n n n y x f y x f h y y(4)上述方法称为改进的欧拉法,也称为梯形法。

不难发现,欧拉公式 是 关于y 1+n 的显式,即只要已知y n ,经过一次计算便可得y 1+n 的值,而改进的 欧拉公式是以y 1+n 的隐式方程给出,不能直接得到y 1+n 。

隐式方程(4)通常用 迭代法求解,而迭代过程的实质是逐步显式化。

先用欧拉 公式()()n n n n y x hf y y ,01+=+给出y 1+n 的迭代初值,然后 再用改进的欧拉公式(4)进行迭代,即有[]⎪⎪⎩⎪⎪⎨⎧=++=+=+++++ ,2,1,0),(),(2),()(11)1(1)0(1k y x f y x f h y y y x hf y y k n n n n nk n n n n n (5) 迭代过程进行到连续两次迭代结果之差的绝对值小于给定的精度ε即()εkn k n y y 111+++-为止,这时取()111+++=k n n y y然后再转入下一步计算。

下面讨论(){}kn y 1+是否收敛;若收敛,它的极限是否满足(4)式。

假设f(x,y)满足李普希兹条件 ()()()2121,,y y L y x f y x f -≤- 则()()()()()()()()()()()011122111211111111111222,,2++-+-+-++-+++++++-⎪⎭⎫⎝⎛≤≤-⎪⎭⎫ ⎝⎛≤-≤-=-n n k n k n k n k n k n n k n n k n k n y y hL y y hL y y hL y x f y x f h y y由此可见,只要12<hL (这里只要步长h 足够小即可),当k →∞时,有02→⎪⎭⎫⎝⎛khL ,所以(){}kn y 1+收敛。

又因为f(x ,y)对y 连续,当k →∞时,对等式()()()()[]k n n n nn k n y x f y xf h y y 1111,,2++++++=两端取极限, 得()()[]111,,2+++++=n n n n n n y x f y x f h y y因 此,只要步长h 足够小,就可保证(){}kn y 1+收敛到满足(4)式的1+n y。

三、预估一校正法改进的欧拉公式在实际计算时要进行多次 迭代,因而计算量较大。

在实用上,对于改进的欧拉公式(5)只迭代一次,即先用欧拉公式算出y 1+n 的预估值y)0(1+n ,再用改进的欧拉公式(4)进行一次迭代得到 校正值y 1+n ,即()()[]⎪⎩⎪⎨⎧=++=+=++++ ,2,1,0,,,2),(111)0(1n y x f y x f h y y y x hf y y n n n n n n n n n n (6)预估—校正公式也常写成下列形式:(),2,1,0,,),(2121121211=⎪⎪⎩⎪⎪⎨⎧++==++=+n k y h x hf k y x hf k k k y y n n n n n n (7)四、公式的截断误差定义 若某种微分方程数值解 公式的截断误差是O(h1+k ),则称这种方法是k 阶方法。

为了简化分析,在进行误差分析时,我们假设前一步的结果是准确的,即在 y n =y(x n )的前提下,考虑用y 1+n 作为y(x 1+n )的近似值而产生的截断误差,这种误差称为局部截断误差。

由泰勒公式()()()()()+''+'+=+=+n n n n n x y hx y b x y h x y x y !221对于欧拉公式,有()()()n n n n n n x y h x y y x hf y y '+=+=+,1 于是()()211hO y x y n n =-++则欧拉公式的截断误差为O(2h ),所以 欧拉法是一阶方法。

对于预估—校正公式,有()()()()()()()()()()()[]()()()()()()()[]+'++=+++=++=++='==n n y n n nxn n n n y n n xn n n n n n n n n x y x f x y x y xf hx y x hf x y x f k x y x hf x y x f h k x y h x hf k y h x hf k x y h y x hf k ,,,,,,,,,211121而()()()()()()()()()x y x f x y x y x f x y x y x f x y y x ,,,⋅'+=''='于是()()+''+'=n n x y h x y h k 22因此()()()+''+'+=++=+n n n n n x y hx y h x y k k y y 221212211所以y(x 1+n )- y 1+n = O(3h )则预估—校正公式的截断误差为O(3h ),也即预估—校正法是二阶方法。

可以证明,改进的欧拉公式与预估—校正公式的截断误差相同,均为O(3h )。

这里略去证明。

例 1:在区间[0,1]上以h=0.1为步长,分别用欧拉法与预估— 校正法求初值问题⎪⎩⎪⎨⎧=-=1)0(2y y x y dx dy的数值解解:该方程为贝努利方程,其精确解为x y 21+=欧拉公式的具体形式为⎪⎪⎭⎫ ⎝⎛-+=+nnnn n y x y h y y 21预估—校正公式的具体形式为()⎪⎪⎪⎩⎪⎪⎪⎨⎧⎪⎪⎭⎫⎝⎛++-+=-=++=+11212112)2(2121k y h x k y hf k y x y hf k k k y y n n nn nn n n 取步长1,0,1.000===y x h ,计算结果见下表:表7-1表7-1近似解与准确解比较,欧拉法的结果大致只有两位有效数字,而预估—校正法的结果则 有3位有效数字。

第二节 龙格—库塔法前面讨论的欧拉法与改进的欧拉法都是一步 法,即计算y 1+n 时,只用到前一步值。

龙格—库塔(Runge-Kut ta)法(简称为 R-K 方法)是一类高精度的一步法,这类方法与泰勒级数法有着密 切的关系。

一、泰勒级数法设有初值问题⎪⎩⎪⎨⎧==00)(),(y x y y x f dx dy由 泰勒展开式()()()()()()()()121!!2+++++''+'+=+=k n k kn n n n n hO x yk hx y hx y h x y h x y x y (1)若令()()()()n k kn n n x yk hhx y h x y y !!221+++'+=+ (2)则()()111+++=-k n n hO y x y即公式(2)为k 阶方法。

相关文档
最新文档