-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnode129.html
127 lines (117 loc) · 6.76 KB
/
node129.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
<!DOCTYPE html>
<!--Converted with LaTeX2HTML 99.2beta6 (1.42)
original version by: Nikos Drakos, CBLU, University of Leeds
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
* with significant contributions from:
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
<html>
<head>
<title>锁和清洗的实施</title>
<meta charset="utf-8">
<meta name="description" content="锁和清洗的实施">
<meta name="keywords" content="book, math, eigenvalue, eigenvector, linear algebra, sparse matrix">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.css" integrity="sha384-nB0miv6/jRmo5UMMR1wu3Gz6NLsoTkbqJghGIsx//Rlm+ZU03BU6SQNC66uf4l5+" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/katex.min.js" integrity="sha384-7zkQWkzuo3B5mTepMUcHkMB5jZaolc2xDwL6VFqjFALcbeS9Ggm/Yr2r3Dy4lfFg" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/[email protected]/dist/contrib/auto-render.min.js" integrity="sha384-43gviWU0YVjaDtb/GhzOouOXtZMP/7XUzwPTstBeZFe/+rCMvRwr4yROQP43s0Xk" crossorigin="anonymous"></script>
<script>
document.addEventListener("DOMContentLoaded", function() {
var math_displays = document.getElementsByClassName("math-display");
for (var i = 0; i < math_displays.length; i++) {
katex.render(math_displays[i].textContent, math_displays[i], { displayMode: true, throwOnError: false });
}
var math_inlines = document.getElementsByClassName("math-inline");
for (var i = 0; i < math_inlines.length; i++) {
katex.render(math_inlines[i].textContent, math_inlines[i], { displayMode: false, throwOnError: false });
}
});
</script>
<style>
.navigate {
background-color: #ffffff;
border: 1px solid black;
color: black;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 18px;
margin: 4px 2px;
cursor: pointer;
border-radius: 4px;
}
.crossref {
width: 10pt;
height: 10pt;
border: 1px solid black;
padding: 0;
}
</style>
</head>
<body>
<!--Navigation Panel-->
<a name="tex2html2690" href="node130.html">
<button class="navigate">下一节</button></a>
<a name="tex2html2684" href="node117.html">
<button class="navigate">上一级</button></a>
<a name="tex2html2678" href="node128.html">
<button class="navigate">上一节</button></a>
<a name="tex2html2686" href="node5.html">
<button class="navigate">目录</button></a>
<a name="tex2html2688" href="node422.html">
<button class="navigate">索引</button></a>
<br>
<b>下一节:</b><a name="tex2html2691" href="node130.html">可用的软件</a>
<b>上一级:</b><a name="tex2html2685" href="node117.html">隐式重启Lanczos</a>
<b>上一节:</b><a name="tex2html2679" href="node128.html"><span class="math-inline">Q^* T Q</span> 的稳定性</a>
<br>
<br>
<!--End of Navigation Panel--><h2><a name="SECTION001358000000000000000">
锁定与清除的实现</a>
</h2>
尽管锁定和清除的基本通缩思路在概念上简单明了,但在实施过程中仍需考虑许多细节和多种策略。最终,一些临时决策是不可避免的。这里采用的通缩策略相对保守,但实际表现相当合理。在[<a href="node421.html#sore98">420</a>]中,计算示例表明,即使指定非常粗略的容差,也不会遗漏多个或聚集的本征值。
<p>
实施细节相当复杂,仅通过展示代码难以传达这些思路。因此,我们将通过较高层次的口头描述来概述策略的主要思想。
<div style="text-align: left;">
<img src="icon/alg4.11.png", id="alg-defL", alt="Deflation for IRLM"/>
</div>
<p>
实现笔记:
<dl>
<dt><strong>(1)</strong></dt>
<dd>初始时,我们使用一个<span class="math-inline">(m = k+p)</span>步的Lanczos分解,并每次隐式重启应用<span class="math-inline">p</span>个位移。每当锁定一个Ritz值时,将<span class="math-inline">p</span>的有效值减少1是有利的。这使得多项式滤波器在下一个最可能收敛的Ritz值上的相对幅值增大。(参见§<a href="node121.html#consec">4.5.4</a>)当然,这必须限制在避免滤波器次数过低而失效的范围内。如果<span class="math-inline">k_o</span>是已锁定的Ritz值数量,IRLM迭代在<span class="math-inline">V</span>的列<span class="math-inline">k_o + 1,\dots, m</span>中进行,工作在一个<span class="math-inline">m-k_o</span>长度的Lanczos分解内。<span class="math-inline">k</span>的有效值变为<span class="math-inline">m-k_o - p_o</span>,<span class="math-inline">p</span>的有效值变为<span class="math-inline">p_o = p - k_o</span>。这有两个重要效果:如§<a href="node121.html#consec">4.5.4</a>所述,收敛速度增加,每次隐式重启的工作量减少。
<p>
</dd>
<dt><strong>(2)</strong></dt>
<dd>此时也可能希望清除所有已收敛但不需要的Ritz对。
<p>
</dd>
<dt><strong>(3)</strong></dt>
<dd>引入随机初始向量的目的是大幅增加尚未找到的所需本征向量方向上的分量。
<p>
</dd>
<dt><strong>(4)</strong></dt>
<dd>如果没有机会对<span class="math-inline">A</span>进行分解,这种临时的停止策略是合理的。然而,无法最终保证已找到所有<span class="math-inline">k</span>个所需本征值(特别是在聚集或多重本征值的情况下)。如果<span class="math-inline">A</span>(或更好的<span class="math-inline">A-\sigma I</span>)可以分解为对称不定分解,那么通过谱变换可以大大增强收敛性,并且可以获得惯性计数。这将提供更可靠的验证,确保已找到所有<span class="math-inline">k</span>个所需本征值。参见§<a href="node107.html#subsec_stlm">4.4.3</a>的讨论。
</dd>
</dl>
<p>
<hr><!--Navigation Panel-->
<a name="tex2html2690" href="node130.html">
<button class="navigate">下一节</button></a>
<a name="tex2html2684" href="node117.html">
<button class="navigate">上一级</button></a>
<a name="tex2html2678" href="node128.html">
<button class="navigate">上一节</button></a>
<a name="tex2html2686" href="node5.html">
<button class="navigate">目录</button></a>
<a name="tex2html2688" href="node422.html">
<button class="navigate">索引</button></a>
<br>
<b>下一节:</b><a name="tex2html2691" href="node130.html">可用的软件</a>
<b>上一级:</b><a name="tex2html2685" href="node117.html">隐式重启Lanczos</a>
<b>上一节:</b><a name="tex2html2679" href="node128.html"><span class="math-inline">Q^* T Q</span> 的稳定性</a>
<!--End of Navigation Panel-->
<address>
Susan Blackford
2000-11-20
</address>
</body>
</html>