第 12 周作业:算法收敛与一维搜索

Views: --

本周源文件是 Lee 的手写作业,包含第 8 章的闭映射与收敛速度,以及第 9 章的一维搜索计算。下面根据扫描中的题面和数值过程还原,并用参考解核对迭代值。

第 8-1 题:算法映射在 x=2x=2 处不闭

题目给出的点到集映射为

A(x)={[32+14x, 1+12x],x2,{12(x+1)},x<2.A(x)= \begin{cases} \left[\dfrac32+\dfrac14x,\ 1+\dfrac12x\right], &x\ge2,\\[6pt] \left\{\dfrac12(x+1)\right\}, &x<2. \end{cases}

x(k)=21k<2,x^{(k)}=2-\frac1k<2,

y(k)=12(x(k)+1)=3212kA(x(k)).y^{(k)}=\frac12\left(x^{(k)}+1\right) =\frac32-\frac1{2k} \in A(x^{(k)}).

两列序列分别收敛到

x(k)2,y(k)32.x^{(k)}\to2,\qquad y^{(k)}\to\frac32.

但是

A(2)=[32+142, 1+122]={2},A(2)= \left[ \frac32+\frac14\cdot2,\ 1+\frac12\cdot2 \right] =\{2\},

所以

32A(2).\frac32\notin A(2).

因此映射图像不包含这组图像点的极限:

A 在 x=2 处不闭.\boxed{A\text{ 在 }x=2\text{ 处不闭}}.

闭映射检验必须同时跟踪 x(k)x^{(k)}y(k)A(x(k))y^{(k)}\in A(x^{(k)});只看输入序列没有结论。

第 8-3 题:两个误差序列的收敛速度

设极限为 00,误差就是 ek=γke_k=|\gamma_k|

(1)γk=1/k\gamma_k=1/k

ek+1ek=kk+11.\frac{e_{k+1}}{e_k} =\frac{k}{k+1}\to1.

按课件的“收敛阶”记法,它属于 p=1p=1 的情形;但比值极限不是某个 q<1q<1,所以它不满足通常更强的 Q-线性收敛定义,实际速度是次线性的。写答案时最好把这两个口径同时说明,避免只写“线性”造成误解。

(2)γk=(1/k)k\gamma_k=(1/k)^k

ek+1ek=kk(k+1)k+1=(kk+1)k1k+10.\frac{e_{k+1}}{e_k} =\frac{k^k}{(k+1)^{k+1}} =\left(\frac{k}{k+1}\right)^k\frac1{k+1} \to0.

因此

γk=(1/k)k 超线性收敛到 0.\boxed{\gamma_k=(1/k)^k\text{ 超线性收敛到 }0}.

第 9-1 题:黄金分割搜索

f(x)=ex+x2,x[0,1],f(x)=e^{-x}+x^2,\qquad x\in[0,1],

要求最终区间长度不超过 0.20.2。取

τ0.618,1τ0.382.\tau\approx0.618,\qquad 1-\tau\approx0.382.

四轮计算如下,函数值保留三位小数:

轮次当前区间λ\lambdaf(λ)f(\lambda)μ\muf(μ)f(\mu)保留区间
1[0,1][0,1]0.3820.3820.8280.8280.6180.6180.9210.921[0,0.618][0,0.618]
2[0,0.618][0,0.618]0.2360.2360.8450.8450.3820.3820.8280.828[0.236,0.618][0.236,0.618]
3[0.236,0.618][0.236,0.618]0.3820.3820.8280.8280.4720.4720.8470.847[0.236,0.472][0.236,0.472]
4[0.236,0.472][0.236,0.472]0.3260.3260.8280.8280.3820.3820.8280.828[0.236,0.382][0.236,0.382]

最终区间长度

0.3820.236=0.146<0.2,0.382-0.236=0.146<0.2,

所以

x[0.236,0.382].\boxed{x^*\in[0.236,0.382]}.

表中第 4 轮的两个三位小数看起来相同,实际未舍入函数值在 0.3260.326 处略小,因此保留左侧区间。黄金分割每轮能复用一个旧试探点,只需新增一次函数计算。

一维 Newton 迭代

根据作答过程还原目标函数:

f(x)=3x44x312x2.f(x)=3x^4-4x^3-12x^2.

导数为

f(x)=12x312x224x,f(x)=36x224x24.f'(x)=12x^3-12x^2-24x, \qquad f''(x)=36x^2-24x-24.

x(k+1)=x(k)f(x(k))f(x(k))x^{(k+1)} =x^{(k)}-\frac{f'(x^{(k)})}{f''(x^{(k)})}

x(0)=1.2x^{(0)}=-1.2 出发:

kkx(k)x^{(k)}f(x(k))f'(x^{(k)})f(x(k))f''(x^{(k)})
01.200-1.2009.216-9.21656.64056.640
11.037-1.0371.398\approx-1.39839.601\approx39.601
21.002-1.0020.072\approx-0.07236.192\approx36.192
31.000-1.0000\approx036\approx36

因此

x(k)1,f(1)=5.\boxed{x^{(k)}\to-1,\qquad f(-1)=-5}.

不过 f(x)=12x(x2)(x+1)f'(x)=12x(x-2)(x+1) 还给出驻点 0022,且

f(2)=32<5.f(2)=-32<-5.

所以这次 Newton 迭代收敛到的是局部极小点 1-1,不是全局极小点。Newton 法的收敛结果依赖初值,不能看到 f(x)0f'(x)\approx0 就自动写“全局最优”。

作业自检

  • 闭映射要检查“图像点序列的极限仍在图像中”,输入、输出缺一不可。
  • ek+1/ek1e_{k+1}/e_k\to1 不满足 q<1q<1 的 Q-线性收敛。
  • 黄金分割每轮只新增一个函数值,并在达到区间长度要求后停止。
  • Newton 法找的是附近驻点;非凸函数上还要比较其他候选点。

评论