数值分析71常微分方程初值问题数值解引言
- 格式:ppt
- 大小:747.00 KB
- 文档页数:26
数值计算中的常微分方程初值问题常微分方程是描述许多自然规律和现象的数学方法之一,常常在科学研究和工程应用中被广泛应用。
求解常微分方程的数值算法称为数值方法,这些方法用于求解微分方程的初始值问题(Initial Value Problem,简称IVP)。
本文将讨论常微分方程初值问题以及数值方法的应用。
1. 常微分方程初值问题常微分方程初值问题是一类形如$y^{\prime}=f(t,y),y(t_0)=y_0$的微分方程。
其中,$f(t,y)$是已知的函数,$y^{\prime}$表示$y$对$t$的导数,$y_0$和$t_0$是已知的初始条件。
将微分方程的解表示为$y=y(t)$,则其在$t=t_0$处的值为$y(t_0)=y_0$。
对于一个给定的常微分方程初值问题,我们需要求出其解$y=y(t)$。
常微分方程的解是一类内禀函数,通常没有解析表达式。
因此,求解微分方程的目标是得到一个数值近似解,以使得这个近似解能够满足应用上的需要。
但是,求解微分方程时需要注意最小化误差,以充分利用计算机资源和减小不确定性。
2. 数值方法数值方法是一种使用数值计算技术快速求解微分方程的方法。
常见的数值方法包括显式欧拉法,向后欧拉法,中点法,龙格–库塔法等。
2.1 显式欧拉法显式欧拉法是最简单的求解微分方程的数值方法之一,它通过计算初始值函数的斜率来求解下一个点的值,使得下一个点的值可读性更高。
具体来说,显式欧拉法使用前项差分公式:$$y_{n+1}=y_n+hf(t_n,y_n)$$其中$t_n=n \cdot h$是离散时间步($h$是时间步长)。
显式欧拉法的误差随时间步长变小。
但显式欧拉法的缺点是它难以处理比较复杂的微分方程,因为这可能需要使用较小的时间步长。
此外,显式欧拉法可能产生的数值不稳定性也是一个挑战。
2.2 龙格-库塔法龙格-库塔方法是一种经典的提高微分方程数值解精度的数值方法。
龙格-库塔法是一类迭代方法,它使用多次计算初始值函数的斜率,以生成更准确的导数值。
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解y′=f(x,y),x∈[x0,b]y(x0)=y0.定理1(利普希茨条件)若存在正数L,使得对任意,y1,y2,有|f(x,y1)−f(x,y2)|≤L|(y1−y2)|定理2(解存在性)①若函数f在方区域x∈[a,b],y∈R连续,②函数f关于y 满足利普希茨条件,则对任意x∈[a,b],常微分方程存在唯一的连续可微数值解.两类问题:①单步法---计算下一个点的值yn+1只需要用到前面一个点的值yn②多步法---计算下一个点的值yn+1需要用到前面l个点的值yl1、欧拉法---下一个点的计算值等于前一个点的计算值加上步长乘以前一个点的函数值•具体过程一些批注:显式欧拉方程指下一步要计算的值,不在迭代方程中;隐式欧拉方程指下一步要计算的值,在迭代方程中。
怎么计算隐式欧拉方程----要借助显示欧拉迭代计算---一般用迭代法-----迭代---将微分方程在区间[xn,xn+1]进行积分,然后函数f进行近似,即可得到迭代方程-----迭代方程收敛性?由函数关于y满足利普希茨条件,可以推出迭代公式收敛。
•局部截断误差:假设前n步误差为0,我们计算第n+1步的误差,将次误差称为局部截断误差,且局部误差为O(hp+1)•p阶精度:由理论证明:若局部误差阶的时间复杂度为O(hp+1),则整体误差阶为O(hp)我们称公式精度为p。
•显示欧拉法与隐式欧拉法•梯形方法----将显式欧拉迭代方程与隐式欧拉迭代方程做一下加权平均,构造的计算公式.•改进的欧拉方法---思想:因为梯形公式是隐式公式,将显式欧拉公式对下一步的计算值进行预估,用梯形公式对下一步的计算值进行校正.2、龙格-库塔方法思想:根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以前一个点的斜率;而这个斜率用该区间上的多个点的斜率的算数平均来逼近。
注意:怎么计算任意斜率Ki?第i个点的斜率Ki有微分方程可以算出f′=f(xn,yn)所以要算的f(xn,yn)值,由欧拉法即可算出, yn+1=yn+hf′•2阶-龙格-库塔方法----类似改进的欧拉法根据Lagrange中值定理,下一次的计算值可以用前一次的计算值加上h乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
第九章常微分方程初值问题的数值解法第一部分内容提要一、数值解的一般概念常微分方程初值问题00'()(,)()y x f x y y x y =⎧⎨=⎩的数值解是指通过一定的近似方法得出准确解()y y x =在一列离散点012,,,,,n x x x x 上的近似值012,,,,,n y y y y 。
数值解的特征是步进式,即()y x 在1n x +点的近似值1n y +是由1,,n n x x -等若干点处的近似值1,,n n y y -的信息给出的递推公式。
若1n y +依赖于前面k 步的值11,,,n n n k y y y --+,则称为k 步法;1k =称为单步法。
利用()y x 在11,,,n n n k x x x --+的精确解11(),(),,()n n n k y x y x y x --+借助某种算法计算出1n y +,则称11()n n y x y ++-为该方法的局部截断误差。
如果一个算法的局部截断误差是1()p O h +,则称该方法是p 阶的;而利用数值解11,,,n n n k y y y --+得到的1n y +与微分方程的精确解之差11()n n y x y ++-称为整体截断误差,即是该数值方法的误差。
对于固定的0x x >,取0x x h n-=,用某种算法得到n y ,如有lim ()n h y x y →-=0,则称该方法是收敛的。
注意,因x 是固定的,随着0h →,数值解的步数n →∞。
二、在实际计算时因为舍入误差不可避免,实际得到数值解是n y ,稳定性即研究n n y y -是否随着计算步骤n 的增加而增加。
通常所提的稳定性是通过模型方程(0)y y λλ'=<来讨论的。
若当某一步n y 有舍入误差时,在以后的计算中误差不会逐步扩大,则称这种稳定性为绝对稳定性。
三、简单单步法及其收敛性、稳定性Euler 法1(,)n n n n y y hf x y +=+的局部截断误差为2()O h ,整体截断误差为()O h ,即一阶收敛。
常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。
常微分方程初值问题(IVP)即为一种最常见的微分方程求解问题,其求解方法有多种,本文将对常微分方程初值问题的数值解法进行较为详细的介绍。
一、欧拉法欧拉法是最基本的一种数值解法,它采用泰勒级数展开并截断低阶项,从而获得一个差分方程近似求解。
具体来讲,设 t 为独立变量,y(t) 为函数 y 关于 t 的函数,方程为:$$y'(t) = f(t, y(t)), \qquad y(t_0) = y_0$$其中 f(t,y(t)) 为已知的函数,y(t_0) 为已知的初值。
将函数 y(t) 进行泰勒级数展开:$$y(t+h) = y(t) + hf(t, y(t)) + O(h^2)$$其中 h 表示步长,O(h^2) 表示其他高阶项。
为了使误差较小,一般取步长 h 尽可能小,于是我们可以用欧拉公式表示数值解:$$y_{n+1} = y_n + hf(t_n, y_n), \qquad y_0 = y(t_0)$$欧拉法的优点是容易理解和实现,但是由于截取低阶项且使用的单步法,所以误差较大,精度较低,在具体应用时需要慎重考虑。
二、龙格-库塔法龙格-库塔法(Runge-Kutta method)是一种多步法,比欧拉法更加精确。
龙格-库塔法的主要思想是使用不同的插值多项式来计算近似解,并且将时间步长分解,每次计算需要多次求解。
以下简要介绍二阶和四阶龙格-库塔法。
二阶龙格-库塔法将时间步长 h 分解成两步 h/2,得到近似解表达式:$$\begin{aligned} k_1 &= hf(t_n, y_n)\\ k_2 &= hf(t_n+h/2,y_n+k_1/2)\\ y_{n+1} &= y_n+k_2+O(h^3)\\ \end{aligned}$$四阶龙格-库塔法四阶龙格-库塔法是龙格-库塔法中应用最为广泛的一种方法,其需要计算的中间值较多,但是具有更高的精度。