<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE article  PUBLIC "-//NLM//DTD Journal Publishing DTD v3.0 20080202//EN" "http://dtd.nlm.nih.gov/publishing/3.0/journalpublishing3.dtd"><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" dtd-version="3.0" xml:lang="en" article-type="research article"><front><journal-meta><journal-id journal-id-type="publisher-id">ALAMT</journal-id><journal-title-group><journal-title>Advances in Linear Algebra &amp; Matrix Theory</journal-title></journal-title-group><issn pub-type="epub">2165-333X</issn><publisher><publisher-name>Scientific Research Publishing</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.4236/alamt.2022.121002</article-id><article-id pub-id-type="publisher-id">ALAMT-115842</article-id><article-categories><subj-group subj-group-type="heading"><subject>Articles</subject></subj-group><subj-group subj-group-type="Discipline-v2"><subject>Physics&amp;Mathematics</subject></subj-group></article-categories><title-group><article-title>
 
 
  A Compact Heart Iteration for Large Eigenvalues Problems
 
</article-title></title-group><contrib-group><contrib contrib-type="author" xlink:type="simple"><name name-style="western"><surname>Achiya</surname><given-names>Dax</given-names></name><xref ref-type="aff" rid="aff1"><sub>1</sub></xref><xref ref-type="corresp" rid="cor1"><sup>*</sup></xref></contrib></contrib-group><aff id="aff1"><label>1</label><addr-line>Hydrological Service of Israel, Jerusalem, Israel</addr-line></aff><pub-date pub-type="epub"><day>18</day><month>01</month><year>2022</year></pub-date><volume>12</volume><issue>01</issue><fpage>24</fpage><lpage>38</lpage><history><date date-type="received"><day>7,</day>	<month>February</month>	<year>2022</year></date><date date-type="rev-recd"><day>11,</day>	<month>March</month>	<year>2022</year>	</date><date date-type="accepted"><day>14,</day>	<month>March</month>	<year>2022</year></date></history><permissions><copyright-statement>&#169; Copyright  2014 by authors and Scientific Research Publishing Inc. </copyright-statement><copyright-year>2014</copyright-year><license><license-p>This work is licensed under the Creative Commons Attribution International License (CC BY). http://creativecommons.org/licenses/by/4.0/</license-p></license></permissions><abstract><p>
 
 
  In this paper, we present a compact version of the Heart iteration. One that requires less matrix-vector products per iteration and attains faster convergence. The Heart iteration is a new type of Restarted Krylov methods for calculating peripheral eigenvalues of symmetric matrices. The new framework avoids the Lanczos tridiagonalization process and the use of implicit restarts. This simplifies the restarting mechanism and allows the introduction of several modifications. Convergence is assured by a monotonicity property that pushes the computed Ritz values toward their limits. Numerical experiments illustrate the usefulness of the proposed approach. 
 
