In numerical mathematics, hierarchical matrices (H-matrices) are used as data-sparse approximations of non-sparse matrices. While a sparse matrix of dimension n {\displaystyle n} can be represented efficiently in O ( n ) {\displaystyle O(n)} units of storage by storing only its non-zero entries, a non-sparse matrix would require O ( n 2 ) {\displaystyle O(n^{2})} units of storage, and using this type of matrices for large problems would therefore be prohibitively expensive in terms of storage and computing time. Hierarchical matrices provide an approximation requiring only O ( n k log ( n ) ) {\displaystyle O(nk\,\log(n))} units of storage, where k {\displaystyle k} is a parameter controlling the accuracy of the approximation. In typical applications, e.g., when discretizing integral equations, preconditioning the resulting systems of linear equations, or solving elliptic partial differential equations, a rank proportional to log ( 1 / ϵ ) γ {\displaystyle \log(1/\epsilon )^{\gamma }} with a small constant γ {\displaystyle \gamma } is sufficient to ensure an accuracy of ϵ {\displaystyle \epsilon } . Compared to many other data-sparse representations of non-sparse matrices, hierarchical matrices offer a major advantage: the results of matrix arithmetic operations like matrix multiplication, factorization or inversion can be approximated in O ( n k α log ( n ) β ) {\displaystyle O(nk^{\alpha }\,\log(n)^{\beta })} operations, where α , β ∈ { 1 , 2 , 3 } . {\displaystyle \alpha ,\beta \in \{1,2,3\}.}
Basic idea Hierarchical matrices rely on local low-rank approximations: let I , J {\displaystyle I,J} be index sets, and let G ∈ R I × J {\displaystyle G\in {\mathbb {R} }^{I\times J}} denote the matrix we have to approximate. In many applications (see above), we can find subsets t ⊆ I , s ⊆ J {\displaystyle t\subseteq I,s\subseteq J} such that G | t × s {\displaystyle G|_{t\times s}}
can be approximated by a rank- k {\displaystyle k} matrix. This approximation can be represented in factorized form G | t × s ≈ A B ∗ {\displaystyle G|_{t\times s}\approx AB^{*}} with factors
A ∈ R t × k , B ∈ R s × k {\displaystyle A\in {\mathbb {R} }^{t\times k},B\in {\mathbb {R} }^{s\times k}} . While the standard representation of the matrix G | t × s {\displaystyle G|_{t\times s}} requires O ( ( # t ) ( # s ) ) {\displaystyle O((\#t)(\#s))} units of storage, the factorized representation requires only O ( k ( # t + # s ) ) {\displaystyle O(k(\#t+\#s))} units. If k {\displaystyle k} is not too large, the storage requirements are reduced significantly. In order to approximate the entire matrix G {\displaystyle G} , it is split into a family of submatrices. Large submatrices are stored in factorized representation, while small submatrices are stored in standard representation in order to improve efficiency. Low-rank matrices are closely related to degenerate expansions used in panel clustering and the fast multipole method to approximate integral operators. In this sense, hierarchical matrices can be considered the algebraic counterparts of these techniques.
Application to integral operators Hierarchical matrices are successfully used to treat integral equations, e.g., the single and double layer potential operators appearing in the boundary element method. A typical operator has the form
G [ u ] ( x ) = ∫ Ω κ ( x , y ) u ( y ) d y . {\displaystyle {\mathcal {G}}[u](x)=\int _{\Omega }\kappa (x,y)u(y)\,dy.}
The Galerkin method leads to matrix entries of the form
… excerpt ends here. Continue reading the full article.
