欧拉折线法解常微分方程C语言,05常微分方程数值解.ppt

05常微分方程数值解.ppt

第五章,常微分方程数值解法,(Numerical s for Ordinary Differential Equations ),常微分方程分为 (1)初值问题 (2)边值问题,一、初值问题的数值解法,1 引 言,一阶常微分方程初值问题的一般形式是,称 在区域D上对 满足Lipschitz条件 是指,二、初值问题解的存在性, 考虑一阶常微分方程的初值问题 /* Initial-Value Problem */则上述IVP存在唯一解。,只要 在 上连续,且关于 y 满足 Lipschitz 条件,,即存在与 无关的常数 L 使,对任意定义在 上的 都成立,,要计算出解函数 yx 在一系列节点 a x0 x1 xn b 处的近似值 采用离散化方法。,称节点间距 为步长, 通常采用等距节点,即取 hi h 常数。,三、初值问题的离散化方法,离散化方法的基本特点是依照某一递推公式,,值 ,取 。,按节点从左至右的顺序依次求出 的近似,如果计算 需用到前r步的值 , ,则称这类方法为r步方法。,2 欧拉方法 /* Eulers */, 欧拉公式单步显示公式),向前差商近似导数亦称为欧拉折线法 /* Eulers polygonal arc */,在假设 yi yxi,即第 i 步计算是精确的前提下,考虑的截断误差 Ri yxi1 yi1 称为局部截断误差 /* local truncation error */。,定义,若某算法的局部截断误差为Ohp1,则称该 算法有p 阶精度。,定义, 欧拉法的局部截断误差,Ri 的主项 /* leading term */,欧拉法具有 1 阶精度。,例1 用欧拉公式求解初值问题,取步长 。,解 应用Euler公式于题给初值问题的具体形式为,其中 。,计算结果列于下表可用来检验近似解的准确程度。,进行计算,数值解已达到了一定的精度。,这个初值问题的准确解为 ,,从上表最后一列,我们看到取步长, 欧拉公式的改进, 隐式欧拉法 /* implicit Euler */,向后差商近似导数由于未知数 yi1 同时出现在等式的两边,不能直接得到,故称为隐式 /* implicit */ 欧拉公式,而前者称为显式 /* explicit */ 欧拉公式。一般先用显式计算一个初值,再迭代求解。, 隐式欧拉法的局部截断误差,即隐式欧拉公式具有 1 阶精度。, 梯形公式 /*trapezoid ula */, 显、隐式两种算法的平均注的确有局部截断误差 ,,即梯形公式具有2 阶精度,比欧拉方法有了进步。,但注意到该公式是隐式公式,计算时不得不用到,迭代法,其迭代收敛性与欧拉公式相似。, 中点欧拉公式 /* midpoint ula */,中心差商近似导数假设 ,则可以导出 即中点公式具有 2 阶精度。,简单,精度低,稳定性最好,精度低, 计算量大,精度提高,计算量大,精度提高, 显式,多一个初值, 可能影响精度,Cant you give me a ula with all the advantages yet without any of the disadvantages,Do you think it possible,Well, call me greedy,OK, lets make it possible., 改进欧拉法 /* modified Eulers */,Step 1 先用显式欧拉公式作预测,算出注此法亦称为预测-校正法 /* predictor-corrector */,可以证明该算法具有 2 阶精度,同时可以看到它,是个单步递推格式,比隐式公式的迭代求解过程,简单。后面将看到,它的稳定性高于显式欧拉法。,改进的欧拉法,在实际计算时,可将欧拉法与梯形法则相结合, 计算公式为,应用改进欧拉法,如果序列 收敛它的极限便满足方程,改进欧拉法的截断误差,因此,改进欧拉法公式具有 2 阶精度,例2,用改进Euler公式求解例1中的初值问题,,取步长 。,解对此初值问题采用改进Euler公式, 其具体形式为计算结果列于下表改进的Euler法,Euler法,通过计算结果得比较可以看出,改进的Euler方法,的计算精度比Euler方法要高。,3 龙格 - 库塔法 /* Runge-Kutta */,建立高精度的单步递推格式。,单步递推法的基本思想是从 xi , yi 点出发,,欧拉法及其各种变形所能达到的最高精度为2阶。,以某一斜率沿直线达到 点。, 考察改进的欧拉法,可以将其改写为斜率 一定取K1 K2 的平均值吗,步长一定是一个h 吗,首先希望能确定系数 1、2、p,使得到的算法格式有2阶精度,即在 的前提假设下,使得,Step 1 将 K2 在 xi , yi 点作 Taylor 展开Step 2 将 K2 代入第1式,得到,Step 3 将 yi1 与 y xi1 在 xi 点的泰勒展开作比较,要求 ,则必须有这里有 个未知数, 个方程。,3,2,存在无穷多个解。所有满足上式的格式统称为2阶龙格 - 库塔格式。,注意到, 就是改进的欧拉法。,为获得更高的精度,应该如何进一步推广,其中i i 1, , m ,i i 2, , m 和 ij i 2, , m; j 1, , i1 均为待定系数,确定这些系数的步骤与前面相似。,考虑一阶常微分方程初值问题将区域a,b进行分划,若则,n级显式Runge-Kutta方法二阶Runge-Kutta方法,取n2,记,由此得,另一方面,为使局部截断误差为 ,应取,改进的Euler方法,取,中点方法,取,二阶Heun方法,取,二级Runge-Kutta方法不超过二阶,记,则,因此局部截断误差只能达到,三级Runge-Kutta方法,取n3,记,又由于,因此要使局部截断误差为 ,必须,Kutta方法,取,三阶Heun方法,取,三级Runge-Kutta方法不超过三阶,完全类似于二级Runge-Kutta方法的分析,只能达到,三级Runge-Kutta方法的局部截断误差,将 和 都展开到 项,易证,四级R-K方法,取n4,局部截断误差为Oh5,最常用为四级4阶经典龙格-库塔法 /* Classical Runge-Kutta */ ,附注,二阶Runge-Kutta方法的局部截断误差 只能达到,五阶Runge-Kutta方法的局部截断误差 只能达到,四阶Runge-Kutta方法的局部截断误差 只能达到,三阶Runge-Kutta方法的局部截断误差 只能达到,注 龙格-库塔法的主要运算在于计算 的值,即计算 的值。Butcher 于1965年给出了计算量与可达到的最高精度阶数的关系, 由于龙格-库塔法的导出基于泰勒展开,故精,太好的解,最好采用低阶算法而将步长h 取小。,度主要受解函数的光滑性影响。对于光滑性不,4 单步方法的收敛性与稳定性 /* Convergency and Stability */, 收敛性 /* Convergency */,例就初值问题 考察欧拉显式格式的收敛性。,解该问题的精确解为,欧拉公式为,对任意固定的 x xi i h ,有 稳定性 /* Stability */,例考察初值问题 在区间0, 0.5上的解.分别用欧拉显、隐式格式和改进的欧拉格式计算数值解。,1.0000 2.0000 4.0000 8.0000 1.6000101 3.2000101,1.0000 2.5000101 6.2500102 1.5625102 3.9063103 9.7656104,1.0000 2.5000 6.2500 1.5626101 3.9063101 9.7656101,1.0000 4.9787102 2.4788103 1.2341104 6.1442106 3.0590107,What is wrong ,一般分析时为简单起见,只考虑试验方程 /* test equation */常数,可以是复数,我们称算法A 比算法B 稳定,就是指 A 的绝对稳定 区域比 B 的大。,当步长取为 h 时,将某算法应用于上式,并假设只在,初值产生误差 ,则若此误差以后逐步衰减,就称该算法相对于 绝对稳定, 的全体构成,绝对稳定区域。,例考察显式欧拉法,由此可见,要保证初始误差0 以后逐步衰减, 必须满足,例考察隐式欧拉法可见绝对稳定区域为注一般来说,隐式欧拉法的绝对稳定性比同阶的显式法的好。,例隐式龙格-库塔法,其中2阶方法 的绝对稳定 区域为,无条件稳定,而显式 1 4 阶方法的绝对稳定区域为,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值