Skip to content

19.1.1 迭代法 ​

迭代法的基本思路是: 从已知的初始值 xk(k=0,1,⋯,n) 出发,进一步构造更好的逼近序列, 因此给定方程的解是一个收敛序列的迭代逼近. 构造的序列要有尽可能快的收敛速度.

19.1.1.1 一般迭代法 ​

为了求解或许已转化为不动点形式 x=φ(x) 的给定方程,迭代法

(19.3)xn+1=φ(xn)(n=0,1,⋯;x0 给定 )

称为一般迭代法. 如果在 x∗ 邻域内满足

(19.4)|φ(x)−φ(x∗)x−x∗|≤K<1,

其中 K 为常数,而且初值在该邻域内,它将收敛到解 x∗ (图 19.2). 如果函数 φ(x) 可导, 则相应的条件变为

(19.5)φ′(x)≤K<1,

常数 K 越小,一般迭代法的收敛速度越快. ◼x2=sin⁡x ,即

xn+1=sin⁡xn.

迭代过程如右表.

01937d01-b6f6-7881-8294-3a9c82211946_1_530_1051_580_507_0.jpg

n

0

1

2

3

4

5

xn

0.87

0.8742

0.8758

0.8764

0.8766

0.8767―

sin⁡xn

0.7643

0.7670

0.7681

0.7684

0.7686

0.7686

注 (1) 在复数解的情况下,设 x=u+iv ,分别对实部与虚部组成的两个未知量的方程组求解未知的实数 u,v .

注 (2) 迭代法求解非线性方程组可以参见第 1249 页 19.2.2.

19.1.1.2 牛顿法 ​

1. 牛顿法的公式 ​

为了求解形如 f(x)=0 的给定方程,最常用到的牛顿法有如下形式:

(19.6)xn+1=xn−f(xn)f′(xn)(n=0,1,⋯;x0 给定 ).

即: 为了得到新的近似值 xn+1 ,需要计算函数 f(x) 与其一阶导数 f′(x) 在点 xn 处的值.

2. 牛顿法的收敛条件 ​

(19.7a)f′(x)≠0

是牛顿法收敛的必要条件, 条件

(19.7b)|f(x)f′′(x)f′2(x)|≤K<1

是牛顿法收敛的充分条件. 需要在解 x∗ 及其邻域内所有的点 xn 都满足条件 (19.7a, 19.7b). 如果牛顿法收敛,其收敛速度非常快. 它是平方阶收敛的,即第 n+1 个近似值的误差远小于一个常数乘以第 n 个近似值的误差的平方. 在十进制中,这意味着经过迭代准确值的位数成倍增加.

◼ 求解方程 f(x)=x2−a=0 ,即计算 x=a(a>0 给定),由牛顿法得到迭代公式为

(19.8)xn+1=12(xn+axn).

对于 a=2 ,有

n

0

1

2

3

xn

1.5

1.4166666

1.4142157

1.4142136

3. 几何插值 ​

牛顿法几何插值可以表示为图 19.3. 牛顿法的基本思想是用函数 y=f(x) 的切线得到局部近似值.

01937d01-b6f6-7881-8294-3a9c82211946_2_555_1639_526_422_0.jpg

4. 修正牛顿法 ​

如果在迭代过程中 f′(xn) 的数值几乎不变,它在一段时间内保持为常数,可用所谓修正牛顿法

(19.9)xn+1=xn−f(xn)f′(xm)(m 给定,m<n).

这种简化的好处是其收敛阶几乎没有任何改变.

5. 复变量的可微函数 ​

牛顿法对于复变量的可微函数同样适用.

19.1.1.3 试位法 ​

1. 试位法的公式 ​

为求解形如 f(x)=0 的方程,试位法具有如下形式:

(19.10)xn+1=xn−xn−xmf(xn)−f(xm)f(xn)(n=1,2,⋯;x0,x1 给定,m<n).

该方法仅需要计算函数值. 该方法源于牛顿法 (19.6),而导数 f′(xn) 由 f(x) 在点 xn 与前一个点 xm 的有限差分近似得到 (m<n) .

2. 几何插值 ​

试位法几何插值可以表示为图 19.4. 试位法的基本思想是用曲线 y=f(x) 的切线得到局部近似值.

01937d01-b6f6-7881-8294-3a9c82211946_3_555_1385_529_419_0.jpg

3. 收敛性 ​

当选取的 m 使得 f(xn) 和 f(xm) 一直是异号时,方法 (19.10) 是收敛的. 若在迭代过程中收敛速度已经足够快,可以忽略符号改变,只要用 xm=xn−1 就可以增加收敛速度.

  • 计算 f(x)=x2−sin⁡x=0 .

n

Δxn=xn−xn−1

xn

f(xn)

Δyn=f(xn)−f(xn−1)

Δxn Δyn

0

0.9

0.0267

1

-0.3

0.87

-0.0074

-0.0341

0.8798

2

0.0065

0.8765

-0.000252

0.007148

0.9093

3

0.000229

0.876729

0.000003

0.000255

0.8980

4

-0.000003

0.876726

如果计算过程中 Δxn/Δyn 的数值几乎不变,就不用一次一次地继续计算了.

4. 斯特芬森方法 ​

应用试位法取 xm=xn−1 求解方程 f(x)=x−φ(x)=0 ,其收敛速度可以提高,尤其是 φ′(x)<−1 的情况. 该算法被称为斯特芬森 (Steffensen) 方法.

应用斯特芬森方法求解 x2=sin⁡x ,需要用到 f(x)=x−sin⁡x=0 .

n

Δxn=xn−xn−1

xn

f(xn)

Δy=f(xn)−f(xn−1)

Δxn Δyn

0

0.9

0.014942

1

-0.03

0.87

-0.004259

-0.019201

1.562419

2

0.006654

0.876654

-0.000046

0.004213

1.579397

3

0.876727

0.000001

version 1.24.0