zoukankan      html  css  js  c++  java
  • 牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导

     

           在辨识工作中,常常需要对辨识准则或者判据进行求极值,这往往涉及到求非线性方程(组)的解问题。牛顿迭代法是一种常用方法。下面把自己对牛顿迭代法的学习和理解做个总结。
     
    1.一元非线性方程的牛顿迭代公式和原理
           以一元非线性方程 f(x)=0 为例,对函数 f(x)进行Taylor级数展开(只展开至线性项)得
           f(x) = f(x0)+f'(x0)(x-x0)
          所以方程可写成
          f(x0)+f'(x0)(x-x0) = 0
           其中x0是给定的已知值,则不难推导出方程的解(当然,只是近似解,毕竟Taylor展开过程中只取了线性项)
           x = x0 - f(x0) / f'(x0)
           其中x不是真实解,但是相比之前的x0更靠近真实解了,因此可以多重复几次上述过程,从而使得到的解非常接近准确值。所以,对于一元非线性方程,牛顿拉夫逊迭代公式为:
            x(k+1) = x(k) - f(x(k)) / f'(x(k)) 

           根据Taylor级数的几何意义我们可以从几何上形象的看牛顿迭代法的求解f(x)=0的过程。
    牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导
           第一次迭代x1 = x0 - f(x0) / f'(x0),其中f(x0) / f'(x0)的几何意义很明显,就是x0到x1的线段长度(这可以从直角三角形的知识得到)。第二次迭代x2 = x1 - f(x1) / f'(x1),其中f(x1) / f'(x1)的几何意义很明显,就是x1到x2的线段长度。同理可以进行第三次迭代第四次迭代,可以明显的看出x的取值在不断逼近真实解x*。
           可能有人问,迭代求得的结果会不会不收敛,也就是x会不会偏离x*。由于x0是在x*附近区域取值的,因此x0到x1这段曲线应该认为是平滑的没有转折的,因此切线与x轴的交点只会越来越接近真实解x*。但是如果x0的取值离x*比较远的话,那么x0到x1这段曲线上可能有“转折”,这样就可能引起迭代的不收敛。下图中迭代从x0到x1是在靠近真实解,但x2却反而远离真实解。
    牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导

           这也是牛顿拉夫逊迭代法在解非线性方程(组)问题时,要求初值选定尽量接近真实解得原因。


     

    2.二元非线性方程组的牛顿迭代公式

    牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导
           可以看出,对二元非线性方程组的每一个方程分别Taylor展开并推导相对来说麻烦了一些,但是也是可接受的。但是对于三元及更多元的非线性方程组来说,分别对每一个方程进行Taylor展开最后求解多元线性方程组也是非常复杂的。所以用矩阵的形式,根据牛顿迭代的原理和意义进行推导,能使得推导过程和表达式更简单。

     

    3.多元函数方程组迭代

    牛顿迭代法解非线性方程(组)----迭代原理介绍和迭代公式推导

  • 相关阅读:
    Spring之IOC、AOP和事务
    Spring Aware接口
    ReentrantLock原理
    基于AnnotationConfigApplicationContext的容器创建过程(Spring Version 5.2.0)
    基于AnnotationConfigApplicationContext的Bean加载过程(Spring Version 5.2.0)
    Future和CompletableFuture
    ThreadLocal原理
    Oracle 11g R2 数据库卸载教程
    Oracle 11g R2 数据库安装教程
    SQL Server 2017数据库卸载教程
  • 原文地址:https://www.cnblogs.com/TomLily/p/5814585.html
Copyright © 2011-2022 走看看