高斯消去法的误差分析

两步法获得 解的误差界:

1) 向后误差分析

求解线性代数方程组

设计一个算法 , 求出一个数值解

数值解 ,相当于求解下面扰动后的方程:

其中 称为算法的 向后误差

的界是我们希望界定的 计算误差

2)利用扰动分析理论分析, 如前面得到的 ( 2.2 ) 和 ( 2.5 )。

  • (2.3) 算出的误差界往往太大。

  • ( 2.5 ) 更易计算, 在实践中更常使用。

本节的两个目标:

  • 展示如何实施高斯消去法,使得向后误差 尽量小:

  • 获得同时易于计算(cheapness)紧致(tightness)的误差界。
    • 紧致就是说算出的误差界尽量接近真实的误差。
    • 易于计算和紧致的误差界可能不存在。

为什么要选主元?

给定一个矩阵, 这里用 4 位的十进制的浮点数表示,

易知

其中

其中 ( 大数吃小数 )

  • 换成其它小的数, 分解的结果是一样的, 因为
  • 这种现象称为 数值不稳定 ( numerical instability )
  • , 用 分解求解
  • 太大。
  • , 而
  • 列主元可以解决数值不稳定的问题。

注意 如果 分解过程中出现很大的量,则 中的元素减去这些量时, 就会出现大数吃小数的现象。

正式的高斯消去法误差分析

因为浮点数运算中舍入误差的存在, 用 分解算法来计算 会带来向 后误差 ,这个向后误差有两部分组成

  1. 分解算法带来的误差, 即
  2. 求解 带来的向后误差, 即

本小节就来分析这两种误差的界。

首先,分析 的元素 的元素 的差别。

首先,给定一个一般的 分解

上述三个矩阵的元素有如下的关系成立:

两个向量做内积运算,浮点运算结果满足如下的关系式 ( Question 1.10 ):

应用到关系式 ( 1 ), 可得:

其中 ,

由上式解出

从而可以界定

做类似分析, 可得 其中 , 。 同样解出 , 其中 , 同样可得:

经过上述分析,可以得到如下结论:

再考虑求解 产生的向后误差, 可得(Question 1.11)

最终可得 误差界:

进而可得

如果要高斯消去法向后稳定,需要求 进而有

实践经验表明

  • 主元增长因子
  • 要比较小或者增长缓慢才能使得高斯消去法是向后稳定的。

估计条件数

  • 估计条件数的关键是估计
  • 直接计算 的计算复杂度为
  • 避免直接计算 且代价更低的算法称为条件数估计子, 要具备如下性质
    1. 已经计算出 时,它的计算代价为
    2. 估计子的大小为, 则其中 要小于 10, 相当于之差了一个 十进制位。

  • 两个等式代表两种等价的计算方式。
  • 但计算效率不等效。

  • 是一个凸集。
  • 是一个凸函数。

上述求极大值的问题可以用梯度上升法解决, 这个方法的关键是计算

因为有绝对值的存在,在零点处函数不可导,所以可假设

注意,这个假设是几乎总是成立的。

引入

可得

从而可得

算法 2.5 Hager's condition estimator returns a lower bound on :

  • 初值取

定理 2.6

  1. 如果返回 ,则 的局部最大值 。
  2. 否则

证明:

  1. 目标是证明 是局部极大值点。易知在 附近, 是线性函数,则 有 其中 。取 ,

  2. 如果 。设 ,取 , 则

证毕。

估计相对条件数

或者估计

上面的两个估计问题,可以转化为相同的问题,即估计 , 其中 是一个元素非负的向量。

利用引理 1.7的第 5 个结论, 可知如果矩阵 的元素都是非负的, 可推出

引入对角矩阵, 则有 .

最后转化为

2.4.4 实用的误差界

课后作业

  1. 第一章 Question 1.10
  2. 第一章 Question 1.11

results matching ""

    No results matching ""