</p></abstract><kwd-group><kwd>Large Sparse Matrices</kwd><kwd> Restarted Krylov Methods</kwd><kwd> Exterior Eigenvalues</kwd><kwd> Symmetric Matrices</kwd><kwd> Monotonicity</kwd><kwd> Starting Vectors</kwd></kwd-group></article-meta></front><body><sec id="s1"><title>1. Introduction</title><p>The Heart iteration is a new type of Restarted Krylov methods. Given a symmetric matrix G ∈ ℝ n &#215; n , the method is aimed at calculating a cluster of k exterior eigenvalues of G. As other Krylov methods it is best suited for handling large sparse matrices in which a matrix-vector product needs only 0(n) flops. Another underlying assumption is that the number of computed eigenvalues, k, is much smaller than n. The use of restarted Krylov methods for solving such problems was considered by several authors, e.g., [<xref ref-type="bibr" rid="scirp.115842-ref1">1</xref>] - [<xref ref-type="bibr" rid="scirp.115842-ref22">22</xref>]. Most of these methods are based on a Lanczos tridiagonalization algorithm in which the starting vector is determined by an implicit restart process. The Heart iteration is not using these tools. It is based on Gram-Schmidt orthogonalization and a simple intuitive choice of the starting vector. This results in a simple iteration that allows several modifications. Convergence is assured by a monotonicity property that pushes the computed eigenvalues toward their limits.</p><p>The main idea behind the new method is clarified by inspecting its basic iteration. Below we concentrate on the largest eigenvalues, but the algorithm can compute any cluster of k exterior eigenvalues. Let the eigenvalues of G be sorted to satisfy</p><p>λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n . (1.1)</p><p>Then the term “exterior eigenvalues” refers to the k largest eigenvalues, the k smallest eigenvalues, or any set of k eigenvalues that is combined from a number of the largest eigenvalues plus a number of the smallest ones. Other names for such eigenvalues are “peripheral eigenvalues” and “extreme eigenvalues”.</p><p>Note that although the above definitions refer to clusters of eigenvalues, the algorithm is carried out by computing the corresponding k eigenvectors of G. The subspace that is spanned by these eigenvectors is called the target space.</p><p>The basic Heart iteration</p><p>The qth iteration, q = 0 , 1 , 2 , ⋯ , is composed of the following five steps. The first step starts with a matrix V q ∈ ℝ n &#215; k that contains “old” information on the target space, a matrix Y q ∈ ℝ n &#215; l that contains “new” information, and a matrix X q = [ V q , Y q ] ∈ ℝ n &#215; ( k + l ) that includes all the known information. The matrix X q has p = k + l orthonormal columns. That is</p><p>X q T X q = I ∈ ℝ p &#215; p .</p><p>(Typical values for l lie between k to 2k.)</p><p>Step 1: Eigenvalues extraction. Given the Rayleigh quotient matrix</p><p>S q = X q T G X q ,</p><p>compute the k largest eigenvalues of S q . The corresponding k eigenvectors of S q are assembled in a matrix</p><p>U q ∈ ℝ p &#215; k ,   U q T U q = I ∈ ℝ k &#215; k ,</p><p>which is used to compute the related matrix of Ritz vectors,</p><p>V q + 1 = X q U q .</p><p>Note that both X q and U q have orthonormal columns and V q + 1 inherits this property.</p><p>Step 2: Collect new information. Compute a Krylov matrix B q ∈ ℝ n &#215; l that contains new information on the target space.</p><p>Step 3: Orthogonalize the columns of B q against the columns of V q + 1 . There are several ways to achieve this task. In exact arithmetic, the resulting matrix, Z q , satisfies the Gram-Schmidt formula</p><p>Z q = B q − V q + 1 ( V q + 1 T B q ) .</p><p>Step 4: Build an orthonormal basis of Range ( Z q ). Compute a matrix,</p><p>Y q + 1 ∈ ℝ n &#215; l ,   Y q + 1 T Y q + 1 = I ∈ ℝ l &#215; l ,</p><p>whose columns form an orthonormal basis of Range ( Z q ). This can be done by a QR factorization of Z q . (If rank ( Z q ) is smaller than l , then l is temporarily reduced to be rank ( Z q ).)</p><p>Step 5: Define X q + 1 by the rule</p><p>X q + 1 = [ V q + 1 , Y q + 1 ] ,</p><p>which ensures that</p><p>X q + 1 T X q + 1 = I ∈ ℝ p &#215; p .</p><p>Then compute the new Rayleigh quotient matrix</p><p>S q + 1 = X q + 1 T G X q + 1 .</p><p>This matrix will be used at the beginning of the next iteration.</p><p>At this point we are not concerned with efficiency issues, and the above description is mainly aimed at clarifying the purpose of each step. (A more effective scheme is proposed in Section 4.) The name “Heart iteration” comes from the similarity to the heart’s systole-diastole cardiac cycle: Step 1 achieves subspace contraction (eigenvalues extraction), while in Steps 2 - 5 the subspace expands (collecting new information).</p><p>The plan of the paper is as follows. The monotonicity property that motivates the new method is established in the next section. Then, in Section 3, we describe a simple Krylov subspace process that constructs B q . The aim of this paper is to present an efficient implementation of the Heart iteration. The new iteration combines Steps 2 - 5 into one “compact” step. This results in a simple effective algorithm that uses less matrix-vector products per iteration. The details of the new iteration are given in Section 4. The paper ends with numerical experiments that illustrate the usefulness of the proposed method.</p></sec><sec id="s2"><title>2. The Monotonicity Property</title><p>In this section we establish a useful property of the proposed method. The proof can be found in former presentations of the Heart iteration, e.g., [<xref ref-type="bibr" rid="scirp.115842-ref5">5</xref>] [<xref ref-type="bibr" rid="scirp.115842-ref6">6</xref>] [<xref ref-type="bibr" rid="scirp.115842-ref7">7</xref>] [<xref ref-type="bibr" rid="scirp.115842-ref8">8</xref>]. Yet, in order to make this paper self-contained, we provide the proof. The main argument is based on the following well-known interlacing theorems, e.g., [<xref ref-type="bibr" rid="scirp.115842-ref11">11</xref>] [<xref ref-type="bibr" rid="scirp.115842-ref15">15</xref>] [<xref ref-type="bibr" rid="scirp.115842-ref23">23</xref>].</p><p>Theorem 1 (Cauchy interlace theorem) Let G ∈ ℝ n &#215; n be a symmetric matrix with eigenvalues</p><p>λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n . (2.1)</p><p>Let the symmetric matrix H ∈ ℝ k &#215; k be obtained from G by deleting n − k rows and the corresponding n − k columns. Let</p><p>η 1 ≥ η 2 ≥ ⋯ ≥ η k (2.2)</p><p>denote the eigenvalues of H. Then</p><p>λ j ≥ η j       for   j = 1, ⋯ , k , (2.3)</p><p>and</p><p>η k + 1 − i ≥ λ n + 1 − i       for   i = 1, ⋯ , k . (2.4)</p><p>In particular, for k = n − 1 we have the interlacing relations</p><p>λ 1 ≥ η 1 ≥ λ 2 ≥ η 2 ≥ λ 3 ≥ ⋯ ≥ λ n − 1 ≥ η n − 1 ≥ λ n . (2.5)</p><p>Corollary 2 (Poincar&#233; separation theorem) Let the matrix V ∈ ℝ n &#215; k have k orthonormal columns. That is V T V = I ∈ ℝ k &#215; k . Let the matrix H = V T G V have the eigenvalues (2.2). Then the eigenvalues of H and G satisfy (2.3) and (2.4).</p><p>The last observation enables us to prove the following monotonicity property.</p><p>Theorem 3. Consider the qth iteration of the new method, q = 1,2,3, ⋯ . Assume that the eigenvalues of G satisfy (2.1) and let the eigenvalues of the matrix</p><p>S q = X q T G X q = [ V q , Y q ] T G [ V q , Y q ]</p><p>be denoted as</p><p>λ 1 ( q ) ≥ λ 2 ( q ) ≥ ⋯ ≥ λ k ( q ) ≥ ⋯ ≥ λ p ( q ) .</p><p>Then the inequalities</p><p>λ j ≥ λ j ( q ) ≥ λ j ( q − 1 ) (2.6)</p><p>hold for j = 1 , ⋯ , k and q = 1,2,3, ⋯ .</p><p>Proof: The Ritz values which are computed at Step 1 are</p><p>λ 1 ( q ) ≥ λ 2 ( q ) ⋯ ≥ λ k ( q ) ,</p><p>and these values are the largest eigenvalues of the matrix</p><p>S q = X q T G X q   .</p><p>Similarly,</p><p>λ 1 ( q − 1 ) ≥ λ 2 ( q − 1 ) ≥ ⋯ ≥ λ k ( q − 1 ) ,</p><p>are eigenvalues of the matrix</p><p>V q T G V q .</p><p>Therefore, since the columns of V q are the first k columns of X q ,</p><p>λ j ( q ) ≥ λ j ( q − 1 )     for   j = 1, ⋯ , k ,</p><p>while a further use of Corollary 2 gives</p><p>λ j ≥ λ j ( q )     for   j = 1 , ⋯ , k .</p><p>Hence by combining these relations we obtain (2.6). □</p><p>The treatment of other exterior clusters is done in a similar way. Assume for example that the algorithm is aimed at computing the k smallest eigenvalues of G,</p><p>{ λ n + 1 − k , ⋯ , λ n − 1 , λ n } .</p><p>Then similar arguments show that</p><p>λ p + 1 − i ( q − 1 ) ≥ λ p + 1 − i ( q ) ≥ λ n + 1 − i (2.7)</p><p>for i = 1, ⋯ , k , and q = 1,2,3, ⋯ .</p><p>The proof of Theorem 3 emphasizes the importance of the orthonormality relations, and provides the motivation behind the basic iteration. Moreover, since orthonormality ensures monotonicity, it is not essential to construct B q by applying the Lanczos algorithm. This consequence is used in the next sections.</p></sec><sec id="s3"><title>3. The Basic Krylov Matrix</title><p>The basic Krylov information matrix has the form</p><p>B q = [ b 1 , b 2 , ⋯ , b l ] ∈ ℝ n &#215; l , (3.1)</p><p>where the sequence b 1 , b 2 , ⋯ , is initialized by the starting vector b 0 . The ability of a Krylov subspace to approximate a dominant subspace is characterized by the Kaniel-Paige-Saad bounds (See, for example, [<xref ref-type="bibr" rid="scirp.115842-ref10">10</xref>]: pp. 552-554; [<xref ref-type="bibr" rid="scirp.115842-ref15">15</xref>]: pp. 242-247; [<xref ref-type="bibr" rid="scirp.115842-ref16">16</xref>]: pp. 147-151; [<xref ref-type="bibr" rid="scirp.115842-ref18">18</xref>]: pp. 272-274), and the references therein. One consequence of these bounds regards the angle between b 1 and the dominant subspace: The smaller the angle, the better approximation we get. This suggests that b 0 should be defined as the sum of the current Ritz vectors. That is,</p><p>b 0 = V q + 1 e (3.2)</p><p>where e = ( 1,1, ⋯ ,1 ) T ∈ ℝ k is a vector of ones. (If some of the Ritz vectors have already converged then it is possible to remove these vectors from the sum.) Note that there is no point in setting b 1 = V q + 1 e , since in the next step B q is orthogonalized against V q + 1 .</p><p>The other columns of B q are obtained by a Krylov process that resembles Lanczos’ algorithm but uses direct orthogonalization. Let r ∈ ℝ n be a given vector and let q ∈ ℝ n be a unit length vector. That is ‖ q ‖ 2 = 1 where ‖   ⋅   ‖ 2 denotes the Euclidean vector norm. Then the statement “orthogonalize r against q ” is carried out by replacing r with r − ( r T q ) q . Similarly, the statement “normalize r ” is carried out by replacing r with r / ‖ r ‖ 2 . With these conventions at hand the construction of the vectors b 0 , b 1 , ⋯ , b l , is carried out as follows.</p><p>The preparations part</p><p>1) Compute the starting vector:</p><p>b 0 = V q + 1 e / ‖ V q + 1 e ‖ 2 (3.3)</p><p>2) Compute b 1 : Set b 1 = G b 0 .</p><p>Orthogonalize b 1 against b 0 .</p><p>Normalize b 1 .</p><p>3) Compute b 2 : Set b 2 = G b 1 .</p><p>Orthogonalize b 2 against b 0 .</p><p>Orthogonalize b 2 against b 1 .</p><p>Normalize b 2 .</p><p>The iterative part</p><p>For j = 3 , ⋯ , l , compute b j as follows:</p><p>Set b j = G b j − 1 .</p><p>Orthogonalize b j against b j − 2 .</p><p>Orthogonalize b j against b j − 1 .</p><p>Normalize b j .</p><p>The direct orthogonalization that we use differs from Lanczos’ algorithm and, therefore, fails to achieve a reduction of G into a tridiagonal form (The difference lies in the term that connects b j with b j − 2 ). It is also important to note that although b 0 is defined in an “explicit” way, there is a major difference between our method and former explicitly restarted Krylov methods. That is, in Steps 3 and 4 the Krylov matrix B q is orthogonalized against V q + 1 and the resulting matrix, Z q , is used to construct an orthonormal extension of V q + 1 . This important ingredient is missing in the former explicit methods.</p></sec><sec id="s4"><title>4. A Compact Version of the Heart Iteration</title><p>One feature that characterizes the basic Heart iteration is a direct computation of the Rayleigh quotient matrix</p><p>S q = X q T G X q . (4.1)</p><p>In this section we describe a compact version of the Heart iteration that avoids this computation. Instead S q is computed “on the fly”, as a by-product of the expanding process. The main idea is that the Krylov process in Step 2 and the orthogonalization in Steps 3 - 4 can be combined into one process. Moreover, observe that the columns of S q have the form</p><p>X q T ( G x j ) ,     j = 1, ⋯ , p , (4.2)</p><p>where x j denotes the jth column of X q . Hence the vector G x j can be used both to construct S q and to expand the Krylov subspace.</p><p>The contraction part remains unchanged. As before, it ends by computing a Ritz vectors matrix</p><p>V ∈ ℝ n &#215; k ,       V T V = I ∈ ℝ k &#215; k , (4.3)</p><p>that satisfies</p><p>V T G V = D , (4.4)</p><p>where D is a k &#215; k diagonal matrix whose diagonal entries are the computed Ritz values (The iteration subscripts are removed to ease the description).</p><p>The expansion process starts with the matrices</p><p>X = V</p><p>and</p><p>S = D .</p><p>Then the Krylov sequence begins with the vector</p><p>z = G ( V e ) ,</p><p>and performs l steps. The jth step, j = k + 1, ⋯ , k + l , begins with the matrix</p><p>X = [ x 1 , ⋯ , x j − 1 ] ∈ ℝ n &#215; ( j − 1 ) (4.5)</p><p>and ends with the matrix</p><p>X = [ x 1 , ⋯ , x j − 1 , x j ] ∈ ℝ n &#215; j . (4.6)</p><p>The vector z = G x j serves two purposes: To start the computation of x j + 1 , and to extend the Rayleigh quotient matrix. The vector x j + 1 is obtained by orthogonalizing z against the columns of X. When using Gram-Schmidt orthogonalization this is achieved by replacing z with the vector z − X ( X T z ) . Below we denote this operation as</p><p>z = z − X ( X T z ) . (4.7)</p><p>In practice one use of (4.7) is not sufficient to maintain orthogonality, so we need to repeat this operation.</p><p>The building of the Rayleigh quotient matrix</p><p>S q + 1 = X q + 1 T G X q + 1 (4.8)</p><p>is based on the following observations. At the beginning of the jth step, j = k + 1, ⋯ , k + l , the matrix X has the form (4.5) and the matrix</p><p>S = X T G X (4.9)</p><p>is a ( j − 1 ) &#215; ( j − 1 ) principal submatrix of S q + 1 . At the end of the jth step X has the form (4.6) and the matrix (4.9) is a j &#215; j principal submatrix of S q + 1 . The “new” entries of S are s i j = s j i ,   i = 1 , ⋯ , j , and these entries are obtained from the vector</p><p>r = ( r 1 , ⋯ , r j ) T = X T ( G x j ) = X T z . (4.10)</p><p>A further saving is gained by noting that r can be used in the orthogonalization of z against the columns of X. The expansion process ends with a matrix X that has k + l orthonormal columns, and the related Rayleigh quotient matrix</p><p>S = X T G X . (4.11)</p><p>These matrices are the input for the next iteration (As before, we omit indices to ease the notation).</p><p>The compact Heart iteration</p><p>Part I: Contraction</p><p>Compute the k largest eigenvalues of S and the corresponding eigenvectors. The eigenvalues construct a diagonal matrix, D ∈ ℝ k &#215; k . The eigenvectors are assembled into the matrix</p><p>U ∈ ℝ ( k + l ) &#215; k ,     U T U = I , (4.12)</p><p>which is used to compute the related matrix of Ritz vectors</p><p>V = X U ∈ ℝ n &#215; k . (4.13)</p><p>Since both X and U have orthonormal columns the matrix V inherits this property.</p><p>Part II: Expansion</p><p>First set</p><p>X = V , (4.14)</p><p>S = D , (4.15)</p><p>z = G ( V e ) , (4.16)</p><p>and</p><p>r = X T z . (4.17)</p><p>Then for j = k + 1 , ⋯ , k + l , do as follows.</p><p>Gram-Schmidt orthogonalization: Set z = z − X r .</p><p>Gram-Schmidt reorthogonalization: Set z = z − X ( X T z ) .</p><p>Normalize z .</p><p>Expand X to be [ X , z ] .</p><p>Set z = G z .</p><p>Expand S by computing the vector</p><p>r = ( r 1 , ⋯ , r j ) T = X T z</p><p>and setting the new entries of S to be</p><p>s i j = s j i = r i       for     i = 1 , ⋯ , j .</p><p>The main feature that characterizes this scheme is its simplicity. Furthermore, now each iteration needs only l + 1 matrix-vector products.</p></sec><sec id="s5"><title>5. The Initial Orthonormal Matrix</title><p>To start the Heart iteration we need to supply an “initial” orthonormal matrix, X 0 ∈ ℝ n &#215; p , and the corresponding Rayleigh quotient matrix S 0 = X 0 T G X 0 . In our experiments this was done in the following way. Define p = k + l and let the n &#215; p matrix</p><p>B 0 = [ b 1 , b 2 , ⋯ , b p ] (5.1)</p><p>be generated as in Section 3, using the starting vector</p><p>b 0 = e / ‖ e ‖ 2 (5.2)</p><p>where e = ( 1,1, ⋯ ,1 ) T ∈ ℝ n . Then X 0 is obtained by computing an orthonormal basis of Range ( B 0 ).</p></sec><sec id="s6"><title>6. Numerical Experiments</title><p>In this section we describe some experiments with the proposed methods. The basic Heart iteration was used with l = k + 40 (Recall that k denotes the number of desired eigenvalues). The compact Heart iteration was tested with two values of l . The first one is l = k + 40 , as in the basic iteration. The second value of l is</p><p>l = [ k ] 40 100 (6.1a)</p><p>This notation means that l is obtained from k in the following way:</p><p>If k ≤ 40 then l = 40 ; (6.1b)</p><p>if 40 ≤ k ≤ 100 then l = k ; (6.1c)</p><p>if 100 ≤ k then l = 100 . (6.1d)</p><p>Note that k + 40 ≥ [ k ] 40 100 , hence the second choice increases the number of iterations, but reduces the computational effort per iteration. The first experiments concentrate on the number of iterations (number of restarts) that are needed by each method. For this purpose we have used diagonal test matrices have the form</p><p>D = diag { λ 1 , λ 2 , ⋯ , λ n } ∈ ℝ n &#215; n (6.2)</p><p>where</p><p>λ 1 ≥ λ 2 ≥ ⋯ ≥ λ n ≥ 0. (6.3)</p><p>(Since we are interested in iterations there is no loss of generality in experimenting with diagonal matrices, e.g., ( [<xref ref-type="bibr" rid="scirp.115842-ref9">9</xref>]: page 367) The diagonal matrices that we have used are displayed in <xref ref-type="table" rid="table1">Table 1</xref>. The eigenvalues of the “Normal distribution” matrix were generated with MATLAB’s command “randn(n, 1)”.</p><table-wrap id="table1" ><label><xref ref-type="table" rid="table1">Table 1</xref></label><caption><title> Types of test matrices, n = 200000 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Matrix type</th><th align="center" valign="middle" >Matrix eigenvalues</th></tr></thead><tr><td align="center" valign="middle" >λ j , j = 1 , ⋯ , n</td></tr><tr><td align="center" valign="middle" >Harmonic</td><td align="center" valign="middle" >λ j = 1 / j</td></tr><tr><td align="center" valign="middle" >Harmonic roots</td><td align="center" valign="middle" >λ j = ( 1 / j ) 1 / 2</td></tr><tr><td align="center" valign="middle" >Geometric decay</td><td align="center" valign="middle" >λ j = ( 0.95 ) j</td></tr><tr><td align="center" valign="middle" >Moderate geometric decay</td><td align="center" valign="middle" >λ j = ( 0.99 ) j</td></tr><tr><td align="center" valign="middle" >Slow geometric decay</td><td align="center" valign="middle" >λ j = ( 0.999 ) j</td></tr><tr><td align="center" valign="middle" >Very slow geometric decay</td><td align="center" valign="middle" >λ j = ( 0.9999 ) j</td></tr><tr><td align="center" valign="middle"  rowspan="2"  >Equispaced</td><td align="center" valign="middle" >λ j = ( 1001 − j ) / 1000 for j = 1 , ⋯ , 1000 ,</td></tr><tr><td align="center" valign="middle" >λ j = 1 / j for j = 1001 , ⋯ , n</td></tr><tr><td align="center" valign="middle"  rowspan="2"  >Densely equispaced</td><td align="center" valign="middle" >λ j = ( 10001 − j ) / 10000 for j = 1 , ⋯ , 10000 ,</td></tr><tr><td align="center" valign="middle" >λ j = 1 / j for j = 10001 , ⋯ , n</td></tr><tr><td align="center" valign="middle" >Normal distribution</td><td align="center" valign="middle" >Normally distributed eigenvalues</td></tr></tbody></table></table-wrap><p>All the experiments were carried out with n = 200,000, and are aimed at computing the k largest eigenvalues. The iterative process was terminated as soon as it satisfies the stopping condition.</p><p>( ∑ j = 1 k | λ j − λ j ( q ) | ) / ( k | λ 1 | ) ≤ 10 − 14 , (6.4)</p><p>where, as before,</p><p>λ 1 ( q ) ≥ ⋯ ≥ λ k ( q )</p><p>denote the computed Ritz values at the qth iteration.</p><table-wrap id="table2" ><label><xref ref-type="table" rid="table2">Table 2</xref></label><caption><title> Computing k dominant eigenvalues with the basic Heart iteration, l = k + 40 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Matrix type</th><th align="center" valign="middle"  colspan="6"  >Number of iterations</th></tr></thead><tr><td align="center" valign="middle" >k = 6</td><td align="center" valign="middle" >k = 10</td><td align="center" valign="middle" >k = 20</td><td align="center" valign="middle" >k = 40</td><td align="center" valign="middle" >k = 100</td><td align="center" valign="middle" >k = 200</td></tr><tr><td align="center" valign="middle" >Harmonic</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Harmonic roots</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >4</td></tr><tr><td align="center" valign="middle" >Geometric</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Moderate Geometric</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Slow Geometric</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >7</td></tr><tr><td align="center" valign="middle" >Very slow Geometric</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >35</td><td align="center" valign="middle" >34</td><td align="center" valign="middle" >26</td><td align="center" valign="middle" >33</td><td align="center" valign="middle" >30</td></tr><tr><td align="center" valign="middle" >Equispaced</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >5</td></tr><tr><td align="center" valign="middle" >Densely Equispaced</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >35</td><td align="center" valign="middle" >37</td><td align="center" valign="middle" >29</td><td align="center" valign="middle" >31</td><td align="center" valign="middle" >29</td></tr><tr><td align="center" valign="middle" >Normal Distribution</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >17</td><td align="center" valign="middle" >21</td><td align="center" valign="middle" >32</td></tr></tbody></table></table-wrap><p>The figures in Tables 2-4 provide the number of iterations that are needed to satisfy (6.4). Thus, for example, from <xref ref-type="table" rid="table2">Table 2</xref> we see that only 5 iterations of basic Heart are needed to compute the largest k = 200 eigenvalues of the Equispaced test matrix. A comparison of <xref ref-type="table" rid="table2">Table 2</xref> with <xref ref-type="table" rid="table3">Table 3</xref> shows that the compact version often requires a smaller number of iterations. One reason for this gain lies in the order of the orthogonalizations. In the basic scheme rank ( Y q + 1 ) can be smaller than l, while in the compact scheme rank ( Y q + 1 ) is guaranteed to be l. This implies that the compact scheme is able to collect a larger amount of new information.</p><table-wrap id="table3" ><label><xref ref-type="table" rid="table3">Table 3</xref></label><caption><title> Computing k dominant eigenvalues with the compact Heart iteration, l = k + 40 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Matrix type</th><th align="center" valign="middle"  colspan="6"  >Number of iterations</th></tr></thead><tr><td align="center" valign="middle" >k = 6</td><td align="center" valign="middle" >k = 10</td><td align="center" valign="middle" >k = 20</td><td align="center" valign="middle" >k = 40</td><td align="center" valign="middle" >k = 100</td><td align="center" valign="middle" >k = 200</td></tr><tr><td align="center" valign="middle" >Harmonic</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Harmonic roots</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >Geometric</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Moderate Geometric</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Slow Geometric</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >Very slow Geometric</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >36</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >23</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >12</td></tr><tr><td align="center" valign="middle" >Equispaced</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >Densely Equispaced</td><td align="center" valign="middle" >38</td><td align="center" valign="middle" >36</td><td align="center" valign="middle" >30</td><td align="center" valign="middle" >22</td><td align="center" valign="middle" >16</td><td align="center" valign="middle" >12</td></tr><tr><td align="center" valign="middle" >Normal Distribution</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >7</td></tr></tbody></table></table-wrap><table-wrap id="table4" ><label><xref ref-type="table" rid="table4">Table 4</xref></label><caption><title> Computing k dominant eigenvalues with the compact Heart iteration, l = [ k ] 40 100 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Matrix type</th><th align="center" valign="middle"  colspan="6"  >Number of iterations</th></tr></thead><tr><td align="center" valign="middle" >k = 6</td><td align="center" valign="middle" >k = 10</td><td align="center" valign="middle" >k = 20</td><td align="center" valign="middle" >k = 40</td><td align="center" valign="middle" >k = 100</td><td align="center" valign="middle" >k = 200</td></tr><tr><td align="center" valign="middle" >Harmonic</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td></tr><tr><td align="center" valign="middle" >Harmonic roots</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >3</td></tr><tr><td align="center" valign="middle" >Geometric</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td><td align="center" valign="middle" >0</td></tr><tr><td align="center" valign="middle" >Moderate Geometric</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1</td></tr><tr><td align="center" valign="middle" >Slow Geometric</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >8</td></tr><tr><td align="center" valign="middle" >Very slow Geometric</td><td align="center" valign="middle" >47</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >57</td><td align="center" valign="middle" >75</td><td align="center" valign="middle" >27</td><td align="center" valign="middle" >35</td></tr><tr><td align="center" valign="middle" >Equispaced</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >15</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >6</td></tr><tr><td align="center" valign="middle" >Densely Equispaced</td><td align="center" valign="middle" >47</td><td align="center" valign="middle" >50</td><td align="center" valign="middle" >56</td><td align="center" valign="middle" >76</td><td align="center" valign="middle" >25</td><td align="center" valign="middle" >32</td></tr><tr><td align="center" valign="middle" >Normal Distribution</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >18</td></tr></tbody></table></table-wrap><p>The second part of our experiments provides timing results that compare the Heart iterations and MATLAB’s “eigs” function. For this purpose we have used “PH” matrices that have the following form:</p><p>G = ( ∏ i = 1 p     H i ) D ( ∏ i = 1 p     H i ) T ∈ ℝ n &#215; n , (6.5)</p><p>where D ∈ ℝ n &#215; n is a diagonal matrix and H i , i = 1, ⋯ , p , are n &#215; n sparse random Householder matrices. The matrix D has the form (6.2)-(6.3) with eigenvalues that achieve “slow geometric decay”. That is,</p><p>λ j = ( 0.999 ) j − 1       for   j = 1 , ⋯ , n . (6.6)</p><p>The Householder matrices, H i , i = 1 , ⋯ , p , have the form</p><p>H i = I − 2 h i h i T / h i T h i , (6.7)</p><p>where h i ∈ ℝ n is a sparse random vector. To generate this vector we have used MATLAB’s command h = sprand(n, 1, density) with the density 1000/n. This yields a sparse n-vector that has about 1000 nonzero entries at random locations. Consequently, for small values of p the resulting PH matrix (6.5) is a large sparse symmetric matrix whose nonzero entries lie at random locations. The number of nonzero, ν , increases with p, see <xref ref-type="table" rid="table6">Table 6</xref>. Thus, for example, the 3H matrix has 9,071,462 nonzero entries, while the 7H matrix has 47,417,512 nonzeroes.</p><p>The results in <xref ref-type="table" rid="table5">Table 5</xref> and <xref ref-type="table" rid="table6">Table 6</xref> provide both the computation times (in seconds) and the number of iterations that are needed to compute the k largest eigenvalues. The eigenvalues of a PH matrix are given by (6.6). Thus, as before, the iterative process terminates as soon as (6.4) is satisfied.</p><table-wrap id="table5" ><label><xref ref-type="table" rid="table5">Table 5</xref></label><caption><title> Timing results (in seconds) and number of iterations for the 3H matrix, n = 200000 , ν = 9071462 </title></caption><table><tbody><thead><tr><th align="center" valign="middle"  rowspan="2"  >Number of eigenpairs</th><th align="center" valign="middle"  colspan="2"  >basic Heart</th><th align="center" valign="middle"  colspan="2"  >compact Heart</th><th align="center" valign="middle"  colspan="2"  >compact Heart</th><th align="center" valign="middle"  rowspan="2"  >eigs</th></tr></thead><tr><td align="center" valign="middle"  colspan="2"  >l = k + 40</td><td align="center" valign="middle"  colspan="2"  >l = k + 40</td><td align="center" valign="middle"  colspan="2"  >l = [ k ] 40 100</td></tr><tr><td align="center" valign="middle" >k</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >24.5</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >16.3</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >18.9</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >17.6</td></tr><tr><td align="center" valign="middle" >10</td><td align="center" valign="middle" >28.5</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >18.8</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >22.0</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >18.5</td></tr><tr><td align="center" valign="middle" >20</td><td align="center" valign="middle" >34.3</td><td align="center" valign="middle" >7</td><td align="center" valign="middle" >23.1</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >27.6</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >22.7</td></tr><tr><td align="center" valign="middle" >40</td><td align="center" valign="middle" >78.6</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >37.5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >47.0</td><td align="center" valign="middle" >14</td><td align="center" valign="middle" >35.2</td></tr><tr><td align="center" valign="middle" >100</td><td align="center" valign="middle" >151.6</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >83.9</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >83.8</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >80.1</td></tr><tr><td align="center" valign="middle" >200</td><td align="center" valign="middle" >271.5</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >215.1</td><td align="center" valign="middle" >4</td><td align="center" valign="middle" >162.9</td><td align="center" valign="middle" >8</td><td align="center" valign="middle" >187.9</td></tr><tr><td align="center" valign="middle" >300</td><td align="center" valign="middle" >336.7</td><td align="center" valign="middle" >6</td><td align="center" valign="middle" >316.4</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >290.8</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >289.6</td></tr><tr><td align="center" valign="middle" >400</td><td align="center" valign="middle" >388.3</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >461.4</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >421.9</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >407.3</td></tr><tr><td align="center" valign="middle" >500</td><td align="center" valign="middle" >479.8</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >672.7</td><td align="center" valign="middle" >3</td><td align="center" valign="middle" >475.2</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >651.4</td></tr><tr><td align="center" valign="middle" >600</td><td align="center" valign="middle" >722.5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >657.8</td><td align="center" valign="middle" >2</td><td align="center" valign="middle" >617.4</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >734.3</td></tr></tbody></table></table-wrap><table-wrap id="table6" ><label><xref ref-type="table" rid="table6">Table 6</xref></label><caption><title> Timing results (in seconds) and number of iterations for computing k = 50 dominant eigenpairs of PH matrices</title></caption><table><tbody><thead><tr><th align="center" valign="middle"  colspan="2"  >Matrix</th><th align="center" valign="middle"  colspan="2"  >basic Heart</th><th align="center" valign="middle"  colspan="2"  >compact Heart</th><th align="center" valign="middle"  colspan="2"  >compact Heart</th><th align="center" valign="middle"  rowspan="2"  >eigs</th></tr></thead><tr><td align="center" valign="middle"  rowspan="2"  >p</td><td align="center" valign="middle" >Number of nonzero</td><td align="center" valign="middle"  colspan="2"  >l = k + 40 = 90</td><td align="center" valign="middle"  colspan="2"  >l = k + 40 = 90</td><td align="center" valign="middle"  colspan="2"  >l = [ k ] 40 100 = 50</td></tr><tr><td align="center" valign="middle" >ν</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td><td align="center" valign="middle" >iter.</td><td align="center" valign="middle" >time</td></tr><tr><td align="center" valign="middle" >0</td><td align="center" valign="middle" >200,000</td><td align="center" valign="middle" >48.6</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >30.3</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >33.5</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >14.1</td></tr><tr><td align="center" valign="middle" >1</td><td align="center" valign="middle" >1,197,002</td><td align="center" valign="middle" >50.5</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >31.5</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >37.7</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >26.4</td></tr><tr><td align="center" valign="middle" >2</td><td align="center" valign="middle" >4,158,110</td><td align="center" valign="middle" >66.4</td><td align="center" valign="middle" >11</td><td align="center" valign="middle" >36.2</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >40.3</td><td align="center" valign="middle" >12</td><td align="center" valign="middle" >31.5</td></tr><tr><td align="center" valign="middle" >3</td><td align="center" valign="middle" >9,071,462</td><td align="center" valign="middle" >83.5</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >47.8</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >55.3</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >39.4</td></tr><tr><td align="center" valign="middle" >4</td><td align="center" valign="middle" >15,909,332</td><td align="center" valign="middle" >113.5</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >60.6</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >70.9</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >50.3</td></tr><tr><td align="center" valign="middle" >5</td><td align="center" valign="middle" >24,559,160</td><td align="center" valign="middle" >158.0</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >76.8</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >88.4</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >64.8</td></tr><tr><td align="center" valign="middle" >6</td><td align="center" valign="middle" >35,098,556</td><td align="center" valign="middle" >180.1</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >94.6</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >108.0</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >80.1</td></tr><tr><td align="center" valign="middle" >7</td><td align="center" valign="middle" >47,417,512</td><td align="center" valign="middle" >250.0</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >108.0</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >133.1</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >100.1</td></tr><tr><td align="center" valign="middle" >8</td><td align="center" valign="middle" >61,438,450</td><td align="center" valign="middle" >265.5</td><td align="center" valign="middle" >9</td><td align="center" valign="middle" >135.0</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >158.5</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >120.0</td></tr><tr><td align="center" valign="middle" >9</td><td align="center" valign="middle" >77,349,872</td><td align="center" valign="middle" >343.6</td><td align="center" valign="middle" >10</td><td align="center" valign="middle" >151.9</td><td align="center" valign="middle" >5</td><td align="center" valign="middle" >185.4</td><td align="center" valign="middle" >13</td><td align="center" valign="middle" >143.1</td></tr></tbody></table></table-wrap><p>Let us turn now to conduct a brief operations count for the compact Heart iteration. The Gram-Schmidt orthogonalizations require about</p><p>n [ ( k + l ) 2 − k 2 ] = n ( l 2 + 2 k l ) = n l ( l + 2 k )</p><p>multiplications per iteration, while the matrix-vector products require ( l + 1 ) ν multiplications per iteration. The size of the Rayleigh quotient matrix is k + l , and the spectral decomposition of this matrix requires a moderate multiple of ( k + l ) 3 multiplications. Thus, when k + l is negligible with respect to n, the spectral decomposition of the Rayleigh-quotient matrix requires considerably less efforts than the orthogonalizations. In our experiments the spectral decomposition was carried out with MATLAB’s “eig” function. In this case, for k = 100 and l = k + 40 = 140 , the spectral decomposition of the related 240 &#215; 240 matrix required, on average, about 0.01 seconds. Similarly, for k = 500 and l = k + 40 = 540 , the spectral decomposition of the related 1040 &#215; 1040 matrix required, on average, 0.1 seconds. That is, the time spent on the spectral decomposition is negligible with respect to the overall computation time. Recall that the Lanczos process provides a tridiagonal ( k + l ) &#215; ( k + l ) Rayleigh quotient matrix whose spectral decomposition is faster than that of a full matrix of the same size. Yet the last observation suggests that this is not a real gain. The Ritz vectors matrix V q + 1 = X q U q is obtained by one matrix-matrix product. Thus, although this product achieves n ( k + l ) k multiplications, it needs considerably less time than the time required for orthogonalizations. These considerations show that most of the computation time is spent during the expansion process, on orthogonalizations and matrix-vector products.</p><p>The experiments in <xref ref-type="table" rid="table5">Table 5</xref> and <xref ref-type="table" rid="table6">Table 6</xref> illustrate how these tasks affect the computation times. <xref ref-type="table" rid="table5">Table 5</xref> concentrates on the 3H matrix and runs the algorithms for increasing values of k. Thus, for example, we see that for k = 200 “eigs” required 187.9 seconds, while compact Heart with l = [ 200 ] 40 100 = 100 terminated after 8 iterations and 162.9 seconds. In 3H matrices the number of nonzero is moderate; hence for large k most of the computation time is spent on orthogonalizations. <xref ref-type="table" rid="table6">Table 6</xref> concentrates on k = 50 and runs the algorithm with increasing numbers of nonzero. Since k is fixed, the time spent on orthogonalizations is fixed, and the increase in time is mainly due to the cost of matrix-vector products.</p><p>The timing results demonstrate the ability of the compact Heart algorithm to compete with MATLAB’s “eigs” program. We see that compact Heart is not much slower than “eigs”, and in some cases, it is faster. When judging the timing results it is important to note that compact Heart was programmed (in MATLAB) exactly as described in Section 4. Yet, as in other Krylov subspace methods, the basic version can be improved in several ways. Such modifications may include, for example, more effective orthogonalization schemes, locking, and improved rules for the choice of l. Hence from this point of view, the new method is quite promising.</p></sec><sec id="s7"><title>7. Concluding Remarks</title><p>Perhaps the main feature that characterizes the new iteration is its simplicity. The discarding of Lanczos’ tridiagonalization and implicit restarts results in a simple iteration that retains a fast rate of convergence. As we have seen, in many cases it requires a remarkably small number of iterations.</p><p>The compact Heart iteration is an elegant version of the basic Heart iteration. It uses an effective orthogonalization scheme that avoids the direct computation of the Rayleigh quotient matrix. The experiments that we have done are quite encouraging.</p><p>The Heart iteration is a useful tool for calculating low-rank approximations of large matrices. The cross-product approach that was proposed in [<xref ref-type="bibr" rid="scirp.115842-ref8">8</xref>] uses the basic Heart iteration and can be improved by applying the new compact version.</p></sec><sec id="s8"><title>Conflicts of Interest</title><p>The author declares no conflicts of interest regarding the publication of this paper.</p></sec><sec id="s9"><title>Cite this paper</title><p>Dax, A. (2022) A Compact Heart Iteration for Large Eigenvalues Problems. Advances in Linear Algebra &amp; Matrix Theory, 12, 24-38. https://doi.org/10.4236/alamt.2022.121002</p></sec></body><back><ref-list><title>References</title><ref id="scirp.115842-ref1"><label>1</label><mixed-citation publication-type="other" xlink:type="simple">Baglama, J., Calvetti, D. and Reichel, L. (2003) IRBL: An Implicitly Restarted Block Lanczos Method for Large-Scale Hermitian Eigen Problems. SIAM Journal on Scientific Computing, 24, 1650-1677. https://doi.org/10.1137/S1064827501397949</mixed-citation></ref><ref id="scirp.115842-ref2"><label>2</label><mixed-citation publication-type="other" xlink:type="simple">Bai, A., Demmel, J., Dongarra, J., Ruhe, A. and van der Vorst, H. (1999) Templates for the Solution of Algebraic Eigenvalue Problems: A Practical Guide. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9780898719581</mixed-citation></ref><ref id="scirp.115842-ref3"><label>3</label><mixed-citation publication-type="other" xlink:type="simple">Calvetti, D., Reichel, L. and Sorenson, D.C. (1994) An Implicitly Restarted Lanczos Method for Large Symmetric Eigenvalue Problems. Electronic Transactions on Numerical Analysis, 2, 1-21.</mixed-citation></ref><ref id="scirp.115842-ref4"><label>4</label><mixed-citation publication-type="other" xlink:type="simple">Dax, A. (2017) The Numerical Rank of Krylov Matrices. Linear Algebra and Its Applications, 528, 185-205. https://doi.org/10.1016/j.laa.2016.07.022</mixed-citation></ref><ref id="scirp.115842-ref5"><label>5</label><mixed-citation publication-type="other" xlink:type="simple">Dax, A. (2017) A New Type of Restarted Krylov Methods. Advances in Linear Algebra &amp; Matrix Theory, 7, 18-28. https://doi.org/10.4236/alamt.2017.71003</mixed-citation></ref><ref id="scirp.115842-ref6"><label>6</label><mixed-citation publication-type="other" xlink:type="simple">Dax, A. (2019) A Restarted Krylov Method with Inexact Inversions. Numerical Linear Algebra with Applications, 26, Article No. e2213. https://doi.org/10.1002/nla.2213</mixed-citation></ref><ref id="scirp.115842-ref7"><label>7</label><mixed-citation publication-type="other" xlink:type="simple">Dax, A. (2019) Computing the Smallest Singular Triplets of a Large Matrix. Results in Applied Mathematic, 3, Article ID: 100006. https://doi.org/10.1016/j.rinam.2019.100006</mixed-citation></ref><ref id="scirp.115842-ref8"><label>8</label><mixed-citation publication-type="other" xlink:type="simple">Dax, A. (2019) A Cross-Product Approach for Low-Rank Approximations of Large Matrices. Journal of Computational and Applied Mathematics, 369, Article ID: 112576. https://doi.org/10.1016/j.cam.2019.112576</mixed-citation></ref><ref id="scirp.115842-ref9"><label>9</label><mixed-citation publication-type="other" xlink:type="simple">Demmel, J.W. (1997) Applied Numerical Linear Algebra. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9781611971446</mixed-citation></ref><ref id="scirp.115842-ref10"><label>10</label><mixed-citation publication-type="other" xlink:type="simple">Golub, G.H. and Van Loan, C.F. (2013) Matrix Computations. 4th Edition, Johns Hopkins University Press, Baltimore.</mixed-citation></ref><ref id="scirp.115842-ref11"><label>11</label><mixed-citation publication-type="other" xlink:type="simple">Horn, R.A. and Johnson, C.R. (1985) Matrix Analysis. Cambridge University Press, Cambridge. https://doi.org/10.1017/CBO9780511810817</mixed-citation></ref><ref id="scirp.115842-ref12"><label>12</label><mixed-citation publication-type="other" xlink:type="simple">Larsen, R.M. (2001) Combining Implicit Restarts and Partial Reorthogonalization in Lanczos Bidiagonalization. Technical Report, Stanford University.</mixed-citation></ref><ref id="scirp.115842-ref13"><label>13</label><mixed-citation publication-type="other" xlink:type="simple">Li, R., Xi, Y., Vecharynski, E., Yang, C. and Saad, Y. (2016) A Thick-Restart Lanczos Algorithm with Polynomial Filtering for Hermitian Eigenvalue Problems. SIAM Journal on Scientific Computing, 38, A2512-A2534. https://doi.org/10.1137/15M1054493</mixed-citation></ref><ref id="scirp.115842-ref14"><label>14</label><mixed-citation publication-type="other" xlink:type="simple">Morgan, R.B. (1996) On Restarting the Arnoldi Method for Large Non-Symmetric Eigenvalues Problems. Mathematics of Computation, 65, 1213-1230. https://doi.org/10.1090/S0025-5718-96-00745-4</mixed-citation></ref><ref id="scirp.115842-ref15"><label>15</label><mixed-citation publication-type="other" xlink:type="simple">Parlett, B.N. (1980) The Symmetric Eigenvalue Problem. Prentice-Hall, Englewood Cliffs.</mixed-citation></ref><ref id="scirp.115842-ref16"><label>16</label><mixed-citation publication-type="other" xlink:type="simple">Saad, Y. (2011) Numerical Methods for Large Eigenvalue Problems. Revised Edition, Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9781611970739</mixed-citation></ref><ref id="scirp.115842-ref17"><label>17</label><mixed-citation publication-type="other" xlink:type="simple">Sorensen, D.C. (1992) Implicit Application of Polynomial Filters in a k-Step Arnoldi Method. SIAM Journal on Matrix Analysis and Applications, 13, 357-385. https://doi.org/10.1137/0613025</mixed-citation></ref><ref id="scirp.115842-ref18"><label>18</label><mixed-citation publication-type="other" xlink:type="simple">Stewart, G.W. (2001) Matrix Algorithms, Vol. II: Eigensystems. SIAM, Philadelphia. https://doi.org/10.1137/1.9780898718058</mixed-citation></ref><ref id="scirp.115842-ref19"><label>19</label><mixed-citation publication-type="other" xlink:type="simple">Trefethen, L.N. and Bau III, D. (1997) Numerical Linear Algebra. Society for Industrial and Applied Mathematics, Philadelphia.</mixed-citation></ref><ref id="scirp.115842-ref20"><label>20</label><mixed-citation publication-type="other" xlink:type="simple">Watkins, D.S. (2007) The Matrix Eigenvalue Problem: GR and Krylov Subspace Methods. Society for Industrial and Applied Mathematics, Philadelphia. https://doi.org/10.1137/1.9780898717808</mixed-citation></ref><ref id="scirp.115842-ref21"><label>21</label><mixed-citation publication-type="other" xlink:type="simple">Wu, K. and Simon, H. (2000) Thick-Restarted Lanczos Method for Large Symmetric Eigenvalue Problems. SIAM Journal on Matrix Analysis and Applications, 22, 602-616. https://doi.org/10.1137/S0895479898334605</mixed-citation></ref><ref id="scirp.115842-ref22"><label>22</label><mixed-citation publication-type="other" xlink:type="simple">Yamazaki, I., Bai, Z., Simon, H., Wang, L. and Wu, K. (2010) Adaptive Projection Subspace Dimension for the Thick-Restart Lanczos Method. ACM Transactions on Mathematical Software, 47, Article No. 27. https://doi.org/10.1145/1824801.1824805</mixed-citation></ref><ref id="scirp.115842-ref23"><label>23</label><mixed-citation publication-type="other" xlink:type="simple">Zhang, F. (1999) Matrix Theory: Basic Results and Techniques. Springer-Verlag, New York.</mixed-citation></ref></ref-list></back></article>