牛顿法及其收敛性

Posted baowee

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛顿法及其收敛性相关的知识,希望对你有一定的参考价值。

目录


0. 引论

在工程中,很多的问题都可以归结为求解一组偏微分方程组。描述如下:在某一个区域(Omega)中,物理量(u={u_1,u_2,cdots,u_n})满足一组控制方程,并且在边界上满足若干的边界条件:

技术分享图片

控制方程利用两个微分算子来表示(A(u),B(u))
[ A(u)=egin{cases} A_1(u)& =0 A_2(u)& =0 &vdots end{cases} in Omega ]

[ B(u)=egin{cases} B_1(u)& =0 B_2(u)& =0 &vdots end{cases} in partial Omega ]

以上的问题,只有在求解域比较简单,控制方程形式比较特殊的时候才能求出解析表达,一般情况下,工程中的问题求解域是比较复杂的,控制方程往往是高阶非线性的,这个时候,只能借助于数值求解。偏微分方程的数值解法,常见的有有限元法,有限差分法,有限体积法等。这些数值解法的基本思想是用有限的自由度插值逼近真实解。不管哪一种数值方式,偏微分方程系统离散之后,形成的是常微分方程组或者代数方程组。

在工程中,对于时间维度往往是特别对待的,还有时间项的问题成为非定常问题,也叫瞬态问题,这类问题在空间离散之后,形成的是关于时间的常微分方程,然后利用一些推进求解的方法,将时间维度离散,转换成纯粹的带式方程。而控制方程不含时间项的问题成为问题问题,对于问题问题,将控制方程在空间离散之后,形成代数方程组。

可见,不论是那种问题,最后求解的是代数方程组。因此,如何准确高效的求解代数方程组就显得至关重要。这一部分的内容在数值分析里面有详细的介绍,对于工程师来说,一般不比去了解里面艰深的理论,但是,每一种求解方法的适用范围,求解速度,收敛性等重要特征,最好还是要了解。这样才能在使用的时候不至迷茫。

代数方程组可以简记为如下的形式:
[ F(u)=b ]
还可以表示成为矢量的形式:
[ Au=b ]
当系数矩阵A与变量u的取值没有关系时,问题时线性的,否在,时非线性问题。众所周知,非线性问题的求解时困难的!!

常用的线性方程组求解方法有

  • 直接法
    • 高斯消去法、矩阵三角分解法(直接分解法、平方根方法、追赶法)、
  • 迭代法
    • 雅可比迭代、高斯-赛德尔迭代、超松弛法、块迭代法、共轭梯度法、最速下降法

常用的非线性方程组的求解方法有

  • 迭代法
    • 二分法、不动点迭代、牛顿法、简化牛顿法、牛顿下山法、弦截法、抛物线法
    • 多变量不动点迭代法、牛顿法

这里主要介绍牛顿法的一些特性。


2. 牛顿法

2.1 单变量牛顿法

对于单变量的牛顿法,大家已经很熟悉了,这里做一点简要的回顾。

方程
[ f(x)=b ]
给定初值(x^0),利用迭代关系式:
[ x^{k+1}=x^k-frac{f(x)-b}{f‘(x)} ]
经过一定次数的迭代,就可以收敛到其精确值(x^*)

牛顿法存在两个问题:

  1. 当函数的二阶导数在精确解的邻域内小于0时,无法收敛到精确解。
  2. 当初值与精确解相差较大时,收敛困难。

2.2 多变量牛顿法

对与多变量牛顿法,其形式可以利用泰勒公式来推导。有(F(u)=0),假设其精确解为(u^*),则有:
[ F(u^*)=0 ]
将F(u)在精确解处展开,如下:
[ F(u^*)=F(u)+ abla F(u)(u^*-u) ]

[ [ abla F(u)]^{-1}F(u)=u-u^* ]

因为精确解是不知道的,所以,利用一个初值代替:
[ u^{k+1}=u^k-[ abla F(u^k)]^{-1}F(u^k) ]
对于方程(10)所示的迭代式,影响其收敛性的一个重要指标是其Hesse矩阵。Hesse矩阵定义如下:
[ G(u)= abla_u^2F(u) ]
对于多变量牛顿法,(G(u))满足Lipschitz条件:
[ ||G(y)-G(z)|| <= eta||y-z|| ]
(G(u^*))正定,当(u^0)充分接近(u^*)时,迭代是收敛的,切实二阶收敛。

牛顿法的优点:收敛速度快

缺点:计算量大,收敛条件严格。


3. 简化牛顿法

牛顿法具有收敛速度快的特点,但是其缺点也很明显:一是牛顿法计算量很大,每次都要计算Hesse矩阵和(F(x)),并且Hessen矩阵有时计算较为困难。二是要求迭代初值在精确解附近,不然很难收敛。针对上面的问题,有一些改进的牛顿法。这里最为常用的是简化牛顿法(又称平行弦法)和牛顿下山法。

3.1 平行弦法

迭代式为:
[ egin{equation} egin{cases} x^{k+1} & =phi(x^k) \\phi(x^k)& =x^k-Cf(x^k) end{cases} end{equation} ]
其中,(C=frac{1}{f‘(x_0)}) 。该方法要求迭代式的一阶导数范数小于1才是局部收敛,且是线性收敛。

3.2 牛顿下山法

在迭代过程中,满足单调递减的要求的迭代方法称作下山法。即要求迭代过程中,始终有:
[ ||f(x^{k+1})||<||f(x^k)|| ]
迭代式:
[ egin{equation} egin{cases} x^{k+1} & =phi(x^k) \\phi(x^k)& =x^k-lambdafrac{f(x^k)}{f‘(x^k)} end{cases} end{equation} ]
其中,(lambda(0<lambda le 1))称为下山因子。选择下山因子的时候,从(lambda=1)开始,逐次减半进行试算,直到下降条件(14)成立为止。

























以上是关于牛顿法及其收敛性的主要内容,如果未能解决你的问题,请参考以下文章

第十一章 拟牛顿法

牛顿法与拟牛顿法的区别与联系

牛顿法与拟牛顿法

牛顿法和拟牛顿法

牛顿法和拟牛顿法

牛顿法,拟牛顿法,共轭梯度法各自的优缺点是啥?