《非线性方程求解》PPT课件.ppt_第1页
《非线性方程求解》PPT课件.ppt_第2页
《非线性方程求解》PPT课件.ppt_第3页
《非线性方程求解》PPT课件.ppt_第4页
《非线性方程求解》PPT课件.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2 1化工实际问题的提出2 2实根的对分法2 3直接迭代法2 4松弛迭代法2 5韦格斯坦法2 6牛顿迭代法2 7割线法2 8非线性方程组的牛顿方法2 9化工生产中非线性方程组求解应用实例 第2章非线性方程求解 2 1化工实际问题的提出 求解非线性方程是化工设计及模拟计算中必须解决的一个问题 与线性方程相比 非线性方程问题无论是从理论上还是从计算公式上 都要比线性方程复杂的多对于一般的非线性f x 0 计算方程的根既无一定章程可循也无直接方法可言 2 1化工实际问题的提出 例如 求解高次方程组7x6 x3 x 1 5 0的根 求解含有指数和正弦函数的超越方程ex sin x 0的零点 解非线性方程或非线性方程组也是计算方法中的一个主题 一般地 我们用符号f x 来表示方程左端的函数 方程的一般形式表示为f x 0 方程的解称为方程的根或函数的零点 2 1化工实际问题的提出 通常 非线性方程的根不止一个 而任何一种方法只能算出一个根 因此 在求解非线性方程时 要给定初始值或求解范围 而对于具体的化工问题 初值和求解范围常常可根据具体的化工知识来决定 2 1化工实际问题的提出 常见的雷诺数和摩擦系数关系方程在雷诺数低于4000时有以下关系式 2 1化工实际问题的提出 当我们已知雷诺数Re 如何根据公式 2 1 求出摩擦系数 这是我们在管路设计中必须首先解决的问题 对于方程 2 1 而言 无法用解析的方法求出摩擦系数 只能用数值求解的方法 如用在下面即将介绍的松弛迭代法 假设 则利用松弛迭代公式可得 这是一个典型的非线性方程 我们在管路设计中经常碰到 2 1化工实际问题的提出 经11次迭代可得摩擦系数为0 07593 同样 在n个组分的等温闪蒸计算中 通过物料和相平衡计算 我们可得到如下非线性方程 2 3 2 1化工实际问题的提出 在方程 2 3 中只有 是未知数 ki为相平衡常数 zi为进料组分的摩尔浓度 均为已知数 方程 2 3 也无法直接解析求解 必须利用数值的方法 借助于计算机方可精确的计算 2 3 2 1化工实际问题的提出 对于这个问题的求解 可利用我们下面介绍的牛顿迭代法进行计算 也可利用其他迭代公式进行计算 如采用牛顿迭代公式 则可以得到如下的具体迭代公式 2 4 2 1化工实际问题的提出 饱和蒸气压是我们经常要用到的数据 虽然我们可以通过实验测量来获取饱和蒸气压的数据 我们通常利用前人已经测量得到的数据或回归的公式来获取 这可以减轻我们大量的基础实验工作 公式 2 5 是一种常用的饱和蒸气压计算公式 2 1化工实际问题的提出 因为公式 2 5 两边都有未知变量 并且无法用解析的方法求解 必须用数值计算的方法求解 通过上面的一些例子 我们可以发现 如果没有适当的手段和办法来求解非线性方程 那么化学化工中的许多研究 设计等工作将无法展开 这势必影响化学化工的发展 下面我们将介绍一些实用的非线性方程求解方法 并提供计算机程序 2 5 2 2实根的对分法 2 2 1使用对分法的条件2 2 2对分法求根算法2 2 3对分法VB程序清单 2 2 1使用对分法的条件 对分法或称二分法是求方程近似解的一种简单直观的方法 设函数f x 在 a b 上连续 且f a f b 0 则f x 在 a b 上至少有一零点 这是微积分中的介值定理 也是使用对分法的前提条件 计算中通过对分区间 逐步缩小区间范围的步骤搜索零点的位置 如果我们所要求解的方程从物理意义上来讲确实存在实根 但又不满足f a f b 0 这时 我们必须通过改变a和b的值来满足二分法的应用条件 2 2 2对分法求根算法 计算f x 0的一般计算步骤如下 1 输入求根区间 a b 和误差控制量 定义函数f x 2 判断 如果f a f b 0则转下 否则 重新输入a和b的值 3 计算中点x a b 2以及f x 的值 2 2 2对分法求根算法 分情况处理 1 f x 停止计算x x 转向步骤4 2 f a f x 0 修正区间 a x a b 重复3 3 f x f b 0 修正区间 x b a b 重复34 输出近似根x 右图给出对分法的示意图 2 2 3对分法VB程序清单 PrivateSubCommand1 Click Dimx1 x2 x y1 y2 y eer80 x1 InputBox x1 x2 InputBox x2 y1 f x1 y2 f x2 Ify1 y2 0ThenGoTo100ElsePrint pleaserepeatinputx1andx2 GoTo80EndIf100 x x1 x2 2y f x IfAbs y 0 001ThenPrint thefunctionrootis xPrint y y ElseIfy1 y 0Thenx2 xy2 yGoTo100Elsex1 xy1 yGoTo100EndIfEndIfEndSubPublicFunctionf x Dimyy x 3 x 2 1f yEndFunction 2 2 3对分法求解实例 用对分法求在区间 1 2 之间的根 解 1 f 1 2 8 f 2 0 3 由介值定理可得有根区间 a b 1 2 2 计算x2 1 2 2 1 5 f 1 5 0 45 有根区间 a b 1 5 2 3 计算x3 1 5 2 2 1 75 f 1 75 0 078125 有根区间 a b 1 5 1 75 2 2 3对分法求解实例 一直做到 f xn 计算前给定的精度 或 a b 时停止 详细计算结果见表2 1 对分法的算法简单 然而 若f x 在 a b 上有几个零点时 如不作特殊处理只能算出其中一个零点 另一方面 即使f x 在 a b 上有零点 也未必有f a f b 0 这就限制了对分法的使用范围 对分法只能计算方程f x 0的实根 对于多个零点的方程 我们可以通过将给定的区间 a b 进行细分 然后在细分后的区间内用二分法分别求解 从而得到多个零点 例如求方程在0 30内的所有根 需要对二分法进行以下处理 即先给定一个a 本例中为0 然后不断增加 直到找到一个b 使f a f b 0 调用二分法 计算在 a b 范围内的根 然后将b作为a 重复上面的工作 直到计算范围超出30为止 2 3直接迭代法 对给定的方程f x 0 将它转换成等价形式 给定初值x0 由此来构造迭代序列 k 1 2 如果迭代收敛 即 有 则就是方程f x 0的根 在计算中当小于给定的精度控制量时 取为方程的根 2 3直接迭代法 例如 代数方程x3 2x 10 0的三种等价形式及其迭代格式如下 2 3直接迭代法 对于方程构造的多种迭代格式 怎样判断构造的迭代格式是否收敛 收敛是否与迭代的初值有关 根据数学知识 我们可以直接利用以下收敛条件 1 当有 2 在 a b 上可导 并且存在正数L 1 使任意的 有 则在 a b 上有唯一的点满足 称为的不动点 而且迭代格式对任意初值均收敛于的不动点 并有下面误差估计式 2 6 2 3直接迭代法 要构造满足收敛条件的等价形式一般比较困难 事实上 如果为f x 的零点 若能构造等价形式 而 由的边疆性 一定存在的邻域 其上有 这时若初值迭代也就收敛了 由此构造收敛迭代格式有两个要素 其一 等价形式 应满足 其二 初值必须取自的充分小邻域 其大小决定于函数f x 及做出的等价形式 2 6 2 3直接迭代法 例 求代数方程x3 2x 5 0 在x0 2附近的零点 解 1 x3 2x 5 构造的迭代序列收敛 取x0 2 则准确的解是x 2 09455148150 2 将迭代格式写为迭代格式不能保证收敛 但并不一定不收敛 VB程序界面 2 4松弛迭代法 有些非线性方程或方程组当用上一节中的直接迭代法求解时 迭代过程是发散的 这时可引入松弛因子 利用松弛迭代法 通过选择合适的松弛因子 就可以使迭代过程收敛 松弛法的迭代公式如下 2 7 由上式可知 当松弛因子 等于1时 松弛迭代变为直接迭代 当松弛因子 大于1时松弛法使迭代步长加大 可加速迭代 但有可能使原来收敛的迭代变成发散 当0 1时 松弛法使迭代步长减小 这适合于迭代发散或振荡收敛的情况 可使振荡收敛过程加速 当 0时 将使迭代反方向进行 可使一些迭代发散过程收敛 2 4松弛迭代法 松弛法的迭代公式如下 2 7 松弛法是否有效的关键因子是松弛因子 的值能否正确选定 如果 值选用适当 能使迭代过程加速 或使原来不收敛的过程变成收敛 但如果 值选用不合适 则效果相反 有时甚至会使原来收敛的过程变得不收敛 松弛因子的数值往往要根据经验选定 但选用较小的松弛因子 一般可以保证迭代过程的收敛 2 4松弛迭代法 例 用松弛迭代法求解下面非线性方程组 并分析松弛因子对迭代次数及收敛过程的影响 已知迭代初值x和y均为0 收敛精度 0 001解 取以下迭代表达式 2 4松弛迭代法 若取松弛因子为1 1则其迭代过程如左表 若改变松弛因子 迭代过程及迭代所需的次数亦将发生变化 详见右表 由右表数据可知 当松弛因子小于1时 增大松弛因子 可加速迭代过程 减少迭代次数 但当松弛因子大于1时 迭代次数反而增加 当松弛因子达到1 56时 迭代过程分散 此法是一种迭代加速方法 在图2 3中 从x0开始 曲线y x 和直线y x之间的阶梯形折线为单变量的直接迭代过程 其迭代步长为每个阶梯的水平距离 2 5韦格斯坦法 图2 3韦格斯坦法迭代示意图 若利用图2 3中曲线 x 上的两个点作一直线 通过求该直线和y x的交点C的横坐标xW作为新的迭代点 这样的迭代计算过程就是韦格斯坦法 即韦格斯坦法需要在已知两点的前提下迭代计算第三点 一般第一点为人为设定 第二点利用直接迭代计算而得 则第三点就可以用韦格斯坦法迭代求解 2 5韦格斯坦法 图2 3韦格斯坦法迭代示意图 已知A点的坐标为 x1 y1 B点的坐标为 x2 y2 则过A B两点的直线方程为 求该直线和y x的交点可得 韦格斯坦法的一般计算通式为 2 5韦格斯坦法 2 5韦格斯坦法 由上述公式可知 韦格斯坦法也是一种松弛法 其松弛因子为一般情况下 当1 k 0时 迭代过程为单调收敛过程 当 1 k 0时 迭代过程为振荡收敛过程 但当k 1时 收敛将发散 故在编程计算时应注意当k 1时则取k 0进行计算 韦格斯坦法求解方程x3 2x2 5x 4 0根的QB程序 2 6牛顿迭代法 2 6 1牛顿法的理论推导2 6 2牛顿法的几何意义 对方程f x 0可构造多种迭代格式 牛顿迭代法是借助于对函数f x 0的泰勒展开而得到的一种迭代格式 将f x 0在初始值x0做泰勒展开得 取展开式的线性部分作为的近似值 则有 设则令 2 6 1牛顿法的理论推导 类似地 再将f x 0在x1作泰勒展开并取其线性部分得到 一直做下去得到牛顿法的迭代格式 牛顿迭代格式对应于f x 0的等价方程为 若b是f x 的单根时 则有 只要初值x0充分接近b 牛顿迭代都收敛 牛顿迭代是二阶迭代方法 可以证明 b为f x 的a重根时 迭代也收敛 但这是一阶迭代 收敛因子为 若这时取下面迭代格式 它仍是二阶方法 2 6 1牛顿法的理论推导 以为斜率作过 x0 f x0 点的直线 即作f x 在x0的切线方程 令y 0 则在x1处的切线与x轴的交点x1 即 再作f x 在x1处的切线 得交点x2 逐步逼近方程的根b 如图2 4所示 在区域 x0 x0 h 的局部 以直代曲 是处理非线性问题的常用手法 在泰勒展开中 截取函数展开的线性部分替代f x 2 6 2牛顿法的几何意义 图2 4牛顿切线法示意图 2 6 2牛顿法的几何意义 例 用牛顿迭代法求方程f x x3 7 7x2 19 2x 15 3 在x0 1附近的零点 解 计算结果列于表2 4中 比较表2 1和表2 4的数值 可以看到牛顿迭代法的收敛速度明显快于对分法 牛顿迭代法也有局限性 2 6 2牛顿法的几何意义 在牛顿迭代法中 选取适当迭代初始值x0是求解的前提 当迭代的初始值x0在某根的附近时迭代才能收敛到这个根 有时会发生从一个根附近跳向另一个根附近的情况 尤其在导数数值很小时 如图2 5所示 如果f x 0没有实根 初始值x0是实数 则迭代序列不收敛 图2 6给出迭代函数f x 2 x2 初始值x0 2的发散的迭代序列 图2 5 图2 6 2 7割线法 在牛顿迭代格式中 用差商代导数 并给定初始值x0和x1 那么迭代格式可写成如下形式 上式称为割线法 用割线法迭代求根 每次只需计算一次函数值 而用牛顿迭代法每次要计算一次函数值和一次导数值 但割线收敛速度稍慢于牛顿迭代法 割线法为1 618阶迭代方法 2 7割线法 做过两点 x0 f x0 和 x1 f x1 的一条直线 弦 该直线与x轴交点就是生成的迭代点x2 再做过 x1 f x1 和 x2 f x2 的一条直线 x3是该直线与x轴的交点 继续做下去得到方程的根f a 0 如图2 4所示 图2 4牛顿切线法示意图 2 7割线法 例2 5 用割线法求方程的根 取x0 1 5 x1 4 0 解 计算结果列于表VB程序 为了叙述的简单 我们以解二阶非线性方程组为例演示解题的方法和步骤 类似地可以得到解更高阶非线性方程组的方法和步骤 设二阶方程组其中x y为自变量 为了方便起见 将方程组写成向量形式 将在 x0 y0 附近进行二元泰勒展开 并取其线性部分 得到下面方程组 令则有 2 8非线性方程组的牛顿方法 2 8非线性方程组的牛顿方法 如果再将原方程组在u1处进行二元泰勒展开 并取其线性部分 得到下面方程组 解出得出继续做下去 每一次迭代都是一个方程组 即为止 2 8非线性方程组的牛顿方法 例2 6求解下面非线性方程组取初始值解 解方程得继续做下去 直到时停止 2 9化工生产中非线性方程组求解应用实例 在化工生产中 为了求解反应前后各物料的浓度 常常要联立求解一些非线性方程组 这些方程组难以用常规

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论