好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

第二章 基于MATLAB的科学计算—非线性方程(组).doc

17页
  • 卖家[上传人]:M****1
  • 文档编号:446424141
  • 上传时间:2024-01-12
  • 文档格式:DOC
  • 文档大小:563.50KB
  • / 17 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 科学计算—理论、方法及其基于MATLAB的实现与分析解非线性方程(组)(一)直接法二分法:  设方程在区间上有唯一解,并且,如方程        (2)首先要确定适当的包含根的区间,这可以依据闭区间上连续函数的介值定理来确定,例如,,,所以方程 (2)至少有一个实根属于区间,图1表明区间中只含有一个根,显然方程 (2)的根不易直接求得在区间[-1,0]、[0,1]和[1,2]的情形,如下图1所示例1 plotNL_fun01.mplotNL_fun01 clearx=-1:0.05:2;f=x.^3-2.3*x.^2+x.*sin(x)+0.3;plot(x,f,'r',x,0*x,'k')title('The Image of f(x)=x^3-2.3*x^2+x*sin(x)+0.3')xlabel('\fontsize {12} \fontname {宋体} 图1')axis square 二分法的求根过程:用表示方程在区间上的根,对于给定的精度要求,取区间的中点,并按下式进行判断:       (2)以为例,如果,那么区间内的任何一点都可以作为方程的近根二分法适用于一个方程的场合,收敛速度是线性的,二分次数的估计:      (3)2、黄金分割法:在区间内取对称的两点:         (4)使得按这种方法选取点和,每次去掉的区间长度至少是原区间长度的0.618倍,  (5)适用于一个方程的场合,收敛速度是线性的,迭代次数的估计:     (6)(二)迭代法首先将方程(组)写成等价的迭代形式:       (7)由此确定了相应的迭代法: (8)  迭代收敛的图像解释对于非线性方程(组)的迭代法来说,同样面临收敛性问题,为说明收敛性条件,先看下面的例子:例2:  让我们来求如下方程的根下面,我们采用迭代法求方程 (1)位于区间中的根,为此构造迭代算法如下:      (9)  ,    (10)在区间中任取一个迭代初值,如取初值.执行下面的程序:EqutIteration.m:open EqutIteration.m EqutIteration N = 29下面欲求1.5附近的根,为此分别取初值,,迭代的结果如下:open Ex_IteraConv01 Ex_IteraConv01 N = 31收敛性定理:(收敛的充分性条件)  设方程在上存在唯一解,是方程的等价形式,如果1、在上连续可微;2、对任何,;3、,则对任何,由迭代算法  ,           (11)生成的序列收敛于方程在上的唯一解。

      并有误差估计式.注1:满足方程的点称为映射的不动点;注2:具有性质的映射称为压缩映射;因为,,,下面证明误差估计式,因为,据此递推,可得.于是对任意正整数,有在上式中令,注意到.对任意正整数,有.令,则有一点注释:当方程(组)为线性方程(组)时,就是迭代格式 中的矩阵,而就对应着矩阵的范数.例3: Ex_IteraConv01.mopen Ex_IteraConv01x=[0.3:0.01:2];y=(0.3+x.*sin(x))/(x.*(2.3-x));plot(x,y,x,x)hold onm=1;z=1.4;while m<15y=(0.3+z*sin(z))/(z*(2.3-z));;plot([z z],[z y],'r',[z y],[y y],'r')z=y;m=m+1;pauseend 迭代收敛的图像解释例4: Ex_IteraConv02.mopen Ex_IteraConv02 Ex_IteraConv02 上面的例子表明了两点:在根附近,迭代法(10)不满足的条件,导致迭代法序列不收敛于此根;在根附近,迭代法(10)尽管也不满足的条件,但所生成的序列收敛于此根.例5 在用迭代法求解方程的正根时,构造迭代函数,试选取适当的使迭代计算收敛,并计算其迭代3步所得的值.解: 由于根,故取使.为使收敛速度快,取使,因此迭代公式为.取初值=2,迭代计算,数值结果如下:显然,这里选取的迭代公式收敛,并且收敛速度较快.定理 (局部收敛性)设在的邻近连续,且,则迭代过程在邻近具有局部收敛性.收敛速度:如果有(当时,要求)  (29)则称迭代的收敛速度是阶的。

      特别地,时称为线性收敛(Linear Convergence),时称为超线性收敛,时称为平方收敛(Quadratic Convergence).注:(1) 若压缩因子,则迭代过程为线性收敛.(2) 若压缩因子,则迭代过程为超线性收敛.(3) 一般地,收敛阶越大,迭代过程收敛越快.关于收敛速度的一个重要定理:如果1、在区间上次连续可微;2、对任何,;3、;4、在的不动点处,   则对任何,由迭代算法生成的序列具有阶收敛速度解释:由于,可知迭代过程具有局部收敛性.将在根处作泰勒展开,则有,其中,在与之间.又因为,,由上式得,因此对迭代误差,当时有.这表明迭代过程必为阶收敛.证毕.例如,在求解方程正根的时,对于迭代格式,因为,,,所以由定理5可知,该迭代过程为2阶收敛.常用的迭代法1 牛顿迭代法 (Newton Iteration): 1)一个方程的场合:,        (13)牛顿迭代法构造说明:设方程右端的函数在所确定的包含唯一根的区间内具有一阶连续导数,,那么由一阶微分的性质,有        (14)由式(14),可得            (15)从而得到迭代格式            (16)以及牛顿迭代法(14).牛顿迭代法的几何解释例4: open NewtonIter01 定理 若在单根附近存在连续的二阶导数,且初始值充分接近,则牛顿迭代过程收敛,而且有.证明 (1) 对于,取,则牛顿迭代过程为,注意到,,由于是的单根,即=0,,所以有.由定理4知,迭代过程是局部收敛的.且由定理5知,迭代过程在点邻近是2阶收敛的.(2) 将在处作泰勒展开并代入,有注意到,,得到,因此有.【注】 牛顿迭代过程在邻近具有平方收敛速度.牛顿迭代法的优点:快速收敛性,算法简单、容易实现.牛顿迭代法的缺点:因为局部收敛性,所以初值最好选在邻近,否则,可能不收敛.牛顿下山法原理:,其中称为下山因子, 下山因子的选择:为了保证收敛性,下山因子不能太小.为了保证牛顿法的高阶收敛性,希望充分大后,使,转化为选择标准牛顿法.下山因子的一种常用取法是从开始,逐次将减半进行计算,即取,直到能使下降条件成立为止.2)方程组的场合:对于给定的非线性方程组         (17)记          (18)式(18)的右端称为向量值函数的Jacobian矩阵.设元向量值函数在其定义域内的一点的邻域内具有二阶连续偏导数,则对于该邻域内的任意一点,        (19)举例说明:以二元函数为例,  (20)    (20)进而,对于一般的元函数有         (21)将上述结论应用于元向量值函数的每一个分量,既有公式(19)所述的结论。

      进一步地,当该邻域内的点是方程组(17)的根时,有        (22)          (23)这表明:       (24)由此得到如下迭代算法:    (25)例5 用牛顿法求下面方程组在附近的解.解 第一次迭代:先求出Jacobi矩阵,取初值,则.,而,代入得方程组.解得:因此得新近似解,此时,.第二次迭代:将再代入Jacobi矩阵中,得方程组.解得:,因此第二次迭代的近似解为,此时,,精度已相当高.显然在解附近,牛顿迭代过程得到的序列具有二阶收敛性态.2 弦位法 (26)例5: SecantIter01.m3关于Aitken加速法 (27)算法(27)能够加速的根据是 (28)Newton迭代法的收敛速度是2阶的;弦位法的收敛速度是超线性的MATLAB 求解方程(组)功能简介fzero: Find zero of a function of one variable例7: Solvefun1zero.m % FUN1ZERO.m Solvefun4zero.m % FUN4ZERO.mfsolve: Solve a system of nonlinear equations例8: SolveNLE01.m % NLE01.m SolveNLE02.m % NLE02.m SolveNLE03.m % NLE03.mroots: Polynomial roots例9: polyRoot01.mSOLVE: Symbolic solution of algebraic equations例10: SymSolEqu01.m。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.