17. 非线性方程组的几种解法

数值分析



周维祺

非线性方程组

{f1(x1,,xn)=0fn(x1,,xn)=0\begin{dcases}f_1(x_1,\ldots,x_n)=0 \\ \quad\quad\quad\vdots \\ f_n(x_1,\ldots,x_n)=0\end{dcases}

非线性方程组

x=(x1,,xn)Rn,F=(f1,,fn):RnRnx=(x_1,\ldots,x_n)\in\mathbb R^n, F=(f_1,\ldots,f_n): \mathbb R^n\to\mathbb R^n

F(x)=0{f1(x1,,xn)=0fn(x1,,xn)=0F(x)=0 \Leftrightarrow \begin{dcases}f_1(x_1,\ldots,x_n)=0 \\ \quad\quad\quad\vdots \\ f_n(x_1,\ldots,x_n)=0\end{dcases}

不动点法

构造Ω\Omega上压缩映射Φ:RnRn\Phi:\mathbb R^n\to\mathbb R^n,使其不动点xx^*F(x)=0F(x)=0的解,从而有迭代法x(k+1)=Φ(x(k))x^{(k+1)}=\Phi(x^{(k)})

例子

  • {x(5+x2+y2)=1x+y=y4\begin{dcases}x(5+x^2+y^2)=1 \\ x+y=y^4\end{dcases}x,y[0,2]x,y\in[0,2]上的根

  • 以下用不动点法求解

  • {x=(5+x2+y2)1y=(x+y)1/4\begin{dcases}x=(5+x^2+y^2)^{-1} \\ y=(x+y)^{1/4}\end{dcases}, Φ:((5+x2+y2)1,(x+y)1/4)\Phi:\left((5+x^2+y^2)^{-1}, (x+y)^{1/4}\right)

压缩映射

Φ(x)=(Φ1(x),,Φn(x))\Phi(x)=\left(\Phi_1(x),\ldots, \Phi_n(x)\right),其Jacobi矩阵为

JΦ=(Φ1x1Φ1xnΦnx1Φnxn)J_{\Phi}=\begin{pmatrix} \frac{\partial \Phi_1}{\partial x_1} &\ldots & \frac{\partial \Phi_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial \Phi_n}{\partial x_1} &\ldots & \frac{\partial \Phi_n}{\partial x_n} \end{pmatrix}

则在凸集Ω\Omega上有Φ(x)Φ(y)supξΩJΦ(ξ)xy\|\Phi(x)-\Phi(y)\|\le\sup\limits_{\xi\in\Omega}\|J_{\Phi}(\xi)\|\cdot\|x-y\|

此处\|\cdot\|是任意的向量范数和所对应的矩阵算子范数

凸集

  • Ω\Omega是凸集,若其中任意两点连线段上所有的点都在Ω\Omega

  • 连线的直线方程:x+t(yx)x+t(y-x); 连线段:t[0,1]t\in[0,1]

  • Ω\Omega是凸集:x,yΩ,t[0,1]\forall x,y\in\Omega, t\in[0,1], 都有(1t)x+tyΩ(1-t)x+ty\in\Omega

不动点法的步骤

  • 构造函数Φ\Phi,使Φ\Phi的不动点是FF的根

  • 选择合适的凸区域Ω\Omega,使根在Ω\Omega中,且Φ(Ω)Ω\Phi(\Omega)\subseteq\Omega

  • 验证Ω\Omega上有ρ(JΦ)<1\rho(J_{\Phi})<1或存在合适的算子范数\|\cdot\|,使JΦ<1\|J_{\Phi}\|<1

练习

Ω={(x,y):0x0.4,0.8y1.2}\Omega=\{(x,y): 0\le x\le 0.4, 0.8\le y\le 1.2\},

Φ((xy))=((5+x2+y2)1(x+y)1/4)\Phi(\begin{pmatrix}x \\ y\end{pmatrix})=\begin{pmatrix}(5+x^2+y^2)^{-1} \\ (x+y)^{1/4} \end{pmatrix}

验证Φ\PhiΩ\Omega上的压缩映射

牛顿法

x(k+1)=x(k)(JF(x(k)))1F(x(k))x^{(k+1)}=x^{(k)}-\left(J_F(x^{(k)})\right)^{-1}F(x^{(k)})

牛顿法

先直接或迭代求解

JF(x(k))y(k)=F(x(k))J_F(x^{(k)})y^{(k)}=F(x^{(k)})

再令

x(k+1)=x(k)y(k)x^{(k+1)}=x^{(k)}-y^{(k)}

练习

用牛顿法求{x(5+x2+y2)=1x+y=y4\begin{dcases}x(5+x^2+y^2)=1 \\ x+y=y^4\end{dcases}的一个根

(0.2,1)(0.2,1)为初值,作一步计算

收敛性:一定条件下,至少超线性

xΩRnx^*\in\Omega\subset\mathbb R^nFF的一个根,JFJ_F存在且连续,并在Ω\Omega上可逆,则存在δ>0\delta>0,使得对满足xx(0)<δ\|x^*-x^{(0)}\|<\delta的所有初值x(0)x^{(0)},牛顿法都超线性收敛;若还存在常树使JF(x)JF(x)Lxx\|J_F(x^*)-J_F(x)\|\le L\|x-x^*\|对所有满足xx<δ\|x^*-x\|<\deltaxx都成立,则该法平方收敛

小结

  • 非线性方程组的形式

  • 不动点法和牛顿法求解

  • 压缩映射的判定

  • 牛顿法的收敛条件