5.10 阻尼倒数法
改进Gram-Schmidt分解中需要计算
rii=∥ai∥ ,
qi=ai/rii,
rii 表示子空间第
i 个坐标轴的高度,当其为
0 时,说明子空间少了该维度,矩阵
A 不是列满秩,
ai 可由前面
i−1 个
aj,j<i 表示,这样
qi 单位向量应该为
0 向量,最优解的第
i 个分量应该为
0 。但实际计算时,由于舍入误差,
rii 不会等于
0 ,只会趋近
0 ,是个极小的数。如果还是按公式
qi=ai/rii 计算,由于舍入误差
qi 会极不稳定,导致最优解的第
i 个分量远离
0 。所以我们希望当
rii 很小时,
1/rii 实际计算时取
0 ,不是很小时,还是取原值。即要求
1/rii={1/rii0forforlargesmallriirii
为了达到这个目的,可以采用各种数学技巧,阻尼倒数法就是著名的一种。
1/rii=rii2+λ2rii
λ 是阻尼系数,需要人为设定,当
rii<λ 时,认为
rii 过小,理论上是
0 。
阻尼倒数法有如下近似结果
rii2+λ2rii={rii1λ2rii→0forfor∣rii∣≫λ∣rii∣≪λ
为了减小阻尼系数
λ 对正常
rii 的影响,可以令当
rii 较大时,
λ 趋近
0 。可采用分段函数
λ={λ0(1−ϵ∣rii∣)0forfor∣rii∣≤ϵ∣rii∣>ϵ
也可采用高斯函数
λ=λ0e−(ϵ∣rii∣)2
其中
λ0 为名义阻尼系数,
ϵ 为判断奇异的阈值。
高斯函数比分段函数更光滑,这样最优解在奇异位置更平滑。高斯函数缺点是当
rii 较大时,
λ 不等于
0 ,会引入极小误差。
按照阻尼倒数法计算,
qi=ai/rii ,当
rii 趋近
0 时,
qi 趋近
0 。最优解的第
i 分量
x^i=(δi−∑j=i+1n(δjx^j))/rii 也趋近
0 ,达到稳定解的目的。阻尼倒数法涉及的参数如
λ0、
ϵ ,其最优值很难确定。
rii 趋近
0 ,矩阵
A 不是列满秩,此时矩阵是行列均不满秩,方程
Ax=b 的解理论需要采用奇异值分解,后面章节会解释。阻尼倒数法虽能得到较稳定的解,但只是其中一个解,没有包含所有解。