第七讲子空间迭代方法
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中 Hm = Hm+1,m(1 : m, 1 : m), em = [0, . . . , 0, 1]T ∈ Rm. 由于 Vm 是列正交矩阵, 上式两边同乘 VmT 可得
VmT AVm = Hm.
(7.2)
等式 (7.1) 和 (7.2) 是 Arnoldi 过程的两个重要性质.
6/55
Lanczos 过程
终止迭代
12: end if
13: end for
10/55
如何计算 x(0) + Km 中的 “最佳近似” x(m)
首先, 我们必须给出 “最佳” 的定义, 不同的定义会导致不同的算法. 最直接的方式: ∥x(m) − x∗∥2 达到最小. 但由于 x∗ 不知道, 因此不实用.
什么是 “最佳” (1) ∥rm∥2 = ∥b − Ax(m)∥2 达到最小 A 对称 → MINRES , A 非对称 → GMRES (2) A 对称正定, 极小化 ∥x∗ − x(m)∥A → CG (共轭梯度法)
6: end if
7: for m = 2 to n do
8: 调用 Arnoldi 或 Lanczos 过程计算向量 vm 9: 寻找 “最佳近似” 解: x(m) ∈ x(0) + Km = x(0) + span{v1, . . . , vm} 10: if x(m) 满足精度要求 then
11:
3/55
基的选取: Arnoldi 过程
最简单的基: {r, Ar, A2r, . . . , Am−1r} −→ 非正交, 稳定性得不到保证. Arnoldi 过程 : 将 {r, Ar, A2r, . . . , Am−1r} 单位正交化
1: v1 = r/∥r∥2
2: for j = 1 to m do
若 A 对称, 则 Hm 为对称三对角, 记为 Tm, 即
α1 β1
Tm = β1
... ...
... ...
βm−1 .
βm−1 αm
Lanczos 过程的性质与三项递推公式 (令 v0 = 0 和 β0 = 0)
AVm = VmTm + βmvm+1eTm, VmT AVm = Tm.
8/55
Krylov 子空间算法的一般过程
(1) 令 m = 1 (2) 定义 Krylov 子空间 Km(A, r0); (3) 找出仿射空间 x(0) + Km 中的 “最佳近似” 解; (4) 如果这个近似解满足精度要求, 则迭代结束;
否则令 m ← m + 1, 返回第 (2) 步.
9/55
∈ R(m+1)×m,
hm+1,m
则由 Arnoldi 过程可知
所以有
Avj = h1,j v1 + h2,j v2 + · · · + hj,j vj + hj+1,j vj+1.
AVm = Vm+1Hm+1,m = VmHm + hm+1,mvm+1eTm,
(7.1) 5/55
第七讲 子空间迭代方法
1 Krylov 子空间 2 GMRES 算法 3 共轭梯度法 (CG) 4 收敛性分析 5 其它 Krylov 子空间迭代算法
基本思想
在一个 维数较低的子空间 中寻找解析解的一个 最佳近似 . 子空间迭代算法的主要过程可以分解为下面三步:
(1) 寻找合适的子空间; (2) 在该子空间中求 “最佳近似”; (3) 若这个近似解满足精度要求, 则停止计算; 否则, 重新构造一个新
的子空间, 并返回第 (2) 步.
这里主要涉及到的 两个关键问题 是: (1) 如果选择和更新子空间; (2) 如何在给定的子空间中寻找 “最佳近似”.
关于第一个问题, 目前较成功的解决方案就是使用 Krylov 子空间 .
2/55
1 Krylov 子空间
设 A ∈ Rn×n, r ∈ Rn, 则由 A 和 r 生成的 m 维 Krylov 子空间 定义为 Km = Km(A, r) ≜ span{r, Ar, A2r, . . . , Am−1r}, m ≤ n.
4/55
Arnoldi 过程的矩阵表示
记 Vm = [v1, v2, . . . , vm],
h1,1 h1,2 h1,3 · · ·
Hm+1,m
= h2,1
h2,2 h3,2
h2,3 h3,3 ...
··· ··· ... hm,m−1
ห้องสมุดไป่ตู้
h1,m
h2,m h3,m
...
hm,m
βj vj+1 = Avj − αj vj − βj−1vj−1, j = 1, 2, . . . ,
(7.3)
(7.4) (7.5) 7/55
Lanczos 过程 1: Set v0 = 0 and β0 = 0 2: v1 = r/∥r∥2 3: for j = 1 to m do 4: z = Avj 5: αj = (vj, z) 6: z = z − αj vj − βj−1vj−1 7: βj = ∥z∥2 8: if βj = 0 then break, end if 9: vj+1 = z/βj 10: end for
Krylov 子空间迭代算法基本框架
1: 选取初始向量 x(0) 2: 计算 r0 = b − Ax(0), v1 = r0/∥r0∥2 3: 寻找 “最佳近似” 解: x(1) ∈ x(0) + K1 = x(0) + span{v1} 4: if x(1) 满足精度要求 then
5: 终止迭代
3: z = Avj 4: for i = 1 to j do % MGS 正交化过程
5:
hi,j = (vi, z), z = z − hi,j vi
6: end for
7: hj+1,j = ∥z∥2 % if hj+1,j = 0, break, endif
8:
vj+1 = z/hj+1,j
9: end for
设 dim Km = m, 令 v1, v2, . . . , vm 是 Km 的一组基, 则 ∀ x ∈ Km 可表示为 x = y1v1 + y2v2 + · · · + ymvm ≜ Vmy
寻找 “最佳近似” x(m) 转化为 (1) 寻找一组合适的基 v1, v2, . . . , vm; (2) 求出 x(m) 在这组基下面的表出系数 y(m).