首页 > 其他 > 详细

Jordan Lecture Note-6: The Solutions of Nonlinear Equation.

时间:2014-02-19 21:36:08      阅读:393      评论:0      收藏:0      [点我收藏+]
The Solutions of Nonlinear Equation

    本文主要介绍几种用于解非线性方程f(x)=0f(x)=0bubuko.com,布布扣 的一些方法。

(1) Bisection Method.

bubuko.com,布布扣

算法:

step 1: 初始化a,b(b>a)a,b(b>a)bubuko.com,布布扣 ,使f(a),f(b)f(a),f(b)bubuko.com,布布扣 异号。

step 2: while (停止条件不满足)

                p=a+\frac{b-a}{2}p=a+b?abubuko.com,布布扣2bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

                若 f(p)f(a)<0f(p)f(a)<0bubuko.com,布布扣 b=pb=pbubuko.com,布布扣 ;否则a=pa=pbubuko.com,布布扣

           end while

step 3: 返回的ppbubuko.com,布布扣 为方程f(x)=0f(x)=0bubuko.com,布布扣 的解。

 停止条件:

  1. \begin{equation}|p_N-p_{N-1}|<\epsilon\label{equ:bisection1}\end{equation}
    |pbubuko.com,布布扣Nbubuko.com,布布扣?pbubuko.com,布布扣N?1bubuko.com,布布扣|<?bubuko.com,布布扣bubuko.com,布布扣(1)bubuko.com,布布扣bubuko.com,布布扣
    .
  2. \begin{equation}\frac{|p_N-p_{N-1}|}{|p_N|}<\epsilon\label{equ:bisection2}\end{equation}
    |pbubuko.com,布布扣Nbubuko.com,布布扣?pbubuko.com,布布扣N?1bubuko.com,布布扣|bubuko.com,布布扣|pbubuko.com,布布扣Nbubuko.com,布布扣|bubuko.com,布布扣bubuko.com,布布扣<?bubuko.com,布布扣bubuko.com,布布扣(2)bubuko.com,布布扣bubuko.com,布布扣
  3. \begin{equation}|f(p_N)|<\epsilon\label{equ:bisection3}\end{equation}
    |f(pbubuko.com,布布扣Nbubuko.com,布布扣)|<?bubuko.com,布布扣bubuko.com,布布扣(3)bubuko.com,布布扣bubuko.com,布布扣

 若采用式子\ref{equ:bisection1}1bubuko.com,布布扣 \ref{equ:bisection2}2bubuko.com,布布扣 作为停止的判断标准,会产生一种情况,即\lim{n\to\infty}(p_n-p_{n-1})=0limn(pbubuko.com,布布扣nbubuko.com,布布扣?pbubuko.com,布布扣n?1bubuko.com,布布扣)=0bubuko.com,布布扣 ,但序列\{p_n\}{pbubuko.com,布布扣nbubuko.com,布布扣}bubuko.com,布布扣 却发散。即算法可能会停止与f(p_n)f(pbubuko.com,布布扣nbubuko.com,布布扣)bubuko.com,布布扣 不等与0处。如p_n=\sum_{k=1}^n\frac{1}{k}pbubuko.com,布布扣nbubuko.com,布布扣=bubuko.com,布布扣nbubuko.com,布布扣k=1bubuko.com,布布扣1bubuko.com,布布扣kbubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣 。若采用式子\ref{equ:bisection3}3bubuko.com,布布扣 的判断标准,会产生一种情况,即|f(p_n)|<\epsilon|f(pbubuko.com,布布扣nbubuko.com,布布扣)|<?bubuko.com,布布扣 ,但|p-p_n||p?pbubuko.com,布布扣nbubuko.com,布布扣|bubuko.com,布布扣 却很大。如f(x)=(x-1)^10f(x)=(x?1)bubuko.com,布布扣1bubuko.com,布布扣0bubuko.com,布布扣 ,当p_n=\frac{3}{2}pbubuko.com,布布扣nbubuko.com,布布扣=3bubuko.com,布布扣2bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣 |f(p_n)|<10^{-3}|f(pbubuko.com,布布扣nbubuko.com,布布扣)|<10bubuko.com,布布扣?3bubuko.com,布布扣bubuko.com,布布扣 ,但实际上正确解与p_npbubuko.com,布布扣nbubuko.com,布布扣bubuko.com,布布扣 却相差\frac{1}{2}1bubuko.com,布布扣2bubuko.com,布布扣bubuko.com,布布扣bubuko.com,布布扣

 缺点:收敛太慢,为线性收敛。

(2) 固定点迭代(Fix-point iteration)。

