7 Matlab与化学化工计算
5.2.2 梯形公式 梯形公式也是隐式格式,需要迭代求解 先用显式公式算出初值,再用隐式公式进行一次或数次修正。这一过程称为预估-校正过程 公式为 合并为 5.2.3 龙格-库塔法 工程应用中求解常微分方程最常用的一种有效方法,其计算精度和运算速度较快,易于编程。常用的有二阶、三阶、四阶龙格-库塔公式 二阶龙格-库塔公式 ,常见形式 或 三阶龙格-库塔公式 常见形式 四阶龙格-库塔公式 常见形式 5.2.4常微分方程组的数值解法 将由m个一阶方程组成的常微分初值问题 其中 可由前边所述的解常微分方程的各个方法求解 写为向量形式 5.2.5 高阶常微分方程数值解法 可把高阶常微分方程转化为一阶常微分方程组求解。例如三阶常微分方程 令 将三阶方程 化为一阶方程 5.3 用Matlab求解常微分方程 函数名 求解问题类型 算法 说明 ode45 非刚性问题 Runge-Kutta 一步算法;4,5阶Runge-Kutta方程;累计截断误差达(△x)5,精度高,为大部分场合的首选算法。 ode23 非刚性问题 Runge-Kutta 一步算法;2,3阶Runge-Kutta方程;累计截断误差达(△x)3,计算速度较快,适用于对精度要求不高的情形。 ode23s 刚性问题 Rosenbrock 一步算法;2阶Rosebrock算法;精度低,若ode45失效时,可尝试使用。 ode23t 适度刚性问题 Trapezoidal rule 采用梯形算法求解适度刚性问题。 ode23tb 刚性问题 TR-BDF2 梯形算法,低精度。当精度较低时,计算时间比ode15s短 ode15s 刚性问题 NDFs(BDFs) 多步算法;Gear’s反向数值微分;精度中等。若ode45失效时,可尝试使用 ode113 非刚性问题 Adams 多步Adams算法;精度可达10-3-10-6。计算时间比ode45短 例7-10 在间歇反应器中进行液相反应制备产物B,其反应网络如图7-7所示。反应温度为224.6℃,反应物X大量过剩。各反应均为一级动力学关 系: ,各步反应的k0i、Eai见表,试给 出0-10000秒各产物的浓度变化规律。初始条件为:t=0,CA=1kmol/m3,CB=CC=CD=CE=0 kmol/m3 反应网络图 例7-10条件图 参数 取值 参数 取值 k01 5.78052×1010 Ea1 124670 k02 3.92317×1012 Ea2 150386 k03 1.64254×104 Ea3 77954 k04 6.264×108 Ea4 111528 k05 2.1667×10-4 Ea5 0 反应网络图 参数取值 例7-10分析步骤 分析步骤 建立数学模型 建立odefun函数 建立主程序 视频演示 作业 本章习题 1. 编写程序,实现如下功能:对给定的方程组,判断其解的情况,若能求解,则求出其解 2. 在学习了如何判断向量组线性相关之后,如何判断一个向量能否由其他几个向量线性表示?试编写函数来完成这一功能 3 3.判断下列方程组解的情况,若有解,求其解 4. 试根据本章表7-1的数据应用插值法预测水在24℃、35℃、48℃和72℃时的黏度 5. 求非线性方程 在区间[0,1]上的根 6.求非线性方程组 的解,初值可设为为 7 7.求解下列常微分方程组 The End P5 应补充一些图 例7-2—(2) 解:>> a=[7 0 28; 0 28 1; 28 0 196]; >> b=[1 -39 -7]'; %b为列向量,故输入行向量后转置 >> rank(a) %计算系数矩阵A的秩 ans = 3 >> rank([a b]) %计算增广矩阵[A b]的秩 ans = 3 非齐次线性方程组系数矩阵A的秩为3,增广矩阵的秩为3,等于未知数个数3,方程组有唯一解。 “%”是Matlab的注释符,%后