第四章常微分方程数值解法3386.ppt
文本预览下载声明
四 常微分方程数值解法 常微分方程数值解法 引言(常微分方程数值解法概述) 显式欧拉法、隐式欧拉法、二步欧拉法 局部截断误差与精度 改进的欧拉方法 龙格-库塔方法 收敛性与稳定性简述 一阶常微分方程组与高阶常微分方程 引言 一阶常微分方程初值问题: 引言(续) 实际生产与科研中,除少数简单情况能获得初值问题的初等解(用初等函数表示的解)外,绝大多数情况下是求不出初等解的。 有些初值问题即便有初等解,也往往由于形式过于复杂而不便处理。 实用的方法是在计算机上进行数值求解:即不直接求 y(x) 的显式解,而是在解所存在的区间上,求得一系列点 xn (n = 0, 1, 2, …) 上解的近似值。 欧拉(Euler)方法 方法一 化导数为差商的方法 代入初值问题表达式可得: 欧拉方法(续) 方法二 数值积分法 欧拉方法的几何意义 隐式欧拉法 在数值积分法推导中,积分的近似值取为积分区间宽度与右端点处的函数值乘积,即: 二步欧拉法 在数值积分法推导中,积分区间宽度选为两步步长,即积分区间为:[xn-1, xn+1],则: 梯形公式欧拉法 在数值积分法中,如果用梯形公式近似计算 f (x, y) 在区间 [xn, xn+1] 上的积分,即: 例 用显式欧拉法、隐式欧拉法、梯形法求解初值问题: 例:(续) 计算结果: 局部截断误差 为了简化分析某常微分方程数值算法的误差,现假设 yn = y(xn),即在前一步 yn 准确的前提下,估计: 泰勒展开法 如果初值问题中的 f (x, y) 充分可微,则可将 y(xn+1) 在点 xn 处展开: 局部截断误差的分析 利用泰勒公式展开,比较各算法与展开式的前几项 补充:二元函数微分中值定理 各种欧拉法的比较 改进的欧拉法 从上述例子可以看到,梯形法由于具有二阶精度,其局部截断误差比显式欧拉法和隐式欧拉法小,但梯形法实质上是一种隐式算法 显式欧拉法是一个显式算法,虽然计算量较小,但是精度不高 综合两种方法的长处,可以先用显式欧拉法求出 y(xn+1) 的一个粗略近似值,然后用它代入梯形法公式的右端,用梯形法计算 y(xn+1) 的较为精确的近似值。 改进的欧拉法(续) 按照上述思想,可以建立如下预报-校正系统: 用改进欧拉法求上例所述的初值问题并与欧拉法和梯形法比较误差的大小。 计算结果 改进的欧拉法的意义 改进的欧拉法的几何意义 龙格-库塔(Runge-Kutta)方法 龙格-库塔方法(续) 显式欧拉法用一个点的值 k1 作为 k* 的近似值 改进的欧拉公式用二个点的值 k1 和 k2 的平均值作为 k* 近似值; 改进的欧拉法比显式欧拉法精度高; 在 [xn, xn+1] 内多预报几个点的 ki 值,并用其加权平均值作为 k* 的近似值从而构造出具有更高精度的计算公式,这就是龙格-库塔方法的基本思想。 二阶龙格-库塔方法 以 k1 和 k2 的加权平均来近似取代 k* 补充:二元泰勒展开式 二阶龙格-库塔方法(续) 四个未知变量,只有三个方程,有无穷多组解 每组解的构成的龙格-库塔方法均为二阶 三阶龙格-库塔方法 三阶龙格-库塔方法是用三个值 k1, k2, k3 的加权平均来近似取代 k* 三阶龙格-库塔方法(续) 类似二阶龙格-库塔方法的推导过程,8 个待定系数 c1, c2, c3, a2, a3, b21, b31, b32 应满足: 四阶龙格-库塔方法 类似可以推出四阶龙格-库塔公式,常用的有: 四阶龙格-库塔方法(续) 用经典四阶龙格-库塔方法求解前例的初值问题,并与改进 欧拉 法、梯形法在 x5 = 0.5 处比较其误差大小 变步长的龙格-库塔方法 变步长的龙格-库塔方法(续) 变步长的龙格-库塔方法(续) 单步法的收敛性 显式单步法可统一写成: 单步法的收敛性(续) 对于 p 阶的常微分方程数值算法,当 h ? 0, n ? ? 时,是否 yn+1 ? y(xn+1)? 单步法的收敛性(续) 单步法的收敛性(续) 收敛性定理 假设在前一步 yn 准确的前提下求得的近似值为: 单步法的稳定性 在讨论单步法收敛性时一般认为数值方法本身的计算过程是准确的,实际上并非如此: 单步法的稳定性(续) 单步法的稳定性(续) 一阶常微分方程组 四阶龙格-库塔公式 高阶微分方程的初值问题 一般通过引入新的变量,将高阶微分方程化为一阶微分方程组的方法进行求解 转化例子 作业 为分析局部截断误差,令 yn = y(xn),由泰勒公式得: 用二元泰勒公式展开 将 k1, k2 代入 中可得: 2 阶精度 二阶龙格-库塔方法即为改进的欧拉方法 变形的欧拉法 中 点 方 法 要使三阶龙格-库
显示全部