
第2章非线性方程与方程组的数值解法.ppt
105页第2章非线性方程与方程组的数值解法 本章重点介绍求解非线性方程 的几种常见和有效的数值方法,同时也对非线性方程组 求解,简单介绍一些最基本的解法.无论在理论上,还是在实际应用中,这些数值解法都是对经典的解析方法的突破性开拓和补充,许多问题的求解,在解析方法无能为力时,数值方法则可以借助于计算机出色完成.2.1二分法求非线性方程 确定方程的有根区间 计算根的近似值的根的方法分为两步: 首先确定有限区间:依据零点定理 设 ,且 ,则方程 在区间 上至少有一个根如果 在 上恒正或恒负,则此根唯一等步长扫描法求有根区间 ¡用计算机求有根区间:等步长扫描法 设h>0是给定的步长,取 ,若 则扫描成功;否则令 ,继续上述方法,直到成功。
如果 则扫描失败再将h 缩小,继续以上步骤等步长扫描算法 算法:(求方程 的有根区间)(1) 输入 ;(2) ; (3) ,若 输出失败信息,停机4)若 输出 ,已算出方程的一个根,停机等步长扫描算法(5) 若 输出 为有根区间,停机(6) ,转 3)¡注:如果对足够小的步长h扫描失败说明:Ø在 内无根Ø在 内有偶重根二分法 ¡用二分法(将区间对平分)求解 令 若 ,则 为有根区间,否则 为有根区间 记新的有根区间为 , 则 且 二分法¡对 重复上述做法得¡且 二分法 设 所求的根为 , 则 即 取 为 的近似解 求方程f(x)=0的根的二分法算法求方程f(x)=0的全部实根的二分法算法求方程f(x)=0的全部实根的二分法算法例题例1 设方程 解:取h=0.1,扫描得: 又 即 在 有唯一根。
2.2一般迭代法¡2.2.1 迭代法及收敛性 对于 有时可以写成 形式 如: 迭代法及收敛性 考察方程 这种方程是隐式方程,因而不能直接求出它的根,但如果给出根的某个猜测值 , 代入 中的右端得到 ,再以 为一个猜测值,代入 的右端得 反复迭代得迭代法及收敛性 若 收敛,即 则得 是 的一个根迭代法的几何意义¡ 交点的横坐标 y=x简单迭代法 将 变为另一种等价式 选取 的某一近似值 ,则按递推关系 产生的迭代序列 这种方法算为简单迭代法例题 例2 试用迭代法求方程 在区间(1,2)内的实根。
解:由 建立迭代关系 k=10,1,2,3…….计算结果如下:例题¡精确到小数点后五位例题¡但如果由 建立迭代公式 仍取 ,则有 , 显然结果越来越大, 是发散序列迭代法的收敛性¡定理(压缩映像原理)设迭代函数 在闭区间 上满足(1)(2) 满足Lipschitz条件即 有且 压缩映像原理则 在 上存在 唯一解 ,且对 ,由 产生的序列 收敛于 压缩映像原理¡证明:不失一般性,不妨设 否则 为方程的根¡首先证明根的存在性 令 压缩映像原理 则 , 即 由条件2) 是 上的连续函数 是 上的连续函数。
故由零点定理 在 上至少有一根压缩映像原理¡再证根的唯一性 设有 均为方程的根 则 因为 0 ¡迭代格式 对任意初值 ,均收敛于 的不动点 ,并有下面误差估计式:n构造收敛迭代格式有两个要素:n1.等价形式 应满足 ;n2.初值必须取自 的充分小邻域,其大小决定于函数f(x),及做出的等价形式 例题¡例例 证明函数 在区间[1,2]上满足迭代收敛条件¡证明:例题 例题¡若取迭代函数 , 不满足压缩映像原理,故不能肯定 收敛到方程的根 简单迭代收敛情况的几何解释¡例 求代数方程x3-2x-5=0,在x0=2附近的零点¡解: (1)x3=2x+5 所以构造迭代序列收敛取x0=2,则:准确的解是x=2.094551481502.2.2 Steffensen加速收敛法¡迭代法收敛的阶迭代法收敛的阶 定义定义 设序列 收敛到 ,若有实数和非零常数C,使得 其中, ,则称该序列是p 阶收敛的,C 称为渐进误差常数。 迭代法收敛的阶迭代法收敛的阶当p=1时,称为线性收敛;当p>1时,称为超线性收敛;当p=2时,称为平方收敛或二次收敛迭代法收敛的阶迭代法收敛的阶¡定理定理 设 是方程 的不动点, 若为足够小的正数 如果 且 ,则从任意 出发,由 产生的序列 收敛到 ,当 时敛速是线性的 迭代法收敛的阶迭代法收敛的阶¡证明:¡满足压缩映像原理迭代法收敛的阶迭代法收敛的阶 ¡敛速是线性的 线性收敛到 Steffensen迭代格式¡由线性收敛知 当n充分大时有 即Steffensen迭代格式¡展开有:Steffensen迭代格式¡已知 ,则 ,¡改成 n=0,1,2,…Steffensen迭代格式¡也可以改写成¡其中迭代函数Steffensen迭代法收敛的充要条件¡定理 Steffensen迭代法收敛的充要条件¡证明:必要性Steffensen迭代法收敛的充要条件¡充分性Steffensen算法的收敛速度 Steffensen算法的收敛速度¡定理 在定理2.2.3假设下,若 产生的序列 至少平方收敛到 。 Steffensen算法的收敛速度Steffensen算法的收敛速度 Steffensen算法的收敛速度 Steffensen算法的收敛速度 由定理知 至少以平方速度收敛到 也就是说:简单迭代法是线性收敛;Steffensen迭代至少平方以上收敛(加速收敛)例题¡例试用Steffensen算法求解方程¡解法一、取 ,由 n = 0,1,2,…例题¡取初值 ,计算结果如下:N XnYnZn0 1.51.3572088081.3308609591 1.3248991811.3247523791.3247244962 1.3247179571.3247179571.324717957例题¡解法二、取 ,由¡对于该迭代函数在一般迭代法中是发散的,而Steffensen格式却是收敛的 n=0,1,2,…例题¡取初值 ,计算结果如下:N XnYnZn0 1.52.3751.2396484371 1.4162929751.8409219155.2388727692 1.3556504421.4913982792.3172706993 1.3289487771.3470628831.4443512244 1.3248044891.3251735441.3271172815 1.3247179441.3247181521.3247189806 1.324717957Steffensen迭代格式几何解释 Steffensen迭代算法 Steffensen迭代算法 为松弛因子n 时,为直接迭代;n 时,迭代步长加大,加速迭代;n 时,迭代步长减小,适合迭代发散;n 时,迭代反方向进行。 松弛迭代法松弛迭代法¡通过选择合适的松弛因子,就可以使迭代过程收敛松弛法的迭代公式如下: (2-7) 松弛迭代法松弛迭代法 实例实例¡例 用(松弛)迭代法求解下面非线性方程组,并分析松弛因子对迭代次数及收敛过程的影响已知迭代初值x和y均为0,收敛精度ε=0.001 n解:取以下迭代表达式:¡若取松弛因子为1.1,则其迭代过程如表2-2n若改变松弛因子,迭代过程及迭代所需的次数亦将发生变化,详见表2-3表2-2 迭代过程表2-3 松弛因子及迭代次数的变化,则为直接迭代法2.3 Newton迭代法¡设x * 是方程f (x ) = 0的根,又x0 为x * 附近的一个值 ,将f (x ) 在x0附近做泰勒展式 令 ,则 Newton迭代法去掉 的二次项,有:即以x1代替x0重复以上的过程,继续下去得:Newton迭代法以此产生的序列{Xn}得到f(x)=0的近似解,称为Newton法,又叫切线法Newton迭代法几何解释¡几何意义例题例2.3.1 用Newton法求 的近似解解:由零点定理。 例题例题¡例2.3.2 用Newton法计算 解:Newton迭代法算法框图Newton迭代法算法Newton迭代法收敛性定理2.3.1 设函数 ,且满足 若初值 满足 时,由Newton法产生的序列收敛到 在[a,b]上的唯一根Newton迭代法收敛性证明: 根的存在性¡根的唯一性Newton迭代法收敛性¡收敛性Newton迭代法收敛性 Newton迭代法收敛性Newton迭代法收敛性¡推论 在定理2.3.1条件下, Newton迭代法具有平方收敛速度代数方程的Newton迭代法¡代数方程的Newton迭代法推导设n次代数方程用Newton迭代法求有限区间的实根,则要计算 ,一般采用秦九韶算法代数方程的Newton迭代法¡由Taylor展式代数方程的Newton迭代法 代数方程的Newton迭代法同理 代数方程的Newton迭代法比较x的同次幂系数得:故代数方程的Newton迭代公式代数方程的Newton迭代法算法 2.4弦截法¡Newton迭代法有一个较强的要求是 且存在。 因此,用弦的斜率 近似的替代 弦截法¡令y=0,解得弦与x轴的交点是坐标x2弦截法弦截法的几何解释例题例2.4.1 用快速弦截法求方程在区间(1,2)内的实根解:取x0=1,x1=2,代入公式2.4.2计算结果,如表2.4.1所示kxkf(xk)01-112521.166666667-0.5787036931.253112023-0.2853630241.3372064440.05388057951.323850096-0.003698116861.324707936-4.273521*10E-571.3247179653.79*10E-8弦截法收敛定理弦截法收敛定理求解方程f(x)=0的快速弦截法2.5 非线性方程组的牛顿方法非线性方程组的牛顿方法¡设二阶方程组n其中x,y为自变量为了方便起见,将方程组写成向量形式:n将 在(x0,y0)附近进行二元泰勒展开,并取其线性部分,得到下面方程组:2.5 非线性方程组的牛顿方法非线性方程组的牛顿方法¡令 则有如果再将原方程组在u1处进行二元泰勒展开,并取其线性部分2.5 非线性方程组的牛顿方法非线性方程组的牛顿方法¡得到下面方程组: 解出得出继续做下去,每一次迭代都是一个方程组为止。 (2-12) 2.5 非线性方程组的牛顿方法非线性方程组的牛顿方法 实例实例¡例 求解下面非线性方程组取初始值n解:解方程得2.5 非线性方程组的牛顿方法非线性方程组的牛顿方法 实例实例继续做下去,直到时停止2.6 应用实例应用实例¡例 在合成氨生产中,烃类蒸气发生以下转化反应: 已知进料甲烷为1mol,水蒸汽为5mol,反应后总压P=1atm,反应平衡常数为: 试求反应平衡时各组分的浓度¡解:设反应平衡时有x摩尔甲烷转化成CO,同时生成的CO中又有y摩尔转化成CO2,则反应平衡时各组分的摩尔数及分压如下: ¡将平衡时各组分的分压表达式代入反应平衡常数KP1及KP2的表达式得:¡设x的初值为0.1, y的初值为0.05,若采用直接迭代法进行计算,可得: x1=0.999988 y1=1.8707143¡若采用直接迭代的方法求解该方程组,结果是发散的,无法得到真实解。 但是,若采用松弛迭代法求解,并取松弛因子ω小于0.49,则可得到收敛解其最后的求解结果为: x*=0.9437 y*=0.6812 。