定理:1)函数ggbubuko.com,布布扣 的定义域为[a,b][a,b]bubuko.com,布布扣 ,且对\forall x\in[a,b], g(x)\in [a,b]?x[a,b],g(x)[a,b]bubuko.com,布布扣 ,那么ggbubuko.com,布布扣 一定有fixed-point。

        2)在(a,b)(a,b)bubuko.com,布布扣 g^\prime(x) 存在,且存在|g^\prime(x)|\leq k<1 ,对\forall x\in (a,b) 成立,那么在[a,b] 内fixed-point唯一。

 证明:1)如果g(a)=a 或者g(b)=b ,定理 1)成立。否则g(a)>a,g(b)<b ,令h(x)=g(x)-x, h(a)=g(a)-a, h(b)=g(b)-b<0 ,根据中值定理,必然存在p 使h(p)=g(p)-p=0

          2)假设p,q 都是固定点,则\exists\xi, \frac{g(p)-g(q)}{p-q}=g^\prime(\xi) 。因此:

|p-q|=|g(p)-g(q)|=|g^\prime(\xi)||p-q|\leq k|p-q|<|p-q|

k<1 矛盾,故p=q

bubuko.com,布布扣

算法:

step 1: 初始化p_0,\epsilon,N_0

step 2: for i=1,...,N_0

                p=g(p_0) ;

                if |p-p_0|<\epsilon

                     break;

                p_0=p ;

           end for

step 3: 输出解p .

 例子:

如果要解决f(x)=x^3+4x^2-10=0 这个方程,则可转化成x=x+f(x)=x^3+4x^2+x-10

收敛分析:

满足在定义域[a,b] g(x)\in[a,b] ,并且|g^\prime(x)|\leq k<1 ,那么固定点算法一定收敛。

证明:|p_n-p|=|g(p_{n-1})-g(p)|=|g^\prime(\xi_n)||p_{n-1}-p|\leq k|p_{n-1}-p|

迭代|p_n-p|\leq k^n(p_0-p) ,即\lim_{n\to\infty}|p_n-p|\leq \lim_{n\to\infty}k^n|p_0-p|=0

其中k 的大小可以用来表示收敛的快慢,若k 接近与1,则收敛的慢;若k 接近于0则收敛的快。

(3)Newton-Raphson Method.

bubuko.com,布布扣

 从Taylor展开式看:

f(x)=f(\bar{x})+(x-\bar{x})f^\prime(\bar{x})+\frac{(x-\bar{x})^2}{2}f^{\prime\prime}(\xi(x))


 其中\xi(x) 介于x \bar{x} 之间。所以:

f(p)=0=f(\bar{x})+(p-\bar{x})f^\prime(\bar{x})+\frac{(p-\bar{x})^2}{2}f^{\prime\prime}(\xi(x))

由于|p-\bar{x}| 很小\Longrightarrow |p-\bar{x}|^2 更小 \Longrightarrow 故可以近似成:

0\approx f(\bar{x})+(p-\bar{x})f^\prime(\bar{x})\Longrightarrow p=\bar{x}-\frac{f(\bar{x})}{f^\prime(\bar{x})}

从上式可以得到如下迭代式:

p_n=p_{n-1}-\frac{f(p_{n-1})}{f^\prime(p_{n-1})}

f^\prime(p_{n-1})=0 时就无法进行。有定理证明Newton-Raphson 方法在区间[p-\delta,p+\delta] 内时一定会收敛到p ,但并未给出如何寻找这样的\delta

由于f^\prime(x) 往往很难计算,故提供一种计算f^\prime(x) 的近似方法。根据导数的定义:f^\prime(p_{n-1})=\lim_{x\to p_{n-1}}\frac{f(x)-f(p_{n-1})}{x-p_{n-1}}

x=p_{n-2} ,得到f^\prime(p_{n-1})=\frac{f(p_{n-2})-f(p_{n-1})}{p_{n-2}-p_{n-1}} ,故其对应的迭代式子:

p_n=p_{n-1}-\frac{f(p_{n-1})(p_{n-1}-p_{n-2})}{f(p_{n-1})-f(p_{n-2})}


这种方法称为正割法(Secant method)。从直观上看:

bubuko.com,布布扣

 根据Bisection方法的启示下可以得到一种新的迭代,称为试位法(False Position)。它的迭代式与Secant method一样,但在确定迭代式中的p_0 p_1 时采用Bisection method中的方法,即保证新得到的点在p_0 p_1 之间。

 (4)关于收敛.

定义:假定\{p_n\}_{n=0}^\infty 是一个收敛与p 的序列,且p_n\neq p ,如果存在正整数\lambda \alpha ,使\lim_{n\to\infty}\frac{|p_{n+1}-p_n|}{|p_n-p|^\alpha}=\lambda

,那么\{p_n\}_n^\infty 以order为\alpha 收敛于p \lambda 为渐进错误。

\alpha=1 时为线性收敛;

\alpha=2 时为二次收敛。

 理解:

假设\{p_n\}_{n=0}^\infty 是线性收敛于0,\lim_{n\to\infty}\frac{|p_{n+1}|}{|p_n|}=0.5 ;若\{p_n\}_{n=1}^\infty 是二次收敛于0,则\lim_{n\to\infty}\frac{|p_{n+1}|}{|p_n|^2}=0.5 。很显然,二次收敛的速度要快于线性收敛。

