第 3 章:非线性方程求解(一)

目录:

  • 引言
  • 实根的对分法
  • 不动点迭代法
  • Newton迭代法
  • 弦截法和抛物线法
  • 解线性方程组的Newton方法

3.0引言

问题背景
  • 在数学中,要求n次多项式的根(n次方程)
    • \(a_nx^n + a_{n-1}x^{n-1} + \cdots + a_1x + a_0 = 0 \quad (a_n \neq 0)\)
  • 在光的衍射理论中,要求解非线性方程
    • \(x - \tan x = 0\)
  • 在行星轨道的计算中,对任意a和b,要求解
    • \(x - a\sin x = b\)

因此我们要研究求解非线性方程 \(f(x)=0\)的数值方法

基本概念

对于单个变量的方程 \(f(x)=0\)

  • 如果存在一点 \(x^*\),使得\(f(x^*)=0\),称\(x^*\)为方程的零点
  • 如果方程\(f(x)=0\)在区间\([a,b]\)只有一个根,称\([a,b]\)为单根区间
  • 如果方程\(f(x)=0\)在区间\([a,b]\)上有多个根,称\([a,b]\)为多根区间
  • 如果方程\(f(x)=0\)在区间\([a,b]\)上有根,称\([a,b]\)为有根区间

本章主要研究单根区间上的求解方法

  • 例一:求方程\(f(x) = x^3-11.1x^2+38.8x-41.77=0\)的有根区间
    • 方程的三个有根区间为\([2,3],[3,4],[5,6]\)

3.1实根的对分法

算法
  • 假设\(f(a)f(b)<0,f∈C[a,b]\)
  • \(a_0 = a,b_0 = b\)
  • \(x_0 = \frac{a_0 + b_0}{2}\),将区间[a_0,b_0]分为两半
    • \(f(a_0)\)\(f(x_0)\)同号,则取\(a_1=x_0,b_1=b_0\)
    • 否则取\(a_1=a_0,b_1=x_0\)
  • \(x_1 = \frac{a_1 + b_1}{2}\),将区间\([a_1,b_1]\)分为两半
    • \(f(a_1)\)\(f(x_1)\)同号,则取\(a_2=x_1,b_2=b_1\)
    • 否则取\(a_2=a_1,b_2=x_1\)
  • ......
  • \(x_n = \frac{a_n + b_n}{2}\),将区间\([a_n,b_n]\)分为两半
    • \(f(a_n)\)\(f(x_n)\)同号,则取\(a_{n+1}=x_n,b_{n+1}=b_n\)
    • 否则取\(a_{n+1}=a_n,b_{n+1}=x_n\)
  • 得到一系列的有根区间
    • \([a, b] = [a_0, b_0] \supset [a_1, b_1] \supset \cdots \supset [a_n, b_n] \supset \cdots\)
    • 其中每个区间的长度都是前一个区间长度的一半
  • 以上方法称为对分法
误差估计
  • 由于
    • \(|x^* - x_k| \leq \frac{b_k - a_k}{2} = \frac{b - a}{2^{k+1}}\)
  • 只要二分足够多次(即k充分大),便有
    • \(|x^* - x_k| < \varepsilon\)
    • 其中 \(\varepsilon\) 为给定的精度
算例

求方程

\[f(x) = x^3 - x - 1 = 0 \]

在区间\([1.0,1.5]\)内的一个根,要求精确到小数点后的第 2 位

image

image

image

image

算法特点

二分法的优点是算法简单,只要函数在区间内是连续的,就能保证是收敛的。缺点是收敛速度太慢,且当\(f(x)\)\([a,b]\)上有多个零点时,也只能算出一个零点。因此二分法一般不单独用于求根,而是求根的近似值

3.2不动点迭代法

不动点

对于给定方程 \(f(x) = 0\),将它改写为等价形式

\[x=φ(x) \]

若要求\(x^*\)满足\(f(x^*)=0\),则\(x^*=φ(x^*)\),反之亦然。称\(x^*\)为函数\(φ(x)\)的一个不动点

不动点迭代法

\(f(x)\)零点的方法就等价于求\(φ(x)\)的不动点,选择一个初始近似值\(x_0\),构造迭代序列

\[x_{k+1} = \varphi(x_k), \quad k = 0, 1, 2, \ldots \]

如果对任何\(x_0∈[a,b]\),由上得到的序列\({x_k}\)右极限

\[\lim_{k \to \infty} x_k = x^* \]

则称迭代方程收敛,且\(x^*=φ(x^*)\)\(φ(x)\)的不动点。因此算法称为不动点迭代法。取\(x^*=x_{l+1}\)为方程\(f(x)=0\)的根
image
image

算法的收敛性

方程f(x)=0的等价形式可能有很多,比如\(x^3-2x-5-0\)的三种等价形式及其迭代格式:

  • $ x^3 = 2x + 5, \quad x = \sqrt[3]{2x + 5}$ ,迭代格式:\(x_{k+1} = \sqrt[3]{2x_k + 5}\)
  • \(2x=x^3-5\),迭代格式:\(x_{k+1} = \frac{x_k^3 - 5}{2}\)
  • \(x^3 = 2x + 5, \quad x = \frac{2x + 5}{x^2}\),迭代格式:\(x_{k+1} = \frac{2x_k + 5}{x_k^2}\)

对于各种迭代格式,怎么判断其是否收敛?收敛速度与哪个量有关?收敛是否与迭代的初值有关?
关于\(φ(x)\)\([a,b]\)上不动点的存在唯一性,有如下定理

\(若φ(x)定义在[a,b]上,如果φ(x)满足\)
\(1. 当x∈[a,b]时有a≤φ(x)≤b;\)
\(2. φ(x)在[a,b]上可导,并且存在正数 L<1,使对任意的 x∈(a,b),有|φ'(x)|≤L\)
\(则φ(x)在[a,b]上存在唯一的不动点x,迭代对任意的初值x_0∈[a,b]均收敛\)
\(且有误差估计式\)

\[|x^* - x_k| \leq \frac{L^k}{1 - L} |x_1 - x_0| \]

算例

求代数方程 \(x^3-2x-5=0\)\(x_0=2\)附近的实根
image
image
image

局部收敛性

定义一:
\(\text{设 } \varphi(x) \text{ 有不动点 } x^*,\text{ 如果存在 } x^* \text{ 的某个邻域 } \Delta: |x - x^*| \leqslant \delta,\)
\(\text{ 对任意 } x_0 \in \Delta, \text{ 迭代法 } x_{k+1} = \varphi(x_k)\text{ 产生的序列 } \{x_k\} \subset \Delta, \text{ 且收敛到 } x^*,\text{ 则称迭代法局部收敛。}\)

定理二:
\(设x^*为φ(x)的不动点,φ'(x)在x^*的某个领域连续,且|φ'(x^*)|<1,则迭代法局部收敛\)

收敛速度

\(用不同的迭代格式求方程 x^2-3=0的根x^*=\sqrt{3}\)
image
image
image
image

为了衡量迭代法收敛速度的快慢可以给出如下定义:
image

定理:
image

posted @ 2024-12-18 16:22  韦飞  阅读(111)  评论(0)    收藏  举报