常微分初值问题
常微分方程的初值问题及其解法
常微分方程的初值问题及其解法常微分方程是自然界中各种变化的基础模型,广泛应用于物理、工程、生物、经济学等领域。
初值问题是其中最基本的问题之一。
本文将从初值问题的意义入手,介绍几种不同的数值解法,并评价其优缺点。
1. 初值问题的意义首先,我们来看一个简单的例子。
假设有一个人从一楼的窗户往下跳,忽略空气阻力,我们可以列出他下落的物理规律:$$\frac{d^2h}{dt^2}=g$$其中$h$是跳下来后距离地面的高度,$t$是时间,$g$是常数,表示重力加速度。
上面这条式子就是一个二阶常微分方程。
我们的问题是,如果知道了他的初速度$v_0$和起始高度$h_0$,能否求得他下落到地面时的时间和高度。
这个例子中,$h$和$t$都是连续的量,但是我们并不能解析地求出$h(t)$的解析式,因此需要用数值方法去近似求解。
这就是初值问题的意义。
通常,初值问题是指某一初始时刻$t_0$的初值:$$y'(t_0)=f(y(t_0),t_0),\ y(t_0)=y_0$$其中$y$是未知函数,而$f$则是已知函数。
对于一阶常微分方程,这个条件是充分的,可以唯一地决定一个解。
但是对于更高阶的常微分方程,则需要多个初始条件才能确定一个解。
然而,这已经超出了本文的范畴,这里只讨论一阶常微分方程的初值问题。
2. 数值解法下面将介绍几种常见的数值解法。
2.1. 欧拉法欧拉法是最简单的数值解法之一,其思路是将初值问题离散化。
具体来说,我们可以将时间$t$分成若干个小段,每段的长度为$\Delta t$。
于是,我们可以将初始时刻$t_0$的初始值$y(t_0)=y_0$,并通过欧拉法近似计算下一个时间点$t_0+\Delta t$的值$y_1$:$$y_1=y_0+f(y_0,t_0)\Delta t$$同理,我们可以通过已知的$y_1$和$t_1=t_0+\Delta t$,计算下一个时间点$t_2=t_0+2\Delta t$的值$y_2$:$$y_2=y_1+f(y_1,t_1)\Delta t$$依此类推,直到我们得到一个目标时间$t_m$的值$y_m$。
解常微分方程初值问题
解常微分方程初值问题
解常微分方程初值问题的一般步骤如下:
1.确定微分方程的阶数和自由度数,以及初始条件和边界条件。
2.根据微分方程的形式和初始条件,选择适当的求解方法,如分
离变量法、特征线法、拉格朗日插值法等。
3.运用所选方法求解微分方程,得出通解或特解。
4.根据初始条件确定特解,得出最终解。
下面以一阶常微分方程为例,详细说明解题过程:
例:求解初值问题
dy/dx = x^2, y(0) = 1
解:
1.这是一个一阶常微分方程初值问题,自由度数为1,初始条件
为y(0) = 1。
2.采用分离变量法,将微分方程转化为积分形式:
∫dy/y = ∫ x^2 dx
两边同时积分,得到:
ln |y| = x^3/3 + C1
3.为了确定特解,需要将初始条件带入微分方程中,得到:
ln |y(0)| = 0^3/3 + C1 = C1
因此,特解为:
y(x) = e^(x^3/3 + C1) = e^(x^3/3 + ln |y(0)|) = e^(x^3/3 + ln |1|) = e^(x^3/3)
4.最终解为:y(x) = e^(x^3/3)。
常微分方程初值问题的解法及应用
常微分方程初值问题的解法及应用常微分方程是数学中非常重要的一部分,它涉及了许多领域的模型建立和问题求解。
本文将介绍常微分方程初值问题的解法及其应用。
一、常微分方程初值问题的定义常微分方程初值问题是指给定一个常微分方程,以及它在某一点上的初始条件,求解该方程的解曲线。
通常,一个常微分方程初值问题可以表示为:y'(x) = f(x,y), y(x0) = y0,其中,y(x)是未知函数,f(x,y)是已知函数,y(x0) = y0是初始条件。
二、常微分方程初值问题的解法常微分方程初值问题的解法有多种,下面我们将介绍几种常用的方法。
1.欧拉法欧拉法是最简单的一种求解常微分方程初值问题的方法。
该方法基于初始条件,通过不断迭代计算得到近似解曲线。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k = f(x0, y0)。
步骤4:根据已知的斜率和步长h,计算下一个点的坐标(xi+1,yi+1)。
步骤5:重复步骤3和步骤4,直到达到步数n。
步骤6:得到近似解曲线。
2.改进的欧拉法(改进欧拉法)改进的欧拉法是对欧拉法的改进,其求解精度比欧拉法更高。
具体步骤如下:步骤1:设定步长h,确定求解区间[x0, xn],计算步数n。
步骤2:初始化,即确定初始点(x0, y0)。
步骤3:根据方程dy/dx = f(x,y)和初始点(x0, y0),计算斜率k1 =f(x0, y0)。
步骤4:根据已知的斜率k1和步长h/2,计算中间点的坐标(x0+h/2, y0+k1*h/2)。
步骤5:根据方程dy/dx = f(x,y)和中间点的坐标(x0+h/2, y0+k1*h/2),计算斜率k2= f(x0+h/2, y0+k1*h/2)。
步骤6:根据已知的斜率k2和步长h,计算下一个点的坐标(xi+1,yi+1)。
常微分方程的初值问题
常微分方程的初值问题常微分方程是研究自变量(通常是时间)及其导数之间关系的数学分支。
它在物理、化学、生物学等学科中都有广泛应用,因此被视为数学的基础学科之一。
其中的求解方法之一便是初值问题。
初值问题是指对于一个已知的微分方程,给定初始条件的问题。
初始条件通常包括一个或多个自变量和导数值,根据这些条件可以求解出微分方程的解析解或近似解。
此外,初始条件还可以帮助我们理解微分方程的性质和行为。
举个例子,我们考虑一个简单的问题:假设一个物体在空气中运动,其速度随时间的变化可以用常微分方程来描述。
则其方程可以写作:m * dv/dt = mg - kv^2其中m为物体质量,g为重力加速度,k是空气阻力系数,v表示速度。
将初始条件加入其中,例如初始速度v0为0,则此时可以解出运动中物体的速度v(t)对时间的表达式。
对于初值问题的求解方法,数值和解析方法皆有。
解析方法主要是利用微积分和代数技巧,将微分方程推导为一般的解析表达式。
然而,这种方法需要一定的条件和技巧,因而在实际问题中应用范围较为有限。
数值方法则是更为通用和普遍的求解方法。
在此方法中,将微分方程转化为差分方程,即将导数近似为差分式,再结合初始条件用数值计算方法进行求解,得到问题的数值解。
这种方法的优点在于求解过程简单明了,且由于近似误差可以任意小,因此可得出足够精确的解。
常用的数值方法有欧拉法、龙格-库塔法等。
其中欧拉法是最简单的一种数值方法,其核心思想是用线性近似代替导数,即将微分方程中的导数写成差商形式,于是可以得到如下迭代公式:y(i+1)=y(i)+hf(y(i), t(i))其中y(i)表示函数解在i时刻的估计值,t(i)表示时间,h为时间步长,f(y,t)为微分方程右端函数。
通过这种迭代方法即可用简单的计算机程序得到一个数值解。
在使用数值方法求解初值问题时,需注意初始条件的选取。
例如,在上述物体的运动例子中,我们可以选取物体在某一位置的速度为初始速度,而这个位置则可以是重心位置、发射点等。
常微分方程初值问题数值解法
数值解法的必要性
实际应用需求
许多实际问题需要求解常微分方程初值问题,如物理、 化学、生物、工程等领域。
解析解的局限性
对于复杂问题,解析解难以求得或不存在,因此需要 采用数值方法近似求解。
数值解法的优势
未来发展的方向与挑战
高精度算法
研究和发展更高精度的算法,以提高数值解的准确性和稳定性。
并行计算
利用并行计算技术,提高计算效率,处理大规模问题。
自适应方法
研究自适应算法,根据问题特性自动调整计算精度和步长。
计算机技术的发展对数值解法的影响
1 2
硬件升级
计算机硬件的升级为数值解法提供了更强大的计 算能力。
它首先使用预估方法(如欧拉方法)得到一个 初步解,然后使用校正方法(如龙格-库塔方法) 对初步解进行修正,以提高精度。
预估校正方法的优点是精度较高,且计算量相 对较小,适用于各种复杂问题。
步长与误差控制
01
在离散化过程中,步长是一个重要的参数,它决定 了离散化的精度和计算量。
02
误差控制是数值逼近的一个重要环节,它通过设定 误差阈值来控制计算的精度和稳定性。
能够给出近似解的近似值,方便快捷,适用范围广。
数值解法的历史与发展
早期发展
早在17世纪,科学家就开始尝 试用数值方法求解常微分方程。
重要进展
随着计算机技术的发展,数值 解法在20世纪取得了重要进展, 如欧拉法、龙格-库塔法等。
当前研究热点
目前,常微分方程初值问题的 数值解法仍有许多研究热点和 挑战,如高精度算法、并行计
软件优化
软件技术的发展为数值解法提供了更多的优化手 段和工具。
常微分方程初值问题的解法
常微分方程初值问题的解法随着科技的不断进步和人类社会的不断发展,工程技术和科学技术的发展已经成为推动社会进步的重要力量,而数学则是工程技术和科学技术的基础和支撑,常微分方程作为数学分支的重要组成部分,对于理论研究和实际应用都有着深远的影响。
在实际工程中,解决常微分方程初值问题是数学理论在抽象式运算与工程实践之间的重要桥梁。
本文将介绍常微分方程初值问题的概念、求解方法以及实际应用。
一、常微分方程初值问题的概念常微分方程是指未知函数一阶或高阶微商与自变量和常数的关系式,常微分方程初值问题是指在初值u(x0)=u0已知的情况下,确定函数u(x)的解的问题。
在初值问题中,自变量是独立变量,取值范围可以是任意实数,因变量是函数值,是依赖自变量而实现的数值,常数是影响函数变化的一些固定参数。
常微分方程模型经常出现在工程技术模型中,一些实际应用场景可以通过建立数学模型来进行求解。
二、常微分方程初值问题的解法常微分方程初值问题的解法大致可以分为两种,一种是解析解法,即直接利用微积分学知识对方程进行求解;另一种是数值解法,即采用数值方法对方程进行数值计算求解。
下面将分别介绍这两种方法的解法原理。
1. 解析解法解析解法是指通过数学工具对函数解析表达式进行研究,以求出常微分方程的解。
该方法的先决条件是对方程具有严格的内部结构和特殊的形式,只有在特殊情况下才能找到一些特解。
这种方法的难点在于方程方程形式和初始条件可能存在巨大的数学难度,解析解的求解需要求解一些解析式的积分、微分和级数。
往往只有在一些特殊情况下,解析解法才能一般性的解决问题,因此该方法的适用场景相对较少。
2. 数值解法数值解法是指通过数值计算的方法,通过有限个代数运算和计算机模拟的方法得出方程的解。
数值解法的优点是具有广泛的适用性,可以有效地求解各种类型的常微分方程初值问题,使得无法通过解析方法求解的问题也可以得到解答。
数值解法可分为无条件稳定和条件稳定两种情况,前者是指方法不会出现不稳定结果的情况,而后者则保证了方法收敛性的同时,存在一定的条件限制。
数值计算中的常微分方程初值问题
数值计算中的常微分方程初值问题常微分方程是描述许多自然规律和现象的数学方法之一,常常在科学研究和工程应用中被广泛应用。
求解常微分方程的数值算法称为数值方法,这些方法用于求解微分方程的初始值问题(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 龙格-库塔法龙格-库塔方法是一种经典的提高微分方程数值解精度的数值方法。
龙格-库塔法是一类迭代方法,它使用多次计算初始值函数的斜率,以生成更准确的导数值。
常微分方程的初值问题
常微分方程的初值问题常微分方程的初值问题,听起来可能有点复杂,实际上就像是在玩拼图,拼出一幅完整的画面。
咱们常常会遇到一些问题,比如说,如何预测一辆车在某个时间点的速度,或者水从一个水池流出的速度。
你看,这些看似遥不可及的数学概念,其实就在我们身边,随处可见。
咱们得了解什么是常微分方程。
简单来说,就是一种包含未知函数及其导数的方程。
听上去可能有点高深,其实就像是在寻找一个秘密,解开这个方程,就能找到那个未知的函数。
这个过程就像解密,越是仔细,就越能找到线索。
初值问题就是在这个过程中给我们提供了一个起点,告诉我们从哪儿开始探索。
想象一下,你在一个山坡上滑下来,山的高度、坡度都不一样,你需要知道从哪个点开始滑,才能顺利到达山下。
如果你开始的地方不对,滑下来的路径可能会完全偏离目标。
这就是初值的重要性。
它像是一个导航系统,指引我们在数学的世界中找到正确的方向。
我们来聊聊这些常微分方程背后的故事。
方程其实就像是一部小说,里面有角色、冲突、情节发展。
比如,物体的运动方程就像是一个小故事,讲述了物体是如何在时间中不断变化的。
只要掌握了这些方程,就能预测物体的未来发展。
是不是觉得很神奇?就像你预见到邻居家那个总是爱搞事情的小孩,今天又会做出什么让人哭笑不得的事情。
解决初值问题的时候,咱们常常用到一些方法。
比如分离变量法、积分法等等。
这些方法就像是工具箱里的工具,各种各样,适用于不同的情况。
就像你要做一道菜,可能需要刀、锅、调料,缺一不可。
掌握了这些工具,做出美味的菜肴就变得轻而易举。
很多时候我们需要借助图形来理解这些方程。
画个图,就能直观地看到变量之间的关系。
想象一下,一个坐标系里,X轴和Y轴就像是两个老朋友,在那里欢快地互动。
通过曲线的变化,我们可以预测未来的状态,就像是看见了未来的样子,心里顿时就有了底。
解决初值问题也会遇到一些“意外”。
比如说,某个方程的解可能是个奇怪的函数,或者根本找不到解。
这时候,咱们就得耐心点,像耐心的园丁一样,等待花朵的绽放。
第八章 常微分方程的初值问题
梯形法
yn 1 yn
h 2
[ f ( xn , yn ) f ( xn1 , yn1 )]
从n=0开始计算,每步都要求解一个关于yn+1的方程
(一般是一个非线性方程),可用如下的迭代法计算:
( 0) yn1 yn hf ( xn , yn ) ( k 0,1, 2,) ( k 1) h (k ) yn1 yn [ f ( xn , yn ) f ( xn1 , yn1 )] 2
向前Euler法: y n 1 y n h f ( x n , y n ), n 0 ,1, 2 , 此处,y (xn)表示 xn 处的理论解,yn表示y (xn)的近似解
推导2: 一阶ODE
y '( x ) f ( x , y ( x )) y( x0 ) y0
2、如果 f 是 y 的函数 ,积分过程将不同于前者。 若 f 是 y 的线性函数,如:f=ay+b 其中a,b是常数或是 t 的函数, 此时原方程称为线性ODE 若 f 不是线性函数,方程就称为非线性ODE。
一、求ODE的解析解
dsolve
[输出变量列表]=dsolve(‘eq1’,‘eq2’, ... , ‘eqn’, ‘cond1’,‘cond2’, ... , ‘condn’, ‘v1,v2,…vn') 其中 eq1、eq2、...、eqn为微分方程,cond1、 cond2、...、condn为初值条件,v1,v2,…,vn 为自变量。 注1: 微分方程中用 D 表示对 自变量 的导数,如: Dy y'; D2y y''; D3y y'''
例 求解
常微分方程初值问题解法
详细描述
幂级数解法是通过幂级数展开方法,将一阶 常微分方程转化为可求解的幂级数形式。这 种方法适用于一些具有特定形式的常微分方 程,通过幂级数展开方法,将原方程转化为 可求解的幂级数形式,然后找到方程的解。
03 初值问题的数值解法
欧拉方法
总结词
欧拉方法是求解常微分方程初值问题的一种简单而基础的数 值方法。
详细描述
欧拉方法基于微积分中的中点公式,通过在区间上取几个点 并近似求解微分方程,得到近似解。该方法简单易行,但精 度较低,且对于复杂的问题可能需要较大的步长才能得到满 意的结果。
龙格-库塔方法
总结词
龙格-库塔方法是求解常微分方程初值问题的一种高精度数值方法。
详细描述
龙格-库塔方法采用线性插值的思想,通过构造一系列的插值多项式来逼近微分方程的 解。这种方法精度较高,且适用于各种类型的微分方程,因此在科学计算和工程领域应
数值方法
随着计算机技术的发展,数值解法成为解决初值问题的主要手段,如欧拉法、龙格-库 塔法等,能够给出近似解并适用于各种复杂情况。
稳定性分析
对于解的存在性和稳定性,需要分析初值问题的解是否随时间演化而发散或收敛,这涉 及到解的稳定性分析。
未来研究方向与展望
高维问题
目前对高维初值问题的研究 还不够深入,未来可以探索 更有效的数值方法和理论分 析方法。
应用广泛
在各个领域中都有广泛的应用,如航天、航空、交通、经济等。
发展前景
随着科学技术的发展,常微分方程初值问题的求解方法和应用范围 将不断拓展,具有广阔的发展前景。
02 初值问题的解法
分离变量法
总结词
适用于具有特定形式的一阶常微分方程,通过将方程中的变量分离,转化为可求解的方程。
常微分方程的初值问题
常微分方程的初值问题初值问题是常微分方程中非常重要的概念,它描述了一个方程的初始条件。
在这篇文章中,我们将介绍什么是初值问题,以及如何解决它。
初值问题是什么?一个初值问题包含了一个常微分方程和一个初始条件。
形式化来说,对于一个一阶微分方程y' = f(x,y),以及一个初始条件y(x0) = y0,我们就有了一个初值问题。
其中,y0是定义在x0处的y的值,f(x,y)表示方程中的函数。
解决初值问题需要找到满足方程和初始条件的函数y(x)。
这个函数描述了解决方案在整个定义域上的行为,并且是针对给定方程和初始条件的解。
如何解决初值问题?为了解决初值问题,我们需要使用数值方法,在数学上实现求解。
这些方法可以为我们提供非常接近实际解的近似解。
首先,我们需要将函数y(x)进行离散化,并选取一些点来近似表达这个函数。
通常,这些点被称为网格点。
我们可以使用各种算法来计算这些点上的近似值,例如欧拉法、泰勒展开法和龙格库塔法等等。
其中,欧拉法是解决初值问题的最简单的数值方法之一。
它将函数y(x)在给定点x分解成以下表达式:y(x + h) ≈ y(x) + h*y'(x),其中,h是步长。
通过此方法可以计算每一个网格点上的函数值y(x),并且用它们来建立近似解。
然后,我们可以用计算机进行数值仿真,以可视化输出结果。
总结在初值问题中,给定了一个常微分方程以及一个初始条件,我们需要找到满足这两个条件的函数解。
这里,我们介绍了初值问题的基本概念和解决方法,以及数值方法的使用。
初值问题在科学和工程应用中非常常见,了解这个问题的基本概念,能够更好地理解实际应用中的问题。
常微分方程初值问题的数值解法
常微分方程初值问题数值解法初值问题:即满足初值条件的常微分方程的解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乘以斜率;而这个斜率用区间上的端点和中点的斜率的算数平均来逼近。
求解常微分方程初值问题的中点公式
一、概述求解常微分方程初值问题是微积分学中一个重要的问题,常微分方程的数值解法在科学工程计算中有着广泛的应用。
其中,中点公式是一种常用的数值解法之一,本文将对中点公式进行详细介绍和求解方法。
二、常微分方程初值问题的定义常微分方程初值问题是指给定一个微分方程和一个初始条件,在指定的初始条件下求解微分方程的解。
其中,微分方程通常是一阶或高阶的常微分方程,而初始条件则是未知函数在某一点的值和导数值。
三、中点公式的定义中点公式是一种常见的数值解法,用于求解常微分方程初值问题。
它是基于泰勒展开式得到的近似解,通过迭代计算来逼近精确解。
中点公式的基本思想是利用当前点和前一点的导数值来逼近下一点的函数值,从而计算出微分方程的近似解。
四、中点公式的推导与计算过程1. 扩展泰勒展开式我们需要利用泰勒展开式对未知函数进行近似展开,一般来说,我们会选择一阶或者二阶的泰勒展开式,然后将展开式进行求和得到一个近似解。
2. 利用迭代计算在得到展开式的近似解之后,我们可以通过迭代计算的方式不断逼近精确解,这通常需要使用计算机进行数值计算处理。
3. 计算误差在实际应用中,我们还需要对中点公式得到的解进行误差分析,以确保所得解的精确性和可靠性。
五、中点公式的数学原理中点公式是基于泰勒展开式得到的近似解,其数学原理主要包括以下几点:1. 利用当前点和前一点的导数值来近似下一点的函数值;2. 通过迭代计算不断逼近真实解;3. 计算误差以确保解的精确性和可靠性。
六、中点公式的优缺点分析中点公式作为常微分方程初值问题的一种数值解法,具有如下优缺点:1. 优点:a. 简单易用,计算速度快;b. 适用于一些数值解法不稳定的情况;c. 精度较高。
2. 缺点:a. 对初始条件敏感,初始条件的选取会影响求解结果;b. 在某些情况下可能会产生数值不稳定的问题;c. 无法处理高阶微分方程。
七、中点公式在实际应用中的案例分析下面通过一个具体的案例来展示中点公式在实际应用中的情况。
常微分方程的初值问题
常微分方程的初值问题什么是常微分方程?常微分方程(Ordinary Differential Equations,简称ODE)是描述一个未知函数关于自变量微分关系的方程,被广泛用于描述自然现象。
常微分方程与偏微分方程不同的是,常微分方程只涉及一个自变量,而偏微分方程涉及多个自变量。
举个例子,我们都知道牛顿第二定律F=ma,如果我们设F为常数,令a=dv/dt,那么牛顿第二定律可以转化为md2x/dt2=F,这就是一个常微分方程。
常微分方程的形式十分多样,有些可以直接求解,有些则需要通过变换后求解。
常见的常微分方程包括一阶常微分方程、二阶常微分方程、线性常微分方程、非线性常微分方程等。
当然,还有更加复杂的常微分方程,如偏微分方程。
什么是初值问题?初值问题(Initial Value Problem,简称IVP)是一类常微分方程问题中的基本问题。
初值问题指的是给定一个常微分方程及其初值,求解出该常微分方程的通解,即求出在该初值下使方程成立的特定解,亦称特解。
举个例子,假设掷出一个物体,求出它的高度随时间的变化规律,那么初始高度ℎ0和初速度v0就是初值,可以通过方程y″=−g来描述。
其中y表示高度,g为重力加速度。
初值问题的求解方法通常分为数值方法和解析方法两种。
数值方法求解初值问题数值方法通过把求解域分成很多小段,逐一计算每个小段上函数的近似值,并且通过迭代来逼近精确解。
数值方法的优点是可以处理较为复杂的问题,并且求解过程相对简单。
常见的数值方法求解初值问题的算法包括:•欧拉法:一种最简单的迭代方法,从初始条件开始,逐一迭代得到每个时刻的函数近似值。
•改进的欧拉法:欧拉法精度不高,改进的欧拉法通过一阶和二阶泰勒展开来提高迭代精度。
•龙格-库塔法:一种更加精确的迭代方法,通过逼近微分方程精确解来提高近似解的精度。
解析方法求解初值问题解析方法是指通过解析求出一个函数的精确表达式。
如求一阶齐次线性常微分方程y′+p(x)y=0的通解,可以通过分离变量法求解:dy/y=−p(x)dx$$ln |y| = -\\int p(x)dx + C$$$$y=Ce^{-\\int p(x)dx}$$对于非线性常微分方程,解析求解通常较为困难,因此数值方法得到了广泛的应用。
常微分方程的初值问题
常微分方程的初值问题常微分方程是数学中的一种重要工具,它能够描述许多自然界和社会现象的变化规律。
而常微分方程的初值问题则是常微分方程研究中的常见问题之一,它需要确定未知函数及其导数在某个特定点的值。
本文将介绍常微分方程的初值问题的定义、求解方法以及实际应用。
一、初值问题的定义在常微分方程中,初值问题是指在已知微分方程的解的条件下,需要确定一个特定点上未知函数及其导数的值。
具体而言,考虑一个形如dy/dx=f(x,y)的一阶常微分方程,其中x是自变量,y是因变量,f是已知的函数。
若已知y(x0)=y0,则求解这个微分方程的过程即为解决初值问题。
二、求解方法对于常微分方程的初值问题,可以使用多种方法进行求解,下面将介绍两种常见的方法:欧拉方法和四阶龙格-库塔方法。
1. 欧拉方法欧拉方法是一种简单而直观的求解常微分方程的数值方法。
它的基本思想是将求解区间等分为多个小区间,然后通过逐步逼近的方式计算未知函数的近似值。
具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。
- 定义网格节点xi=a+i*h,i=0,1,2,...,n。
- 初始条件为y(x0)=y0,通过递推公式y(xi+1) = y(xi) + h*f(xi, y(xi)),计算出近似值y(xi+1)。
- 重复上述步骤,直到计算到需要的点。
欧拉方法的优点是简单易懂,但对于某些特定的微分方程,其数值解可能不够精确。
2. 四阶龙格-库塔方法四阶龙格-库塔方法是一种更为精确的求解常微分方程的数值方法,它通过计算多个逼近值的组合来提高计算精度。
具体步骤如下:- 将求解区间[a, b]等分为n个小区间,步长h=(b-a)/n。
- 定义网格节点xi=a+i*h,i=0,1,2,...,n。
- 初始条件为y(x0)=y0,通过递推公式计算逼近值k1、k2、k3和k4。
- k1 = h*f(xi, y(xi))- k2 = h*f(xi + h/2, y(xi) + k1/2)- k3 = h*f(xi + h/2, y(xi) + k2/2)- k4 = h*f(xi + h, y(xi) + k3)- 计算近似值y(xi+1) = y(xi) + (k1 + 2k2 + 2k3 + k4)/6。
常微分方程中的初值问题
常微分方程中的初值问题一、介绍初值问题是在微积分学中一个非常基础的概念,在常微分方程(ODEs)中也有很重要的应用。
我们从初值问题开始,逐步深入探讨ODEs的相关知识。
二、什么是初值问题?在ODEs的求解中,我们通常需要给出一个初值条件,也就是某个时刻的初始条件。
通常我们把这个条件称之为初值问题(Initial Value Problem, IVP)。
例如,我们可以假设现在有一个物体在运动。
如果我们想要得到它在任意时间点上的位置和速度,就需要知道它在某个时刻的位置和速度,这个时刻就称为初值。
三、ODEs的解与初值问题ODEs的求解通常与初值问题密切相关。
在求解ODEs时,我们通常需要设定初值条件,从而得到方程的一组解。
举个例子来说,如果一个物体在力的作用下做匀加速运动,那么我们可以得到ODEs如下:$\frac{d^2x}{dt^2}=a$这里,x表示物体的位移,t代表时间,a代表加速度。
我们可以通过对此方程积分,得到如下解:$x(t)=\frac{1}{2}at^2+C_1t+C_2$其中,C1和C2都是常数,需要通过初值条件来确定。
假设我们知道在t=0时,这个物体的位移为 $x_0$ ,速度为$v_0$ 。
那么我们就可以得到初始条件:$x(0)=x_0,C_2=x_0$$\frac{dx}{dt}(0)=v_0,C_1=v_0$通过这两个初始条件,我们就可以得到这个物体在任意时刻的位移和速度。
四、初值问题的数值求解除了解析求解以外,初值问题在实际工程中还有很多数值求解的方法。
在给出数值解之前,首先需要对微分方程进行离散化。
一种简单的离散化方式是欧拉法。
对于ODEs:$\frac{dy}{dt}=f(t,y)$我们可以将它离散化为:$\frac{y_{i+1}-y_i}{h}=f(t_i,y_i)$其中,h是离散化的步长,i表示当前离散点的下标。
这个式子可以帮助我们递推地求出 $y_{i+1}$ 的值。
常微分方程的初值问题与解析解
常微分方程的初值问题与解析解常微分方程是数学中的重要分支之一,涉及到自然科学中的众多问题,因此在科研中有着广泛的应用。
而其中的初值问题是解决这些方程的关键所在。
所谓常微分方程,是指只涉及单个变量及其导数的微分方程。
常微分方程可以分为一阶常微分方程和高阶常微分方程两种类型。
其中初值问题是指在t=0 时刻,给定某一时刻的函数值及导数值,解出该函数在全局上的解析解。
初值问题的解法通常可以分为两种方法:解析解和数值解。
解析解是指通过数学方法求解出的解析式,可以直接得到函数在全局的解析表达式,这种方法求解出的解具有较高的精度和快速性。
而数值解则是通过计算机等工具,通过迭代一定次数获得数值近似解。
数值解的方法可以分为 Euler 方法、Runge-Kutta 方法、Adams 方法等。
解析解的求解方法通常可以分为四类:分离变量法、齐次化法、常数变易法和特殊函数法。
分离变量法是常微分方程求解中最常用的方法之一,在求解 t 偏微分方程时,一般是将其写成一个 t 项的函数+一个不含t 的项,再分离变量,通过积分解出函数表达式。
齐次化法是指当微分方程中含未知函数的导数时,进行变量替换,使其不含未知函数的导数,变成一个齐次方程,从而解出解析式。
常数变易法是指当方程中含有δ (初值条件t=0时的函数值) 时,通过变量替换,将该常数变为未知函数的形式,达到求解解析解的目的。
特殊函数法则是指通过特殊函数如Bessel 函数、拉格朗日函数、伽玛函数等求解,这种方法主要是针对一些特殊的常微分方程,对于一般的常微分方程无法使用。
常微分方程求解中的初始值条件是影响解析解精度的重要因素之一。
正确的初始值条件可以保证解析解的准确性,否则可能会造成解析解数值偏差。
因此,在求解常微分方程时,清晰的问题理解、合适的解法选择以及准确的初始条件选择可以保证解析解的精确性,并且进一步应用到实际问题研究中。
总之,常微分方程的初值问题求解是数学中的重要分支之一,解析解具有精度高、求解速度快等优点,是科学研究中解决问题的有力工具之一。
常微分方程的初值问题
常微分方程的初值问题常微分方程是研究自变量只有一个的函数关系的微分方程,是数学中的重要基础理论之一。
在实际问题中,很多现象都可以用常微分方程来描述和解释。
而初值问题则是求解常微分方程的一种常用方法。
初值问题是指在给定一个常微分方程及其初始条件的情况下,求解该方程在给定初始条件下的解。
初始条件通常是给定自变量和因变量的值,以及一阶导数的值。
解决初值问题的关键在于找到满足给定初始条件的特解。
通过求解常微分方程的初值问题,可以得到函数关系的具体解析表达式或者数值解。
这对于实际问题的建模和分析具有重要意义。
常微分方程的初值问题在物理学、工程学、经济学等领域都有广泛应用。
以常微分方程dy/dx = f(x)为例,其中f(x)表示自变量x的函数,y 表示因变量,我们可以通过以下步骤解决初值问题:1. 根据给定的初始条件,得到初始值点(x0, y0);2. 将初始值点代入常微分方程,得到关于未知函数y的微分方程;3. 求解微分方程得到通解;4. 将初始值点代入通解中,得到满足初始条件的特解。
需要注意的是,常微分方程的解可能不是唯一的,解的存在性和唯一性需要通过数学理论进行证明。
在求解过程中,也可能面临无解、解不唯一或者无法用解析表达式表示的情况,此时可以采用数值方法进行近似求解。
常微分方程的初值问题具有广泛的应用。
例如,在物理学中,质点在外力作用下的运动可以通过牛顿第二定律建立常微分方程,并通过给定的初始条件求解得到质点的运动轨迹。
在经济学中,经济增长模型可以描述经济的增长速度,并通过初始条件求解得到经济的发展趋势。
总之,常微分方程的初值问题是数学中一种常用的求解方法,能够描述和解释实际问题中的许多现象。
通过求解初值问题,可以得到常微分方程的具体解析解或者数值解,为实际问题的建模和分析提供了有效的工具。
常微分方程初值问题的数值解法
常微分方程初值问题的数值解法在实际应用中,对于某些微分方程,我们并不能直接给出其解析解,需要通过数值方法来求得其近似解,以便更好地理解和掌握现象的本质。
常微分方程初值问题(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}$$四阶龙格-库塔法四阶龙格-库塔法是龙格-库塔法中应用最为广泛的一种方法,其需要计算的中间值较多,但是具有更高的精度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第9章常微分方程初值问题数值解法9.1 引言科学技术中常常要求解常微分方程的定解问题。
这类问题最简单的形式是本章将要着重考察的一阶方程的初值问题我们知道,只要函数适当光滑,譬如关于满足Lipschitz条件。
(9.1.3) 理论上就可以保证初值问题(9.1.1),(9.1.2)的解存在并且唯一。
虽然求解常微分方程有各种各样的解析方法,但解析方法只能用来求解一些特殊类型的方程,实际问题中归结出来的微分方程主要靠数值解法。
所谓数值解法,就是寻求在一系列离散节点上的近似值。
相邻两个结点的间距称为步长。
今后如果不特别说明,总是假定为定数,这时节点为。
初值问题(9.1.1),(9.1.2)的数值解法有个基本特点,它们都采用取“步进式”,即求解过程顺着节点的次序一步一步地向前推进。
描述这类算法,只要给出用已知信息计算的递推公式。
首先,要对方程(9.1.1)离散化,建立求数值解的递推公式。
一类是计算时只用到前一点的值,称为单步法。
另一类是用到前面点的值,称为步法。
其次,要研究公式的局部截断误差和阶,数值解与精确解的误差估计及收敛性,还有递推公式的计算稳定性等问题。
9.2 简单的数值方法与基本概念9.2.1 欧拉法与后退欧拉法我们知道,在平面上,微分方程(1.1)的解称作它的积分曲线。
积分曲线上一点的切线斜率等于函数的值,如果按函数在平面上建立一个方向场,那么,积分曲线上每一点的切线方向均与方向场在该点的方向相一致。
基于上述几何解释,我们从初始点出发,先依方向场在该点的方向推进到上一点,然后再从依方向场的方向推进到上一点,循此前进推出一条折线(图9.1)。
一般地,设已做出该折线的顶点,过依方向场的方向再推进到,显然两个顶点,的坐标有关系即(9.2.1) 这就是著名的欧拉(Euler)公式。
若初值已知,则依公式(9.2.1)可逐步算出例1求解初值问题(9.2.2)解为便于进行比较,本章将用多种数值方法求解上述初值问题。
这里先用欧拉方法,欧拉公式的具体形式为取步长,计算结果如下表:表9.1 计算结果对比初值问题(9.2.2)有解,按这个解析式子算出的准确值同近似值一起列在表9.1,两者相比较可以看出欧拉方法的精度很差。
还可以通过几何直观来考察欧拉方法的精度。
假设,即顶点落在积分曲线上,那么,按欧拉方法做出的折线便是过点的切线(图9.2),从图形上看,这样定出的顶点明显地偏离了原来的积分曲线,可见欧拉方法是相当粗糙的。
为了分析计算公式的精度,通常可用泰勒展开将在处展开,则有在的前提下,,于是可得到欧拉法(9.2.1)的公式误差, (9.2.3) 称为此方法的局部截断误差。
如果对方程(9.1.1)从到积分,得.(9.2.4)右端积分用左矩形公式近似,再以代替,代替也得到(9.2.1),局部截断误差也是(9.2.3).如果在(9.2.4)中右端积分用右矩形公式近似,则得另一个公式,(9.2.5) 称为后退的欧拉法.后退的欧拉公式与欧拉公式有着本质的区别,后者是关于的一个直接的计算公式,这类公式称作是显式的;然而公式(9.2.5)的面端含有未知的,它实际上是关于的一个函数方程,这类公式称作是隐式的.显式与隐式两类方法各有特点.考虑到数值稳定性等其他因素,人们有时需要选用隐式方法,但使用显式算法远比隐式方便.隐式方程(9.2.5)通常用迭代法求解,而迭代过程的实质是逐步显示化.设用欧拉公式给出迭代初值,用它代入(9.2.5)式的右端,使之转化为显式,直接计算得,然后再用代入(9.2.5)式,又有.如此反复进行,得. (9.2.6) 由于对满足Lipschitz条件(9.1.3),由(9.2.6)减(9.2.5)得.由此可见,只要迭代法(9.2.6)就收敛到解关于后退欧拉方法的公式误差,从积分公式看到它与欧拉方法是相似的.9.2.2 梯形方法为得到比欧拉法精度高的计算公式,在等式(9.2.4)右端积分中若用梯形求积公式近似,并用代替,代替,则得,(9.2.7) 称为梯形方法.梯形方法是隐式单步法,可用迭代法求解.同后退的欧拉方法一样,仍用欧拉方法提供迭代初值,则梯形法的迭代公式为(9.2.8) 为了分析迭代过程的收敛性,将(9.2.7)式与(9.2.8)相减,得,于是有,式中为对满足Lipschitz常数,如果选取充分小,使得,则当时有,这说明迭代过程(9.2.8)是收敛的.9.2.3 单步法的局部截断误差与阶初值问题(9.1.1),(9.1.2)的单步法可用一般形式表示为,(9.2.9)其中多元函数与有关,当含有时,方法是隐式的,若不含有则为显式方法,所以显式单步法可表示为,(9.2.10) 称为增量函数,例如对欧拉法(9.2.1)有.它的局部截断误差已由(9.2.3)给出,对一般显式单步法则可如下定义.定义1设是初值问题(9.1.1),(9.1.2)的准确解,称(9.2.11) 为显式单步法(9.2.10)的局部截断误差.之所以称为局部的,是假设在前各步没有误差,当时,计算一步,则有所以,局部截断误差可理解为用方法(9.2.10)计算一步的误差,也即公式(9.2.10)中用准确解代替数值解产生的公式误差.根据定义,显然欧拉法的局部截断误差即为(9.2.3)的结果.这里称为局部截断误差主项.显然.一般情形的定义如下.定义2设是初值问题(9.1.1),(9.1.2)的准确解,若存在最大整数使显式单步法(9.2.10)的局部截断误差满足,(9.2.12) 则称方法(9.2.10)具有阶精度.若将(9.2.12)展开式写成,则称为局部截断误差主项.以上定义对隐式单步法(9.2.9)也是适用的.例如,对后退欧拉法(9.2.5)其局部截断误差为这里,是1阶方法,局部截断误差主项为.同样对梯形法(9.2.7)有所以梯形方法(9.2.7)是二阶的,其局部截断误差主项为.9.2.4 改进的欧拉公式我们看到,梯形方法虽然提高了精度,但其算法复杂,在应用迭代公式(9.2.9)进行实际计算时,每迭代一次,都要重新计算函数的值,而迭代又要反复进行若干次,计算量很大,而且往往难以观测.为了控制计算量,通常只迭代一两次就转入下一步的计算,这就简化了算法.具体地说,我们先用欧拉方法公式求得一个初步的近似值,称之为预测值,预测值的精度可能很差,再用梯形公式(9.2.7)将它校正一次,即按(9.2.8)式迭代一次得,这个结果称校正值,而这样建立的预测-校正系统通常称为改进的欧拉公式:.(9.2.13) 或表为下列平均化形式例2用改进的欧拉方法求解初值问题(9.2.2).解改进的欧拉公式为仍取,计算结果见下表.同例1中欧拉法的计算结果比较,改进欧拉法明显改善了精度.表9.1 计算结果对比9.3 龙格-库塔方法9.3.1 显式龙格-库塔的一般形式上节给出了显式单步法的表达式(9.2.10),其局部截断误差为(9.2.12),对欧拉法,即方法为阶,若用改进欧拉法(9.2.13),它可表为, (9.3.1)此时增量函数.(9.3.2) 它比欧拉法的,增加了计算一个右函数的值,可望.若要使得到的公式阶数更大,就必须包含更多的值.实际上从方程(9.1.1)等价的积分形式(9.2.4),即,(9.3.3)若要使公式阶数提高,就必须使右端积分的数值求积公式精度提高,它必须要增加求积节点,为此可将(9.3.3)的右端用求积公式表示为.一般来说,节点数越多,精度越高,上式右端相当于增量函数,为得到便于计算的显式方法,可类似于改进欧拉法(9.3.1),(9.3.2),将公式表示为, (9.3.4) 其中, (9.3.5),.这里均为常数.(9.3.4)和(9.3.5)称为级显式龙格-库塔(Runge-Kutta)法,简称R-K方法.当=1,时,就是欧拉法,此时方法的阶为=1,当=2时,改进欧拉法(9.3.1),(9.3.2)就是其中的一种,下面证明阶=2,要使公式(9.3.4)和(9.3.5)具有更高的阶,就要增加点数.下面我们只就=2推导R-K方法,并给出=3,4时的常用公式,其推导方法与=2时类似,只是计算较复杂.9.3.2 二阶显式R-K方法对的R-K方法,由(9.3.4),(9.3.5)可得到如下的计算公式(9.3.6)这里均为待定常数,我们希望适当选取这些系数,使公式阶数尽量高,根据局部截断误差定义,(9.3.6)的局部截断误差为,(9.3.7) 这里,为得到的阶,要将上式各项在处泰勒展开,由于是二元函数,故要用到二元泰勒展开,各项展开式为,其中(9.3.8).将以上结果代入(9.3.7)则有要使公式(9.3.6)具有阶,必须使. (9.3.9) 即(9.3.6)的解是不唯一的,可令,则得.这样得到的公式称为二阶R-K方法,如取,则.这就是改进欧拉公式(9.3.1).若取,则,得计算公式(9.3.10) 称为中点公式,相当于数值积分的中矩形公式.(9.3.10)也可表示为.对=2的R-K公式(9.3.6)能否使局部截断误差提高到?为此需要把多展开一项,从(9.3.8)的看到展开式中的项是不能通过选择参数消掉的,实际上要使的项为零,需增加3个方程,要确定4个参数和,这是不可能的.故=2的显式R-K方法的阶只能是,而不能得到三阶公式.9.3.3 三阶与四阶显式R-K方法对的R-K方法,由(9.3.4),(9.3.5)可得到如下的计算公式(9.3.11)这里均为待定常数,公式(9.3.11)的局部截断误差为,只要将按二元函数泰勒展开,使,可得待定参数满足方程(9.3.12)这是8个示知数6个方程的方程组,解也不是唯一的.可以得到很多公式,满足条件(9.3.12)的公式(9.3.11)统称为三阶R-K公式.下面只给出其中一个常见的公式.此公式称为库塔三阶公式.继续上述过程,经过较复杂的数学演算,可以导出各种四阶龙格-库塔公式,下列经典公式是其中常用的一个:(9.3.13)四阶龙格-库塔方法的每一步需要计算四次函数值,可以证明其截断误差为.不过证明极其繁琐,这里从略.例3设取步长,从直到用四阶龙-格塔方法求解初值问题(9.2.2).解这里,经典的四阶龙格-库塔公式(9.3.13)具有形式表9-3计算结果值得指出的是,龙格-库塔方法的推导基于泰勒展开方法,因而它要求的解具有较好的光滑性质.反之,如果解的光滑性差,那么,使用四阶龙格-库塔方法求得的数值解,其精度可能反而不如改进的欧拉方法.实际计算时,我们应当针对问题的具体特点选择合适的算法.9.3.4 变步长的龙格-9.3.5 库塔方法单从每一步来看,步长越小,截断误差就越小,但随着步长的缩小,在一定求解范围内所要完成的步数就增加了.步数的增加不但引起计算量的增大,而且可能导致舍入误差的严重积累.因此同积分的数值计算一样,微分方程的数值解法也有个选择步长的问题.在选择步长时,需要考虑两个问题:怎样衡量和检验计算结果的精度?如何依据所获得的精度处理步长?我们考虑经典的四阶龙格-库塔公式(9.3.13).从节点出发,先以为步长求出一个近似值,记为,由于公式的局部截断误差为,故有,(9.3.14) 然后将步长折半,即取为步长从跨两步到,再求得一个近似值,每跨一步的截断误差是,因此有,(9.3.15)比较(9.3.14)式和(9.3.15)式我们看到,步长折半后,误差大约减少到,即有.由此易得下列事后估计式.这样,我们可以通过检查步长,折半前后两次计算结果的偏差来判定所选的步长是否合适,具体地说,将区分以下两种情况处理:对于给定的精度,如果,我们反复将步长折半进行计算,直至为止,这时取最终得到的作为结果;如果,我们将反复将步长加倍,直到为止,这时再将步长折半一次,就得到所要的结果.这样通过加倍或折半处理步长的方法称为变步长方法.表面上看,为了选择步长,每一步的计算量增加了,但总体考虑往往是合算的.9.4 单步法的收敛性与稳定性9.4.1 收敛性与相容性数值解法的基本思想是,通过某种离散手段将微分方程(9.1.1)转化为差分方程,如单步法(9.2.10),即.(9.4.1)它在处的解不,而初值问题(9.1.1),(9.1.2)在处的精确解为,记称为整体截断误差.收敛性就是讨论当固定且时的问题.定义3若一种数值方法(如单步法(9.4.1))对于固定的,当时有,其中是(9.1.1),(9.1.2)的准确解,则称该方法是收敛的.显然数值方法收敛是指,对单步法(9.4.1)有下述收敛性定理:定理1假设单步法(9.4.1)具有阶精度,且增量函数关于满足Lipschitz条件,(9.4.2)又设初值是准确的,即,则其整体截断误差.(9.4.3)证明设以表示取用公式(9.4.1)求得的结果,即, (9.4.4)则,由于所给方法具有阶精度,按定义2,存在常数,使.又由(9.4.1),(9.4.4)及(9.4.2),得于是即满足下列递推关系,(9.4.5) 从而唾手可得.(9.4.6) 再注意到当时,,最终得下列估计式. (9.4.7) 由此可以断定,如果初值是准确的,即,则(9.4.3)式成立.定理证毕依据这一定理,判断单步法(9.4.1)的收敛性,归结为验证增量函数能否满足Lipschitz条件(9.4.2).对于欧拉方法,由于其增量函数就是,故当关于满足Lipschitz条件时它是收敛的.再考察改进的欧拉方法,其增量函数已由(9.3.2)式给出,这时有假设关于满足Lipschitz常数因此改进的欧拉方法也是收敛的.类似地,不难验证其他龙格-库塔方法的收敛性.定理1表明时单步收敛性,并且当是初值问题(9.1.1),(9.1.2)的解,(9.4.1)具有阶精度时,则有展开式所以的充要条件是=0,而,于是可给出如下定义:定义4若单步法(9.4.1)的增量函数满足,则称单步法(9.4.1)与初值问题(9.1.1),(9.1.2)相容.以上讨论表明阶方法(9.4.1)当时与(9.1.1),(9.1.2)相容,反之相容方法至少是1阶的.于是由定理1可知方法(9.4.1)收敛的充分必要条件是此方法是相容的.9.4.2 绝对稳定性与绝对稳定域前面关于收敛性的讨论有个前提,必须假定数值方法本身的计算是准确的,实际情形并不是这样,差分方程的求解还会有计算误差,譬如由于数字舍入而引起的小扰动在传播过程中会不会恶性增长,以至于“淹没”了差分方程的“真解”呢?这就是差分方法的稳定性问题,在实际计算时,我们希望某一步产生的扰动值,在后面的计算中能够控制,甚至是逐步衰减的.定义5若一种数值方法在节点值上大小为的扰动,于以后名节点值上产生的偏差均不超过,则称该方法是稳定的.下面先以欧拉法为例考察计算稳定性.例4考察初值问题其准确解是一个按指数曲线衰减得很快的函数,如图9-3所示.用欧拉法解方程得.若取,则欧拉法公式的具体形式为,计算结果列于表9-4的第2列,我们看到,欧拉法的解(图9-3中用+号标出)在准确值的上下波动,计算过程明显地不稳定,但若取,则计算过程稳定.再考察后退的欧拉方法,取时计算公式为,计算结果列于表9-4的第3列(图9-3中标以*号),这时计算过程是稳定的.表9-4计算结果对比例题表明稳定性不但与方法有关,也与步长的大小有关,当然也与方程中的有关.为了只考察数值方法本身,通常只检验将数值方法用于模型方程的稳定性,模型方程为,其中为复数,这个方程分析较简单.对一般方程可以通过局部线性化化为这种形式,例如在的领域,可展开为,略去高阶项,再做变换即可得到的形式,对于个方程的方程组,可线性化为,这里为的雅可比矩阵.若有个特征值,其中可能是复数,所以,为了使模型方程结果能推广到方程组,方程(9.4.8)中的为复数.为保证微分方程本身的稳定性,还应假定.下面先研究欧拉方法的稳定性.模型方程的欧拉公式为,(9.4.9) 设在节点值上有一扰动值,它的传播使节点值产生大小为的扰动值,假设用按欧拉公式得出的计算过程不再有新的误差,则扰动值满足.可见扰动值满足原来的差分方程(9.4.9).这样,如果差分方程的解是不增长的,即有,则它就是稳定的,这一论断对于下面将要研究的其他方法同样适用.显然,为要保证差分方程(9.4.9)的解是不增长的,只要选取充分小,使(9.4.10)在的复平面上,这是以(-1,0)为圆心,1为半径的单位圆域.称为欧拉法的绝对稳定域,一般情形可由下面定义.定义6单步法(9.4.1)用于解模型方程(9.4.8),若得到的解,满足,则称方法(9.4.1)是绝对稳定的.在的复平面上,以的变量范围成的区域,称为绝对稳定域.它与实轴的交称为绝对稳定区间.对欧拉法,绝对稳定域已由(9.4.10)给出,绝对稳定区间为,在例5中,即为绝对稳定区间,例4中取故它是不稳定的,当取时它是稳定的.对二阶R-K方法,解模型方程(9.4.1)可得到,故.绝对稳定域由得到,于是可得绝对稳定敬意为,即,类似可得三阶及四阶的R-K方法的分别为,.由可得到相应的绝对稳定域.当为实数时则得绝对稳定区间,它们分别为三阶显式R-K方法:,即.四阶显式R-K方法:,即.从以上讨论可知显式的R-K方法的绝对稳定域均为有限域,都对步长有限制.如果不在所给的绝对稳定区间内,方法就不稳定.例5,分别取及=0.2用经典的四阶R-K方法(9.3.13)计算.解本例分别为-2和-4,前者在绝对稳定区间内,后者则不在,用四阶R-K方法计算其误差见下表:从以上结果看到,如果步长不满足绝对稳定条件,误差增长很快.对隐式单步法,可以同样讨论方法的绝对稳定性,例如对后退欧拉法,用它解模型方程可得,故.由可得绝对稳定域为,它是以(1,0 )为圆心,1为半径的单位圆外部,故绝对稳定敬意为.当时,则,即对任何步长均为稳定的.对隐式梯形法,它用于解模型方程(9.4.8)得,故.对有,故绝稳定域为的左半平面,绝对稳定区间为,即时梯形法均是稳定的.9.5 线性多步法在逐步推进的求解过程中,计算之前事实上已经求出了一系列的近似值,,如果充分利用前面多步的信息来预测,则可以期望会获得较高的精度.这就是构造所谓线性多步法的基本思想.构造多步法的主要途径是基于数值积分方法和基于泰勒展开方法,前者可直接由方程(9.1.1)两端积分后利用插值求积公式得到.本节主要介绍基于泰勒展开的构造方法.9.5.1 线性多步法的一般公式如果计算时,除用的值,还用到的值,则称此方法为线性多步法.一般的线性多步法公式可表示为,(9.5.1) 其中为的近似,,,,为常数,及不全为零,则称(9.5.1)为线性步法,计算时需先给出前面个近似值,再由(9.5.1)逐次求出.如果,称(9.5.1)为显式步尖,这时可直接由(9.5.1)算出;如果,则(9.5.1)称为隐式步法,求解时与梯形法(9.2.7)相同,要用迭代法方可算出,(9.5.1)中系数及可根据方法的局部截断误差及阶确定,其定义为:定义7设是初值问题(9.1.1),(9.1.2)的准确解,线性多步法(9.5.1)在上的局部截断误差为.(9.5.2)若,则称方法(9.5.1)是阶的,则称为方法(9.5.1)与方程(9.1.1)是相容的.由定义7,对在处做泰勒展开,由于代入(9.5.2)得,(9.5.3) 其中(9.5.4) 若在公式(9.5.1)中选择系数及,使满足.由定义可知此时所构造的多步法是阶的,且.(9.5.5) 称右端第一项为局部截断误差主项,称为误差常数.根据相容性定义,,即,由(9.5.4)得(9.5.6) 故方法(9.5.1)与微分方程(9.1.1)相容的充分必要条件是(9.5.6)成立.显然,当时,若,则由(9.5.6)可求得.此时公式(9.5.1)为,即欧拉方法.从(9.5.4)可求得,故方法为1阶精度,且局部截断误差为,这和第9.2节给出的定义及结果是一致的.对,若,此时方法为隐式公式,为了确定系数,可由解得.于是得到公式,即为梯形法.由(9.5.4)可求得,故=2,所以梯形法是二阶方法,其局部截断误差主项是,这与9.2节中的讨论也是一致的.对的多步法公式都可利用(9.5.4)确定系数,并由(9.5.5)给出局部截断误差,下面只就若干常用的多步法导出具体公式.9.5.2 阿当姆斯显式与隐式公式考虑形如,(9.5.1) 的步法,称为阿当姆斯(Admas)方法.为显式方法,亦称Adams-Bashforth公式;为隐式方法,亦称Adams-Monlton公式.这类公式有两种导出方法:一是直接由方程(9.1.1)两端从到积分求得,二是利用(9.5.4)由推出.例5积分法导出三步显式阿当姆斯方法.解对(9.1.1)两端从到积分.考虑以为节点的二次代数多项式插值,则.从而得到同理得.再由积分中值定理也不难得到,即的阿当姆斯显式公式为,(9.5.8) 其局部截断误差为.例7根据(9.5.4)的待定系数方法导出的阿当姆斯显式公式.解由于阿当姆斯公式的特点易知,(9.5.4)中,,显然.为求出,令,则解之得,继而得出.从而得到以及用类似的方法可求得阿当姆斯显式方法和隐式方法的公式,表9-5及表9-6分别列出了时的阿当姆斯显式公式和隐式公式.其中为步数,为误差常数.表9-5Adams显式公式表9-6Adams隐式公式例8用四阶阿当姆斯显式和隐式方法解初值问题.取步长.解本题.从四阶阿当姆斯显式公式得到对于四阶阿当姆斯隐式公式得到由此可直接解出而不用迭代,得到.计算结果如表9-7,其中显式方法中的及隐式方法中的均用准确解计算得到,对一般方程,可用四阶R-K方法计算初始近似.表9-7例8计算结果从以上例子看到同阶的阿当姆斯方法,隐式方法要比显式方法误差小,这可以从两种方法的局部截断误差主项的系数大小得到解释,这里分别为251/720及-19/720.9.5.3 米尔尼方法与辛普森方法考虑与(9.5.7)不同的另一个的显式公式其中为待定常数,可根据使公式的阶尽可能高这一条伯来确定其数值。