Bisection method是线性收敛。Fixed-point iteration的收敛速度是根据函数g(x) 而定,最优的情况下可以达到二次收敛。Newton-迭代在初始值选择合理的情况下可以达到二次收敛,但若初始值不合理,可能使Newton迭代发散,所以通常较好的做法是先用Bisection迭代一定次数得到的值作为Newton迭代的初始值。Secant Method的迭代order \alpha=1.62 .

加速收敛:采用Aitken‘s \Delta^2 method加速收敛序列。

n 足够大时,对\{p_n\}_{n=0}^\infty 有:

\frac{p_{n+1}-p}{p_n-p}\approx\frac{p_{n+2}-p}{p_{n+1}-p}\Longrightarrow (p_{n+1}-p)^2\approx(p_{n+2}-p)(p_n-p)

所以p_{n+1}^2-2p_{n+1}p+p^2\approx p_{n+2}p_n-(p_n+p_{n+2})p+p^2

\Longrightarrow (p_{n+2}+p_n-2p_{n+1})p\approx p_{n+2}p_n-p_{n+1}^2


\begin{align*}\Longrightarrow p&\approx \frac{p_{n+2}p_n-p_{n+1}^2}{p_{n+2}-2p_{n+1}+p_n}\\&\approx \frac{p_{n+2}p_n-2p_{n+1}p_n+p_n^2+2p_{n+1}p_n-p_n^2-p_{n+1}^2}{p_{n+2}-2p_{n+1}+p_n}\\&\approx \frac{p_n(p_{n+2}-2p_{n+1}+p_n)-(p_n^2-2p_{n+1}p_n+p_{n+1}^2)}{p_{n+2}-2p_{n+1}+p_n}\\&\approx p_n-\frac{(p_n-p_{n+1})^2}{p_{n+2}-2p_{n+1}+p_n}\end{align*}

Aitken‘s \Delta^2 method 的迭代序列为:

\begin{equation}\tilde{p_n}=p_n-\frac{(p_{n+1}-p_n)^2}{p_{n+2}-2p_{n+1}+p_n}\label{equ:aitken}\end{equation}

大概的证明过程如下:

\lim_{n\to\infty}\frac{p_{n+1}-p}{p_n-p}=\lambda \lim_{n\to\infty}\frac{\tilde{p_{n+1}}-p}{p_{n+1}-p}=0, \tilde{p_{n+1}}-p=\mathcal{O}(p_{n+1}-p)

\Longrightarrow \lim_{n\to\infty}\frac{\tilde{p_{n+1}}-p}{\tilde{p_n}-p}=0\Longrightarrow \exists\alpha>0,\lambda, \lim_{n\to\infty}\frac{\tilde{p_{n+1}}-p}{(\tilde{p_n}-p)^\alpha}=\lambda

由于Aitken‘s \Delta^2 method 需要初始化三个值,故结合fixed-point method得到 Steffensen‘s method。初始化一个p_0^{(0)}, p_1^{(1)}=g(p_0^{(0)}), p_2^{(0)}=g(p_1^{(0)}) , 用Aitken‘s \Delta^2 method迭代式计算p_0^{(1)} ......

(5)Fisher Scoring迭代。

它是用于解决最大似然方程的一种迭代。由于Newton-Raphson迭代算法对初始值的要求很高,当初始值选的不合理时会产生震荡现象,导致算法无法收敛,而用Fisher Scoring迭代则解决了上诉问题。

使用Newton-Raphson求最大似然估计值,设log似然函数为l(\theta)

其梯度向量:\nabla l(\theta^t)=[\frac{\partial l}{\partial \theta}]_{\theta^t} ;

海森矩阵:H(\theta^t)=[\frac{\partial^2l}{\partial\theta_i\partial\theta_j}]_\theta^t

l(\theta) \theta^t 处的泰勒展开:

l(\theta)=l(\theta^t)+\nabla l(\theta^t)(\theta-\theta^t)+\frac{1}{2}H(\theta^t)(\theta-\theta^t)^2

求导:\frac{\partial l}{\partial\theta}=\nabla l(\theta^t)+H(\theta^t)(\theta-\theta^t)=0

\Longrightarrow \theta^{t+1}=\theta^t-[H(\theta^t)]^{-1}\nabla l(\theta^t)

上述方法的缺点:

  1. 计算量太大,主要是要计算嗨森矩阵。
  2. H(\theta^t) 不可逆,或|H(\theta^t)|\approx 0 时,会产生震荡现象。当\theta^t \theta^* 附近处H(\theta^t) 很小,则\theta^{t+1}=\theta^{t}-\frac{dl/d\theta}{H(\theta^t)} 会变化很大。

Jordan Lecture Note-6: The Solutions of Nonlinear Equation.

原文:http://www.cnblogs.com/boostable/p/lec_solutions_of_nonlinear_equation.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!