# Alternating-direction implicit method

In numerical linear algebra, the alternating-direction implicit (ADI) method is an iterative method used to solve Sylvester matrix equations. It is a popular method for solving the large matrix equations that arise in systems theory and control, and can be formulated to construct solutions in a memory-efficient, factored form. It is also used to numerically solve parabolic and elliptic partial differential equations, and is a classic method used for modeling heat conduction and solving the diffusion equation in two or more dimensions. It is an example of an operator splitting method.

## ADI for matrix equations
### The method

The ADI method is a two step iteration process that alternately updates the column and row spaces of an approximate solution to $AX-XB=C$. One ADI iteration consists of the following steps:
   1. Solve for $X^{(j+1/2)}$, where $\left(A-\beta _{j+1}I\right)X^{(j+1/2)}=X^{(j)}\left(B-\beta _{j+1}I\right)+C.$
   2. Solve for $X^{(j+1)}$, where $X^{(j+1)}\left(B-\alpha _{j+1}I\right)=\left(A-\alpha _{j+1}I\right)X^{(j+1/2)}-C$.
The numbers $(\alpha _{j+1},\beta _{j+1})$ are called shift parameters, and convergence depends strongly on the choice of these parameters. To perform $K$ iterations of ADI, an initial guess $X^{(0)}$ is required, as well as $K$ shift parameters, $\{(\alpha _{j},\beta _{j})\}_{j=1}^{K}$.

### When to use ADI

If $A\in \mathbb {C} ^{m\times m}$ and $B\in \mathbb {C} ^{n\times n}$, then $AX-XB=C$ can be solved directly in ${\mathcal {O}}(m^{3}+n^{3})$ using the Bartels-Stewart method. It is therefore only beneficial to use ADI when matrix-vector multiplication and linear solves involving $A$ and $B$ can be applied cheaply.
The equation $AX-XB=C$ has a unique solution if and only if $\sigma (A)\cap \sigma (B)=\emptyset$, where $\sigma (M)$ is the spectrum of $M$. However, the ADI method performs especially well when $\sigma (A)$ and $\sigma (B)$ are well-separated, and $A$ and $B$ are normal matrices. These assumptions are met, for example, by the Lyapunov equation $AX+XA^{*}=C$ when $A$ is positive definite. Under these assumptions, near-optimal shift parameters are known for several choices of $A$ and $B$. Additionally, a priori error bounds can be computed, thereby eliminating the need to monitor the residual error in implementation.
The ADI method can still be applied when the above assumptions are not met. The use of suboptimal shift parameters may adversely affect convergence, and convergence is also affected by the non-normality of $A$ or $B$ (sometimes advantageously). Krylov subspace methods, such as the Rational Krylov Subspace Method, are observed to typically converge more rapidly than ADI in this setting, and this has led to the development of hybrid ADI-projection methods.

### Shift-parameter selection and the ADI error equation

The problem of finding good shift parameters is nontrivial. This problem can be understood by examining the ADI error equation. After $K$ iterations, the error is given by
$X-X^{(K)}=\prod _{j=1}^{K}{\frac {(A-\alpha _{j}I)}{(A-\beta _{j}I)}}\left(X-X^{(0)}\right)\prod _{j=1}^{K}{\frac {(B-\beta _{j}I)}{(B-\alpha _{j}I)}}.$
Choosing $X^{(0)}=0$ results in the following bound on the relative error:
${\frac {\left\|X-X^{(K)}\right\|_{2}}{\|X\|_{2}}}\leq \|r_{K}(A)\|_{2}\|r_{K}(B)^{-1}\|_{2},\quad r_{K}(M)=\prod _{j=1}^{K}{\frac {(M-\alpha _{j}I)}{(M-\beta _{j}I)}}.$
where $\|\cdot \|_{2}$ is the operator norm. The ideal set of shift parameters $\{(\alpha _{j},\beta _{j})\}_{j=1}^{K}$ defines a rational function $r_{K}$ that minimizes the quantity $\|r_{K}(A)\|_{2}\|r_{K}(B)^{-1}\|_{2}$. If $A$ and $B$ are normal matrices and have eigendecompositions $A=V_{A}\Lambda _{A}V_{A}^{*}$ and $B=V_{B}\Lambda _{B}V_{B}^{*}$, then
$\|r_{K}(A)\|_{2}\|r_{K}(B)^{-1}\|_{2}=\|r_{K}(\Lambda _{A})\|_{2}\|r_{K}(\Lambda _{B})^{-1}\|_{2}$.

#### Near-optimal shift parameters

Near-optimal shift parameters are known in certain cases, such as when $\Lambda _{A}\subset [a,b]$ and $\Lambda _{B}\subset [c,d]$, where $[a,b]$ and $[c,d]$ are disjoint intervals on the real line. The Lyapunov equation $AX+XA^{*}=C$, for example, satisfies these assumptions when $A$ is positive definite. In this case, the shift parameters can be expressed in closed form using elliptic integrals, and can easily be computed numerically.
More generally, if closed, disjoint sets $E$ and $F$, where $\Lambda _{A}\subset E$ and $\Lambda _{B}\subset F$, are known, the optimal shift parameter selection problem is approximately solved by finding an extremal rational function that attains the value
$Z_{K}(E,F):=\inf _{r}{\frac {\sup _{z\in E}|r(z)|}{\inf _{z\in F}|r(z)|}},$
where the infimum is taken over all rational functions of degree $(K,K)$. This approximation problem is related to several results in potential theory, and was solved by Zolotarev in 1877 for $E$ = [a, b] and $F=-E.$ The solution is also known when $E$ and $F$ are disjoint disks in the complex plane.

#### Heuristic shift-parameter strategies

When less is known about $\sigma (A)$ and $\sigma (B)$, or when $A$ or $B$ are non-normal matrices, it may not be possible to find near-optimal shift parameters. In this setting, a variety of strategies for generating good shift parameters can be used. These include strategies based on asymptotic results in potential theory, using the Ritz values of the matrices $A$, $A^{-1}$, $B$, and $B^{-1}$ to formulate a greedy approach, and cyclic methods, where the same small collection of shift parameters are reused until a convergence tolerance is met. When the same shift parameter is used at every iteration, ADI is equivalent to an algorithm called Smith's method.

### Factored ADI

In many applications, $A$ and $B$ are very large, sparse matrices, and $C$ can be factored as $C=C_{1}C_{2}^{*}$, where $C_{1}\in \mathbb {C} ^{m\times r},C_{2}\in \mathbb {C} ^{n\times r}$, with $r=1,2$. In such a setting, it may not be feasible to store the potentially dense matrix $X$ explicitly. A variant of ADI, called factored ADI, can be used to compute $ZY^{*}$, where $X\approx ZY^{*}$. The effectiveness of factored ADI depends on whether $X$ is well-approximated by a low rank matrix. This is known to be true under various assumptions about $A$ and $B$.

## ADI for parabolic equations

Historically, the ADI method was developed to solve the 2D diffusion equation on a square domain using finite differences. Unlike ADI for matrix equations, ADI for parabolic equations does not require the selection of shift parameters, since the shift appearing in each iteration is determined by parameters such as the timestep, diffusion coefficient, and grid spacing. The connection to ADI on matrix equations can be observed when one considers the action of the ADI iteration on the system at steady state.

### Example: 2D diffusion equation

The traditional method for solving the heat conduction equation numerically is the Crank–Nicolson method. This method results in a very complicated set of equations in multiple dimensions, which are costly to solve. The advantage of the ADI method is that the equations that have to be solved in each step have a simpler structure and can be solved efficiently with the tridiagonal matrix algorithm.
Consider the linear diffusion equation in two dimensions,
    ${\partial u \over \partial t}=\left({\partial ^{2}u \over \partial x^{2}}+{\partial ^{2}u \over \partial y^{2}}\right)=(u_{xx}+u_{yy})$
The implicit Crank–Nicolson method produces the following finite difference equation:
    ${u_{ij}^{n+1}-u_{ij}^{n} \over \Delta t}={1 \over 2(\Delta x)^{2}}\left(\delta _{x}^{2}+\delta _{y}^{2}\right)\left(u_{ij}^{n+1}+u_{ij}^{n}\right)$
where:
    $\Delta x=\Delta y$
and $\delta _{p}^{2}$ is the central second difference operator for the p-th coordinate
    $\delta _{p}^{2}u_{ij}=u_{ij+e_{p}}-2u_{ij}+u_{ij-e_{p}}$
with $e_{p}=(1,0)$ or $(0,1)$ for $p=x$ or $y$ respectively (and $ij$ a shorthand for lattice points $(i,j)$).
After performing a stability analysis, it can be shown that this method will be stable for any $\Delta t$.
A disadvantage of the Crank–Nicolson method is that the matrix in the above equation is banded with a band width that is generally quite large. This makes direct solution of the system of linear equations quite costly (although efficient approximate solutions exist, for example use of the conjugate gradient method preconditioned with incomplete Cholesky factorization).
The idea behind the ADI method is to split the finite difference equations into two, one with the x-derivative taken implicitly and the next with the y-derivative taken implicitly,
    ${u_{ij}^{n+1/2}-u_{ij}^{n} \over \Delta t/2}={\left(\delta _{x}^{2}u_{ij}^{n+1/2}+\delta _{y}^{2}u_{ij}^{n}\right) \over \Delta x^{2}}$
    ${u_{ij}^{n+1}-u_{ij}^{n+1/2} \over \Delta t/2}={\left(\delta _{x}^{2}u_{ij}^{n+1/2}+\delta _{y}^{2}u_{ij}^{n+1}\right) \over \Delta y^{2}}$
The system of equations involved is symmetric and tridiagonal (banded with bandwidth 3), and is typically solved using tridiagonal matrix algorithm.
It can be shown that this method is unconditionally stable and second order in time and space. There are more refined ADI methods such as the methods of Douglas, or the f-factor method which can be used for three or more dimensions.

### Generalizations

The usage of the ADI method as an operator splitting scheme can be generalized. That is, we may consider general evolution equations
    ${\dot {u}}=F_{1}u+F_{2}u,$
where $F_{1}$ and $F_{2}$ are (possibly nonlinear) operators defined on a Banach space. In the diffusion example above we have $F_{1}={\partial ^{2} \over \partial x^{2}}$ and $F_{2}={\partial ^{2} \over \partial y^{2}}$.

## Fundamental ADI (FADI)
### Simplification of ADI to FADI

It is possible to simplify the conventional ADI method into Fundamental ADI method, which only has the similar operators at the left-hand sides while being operator-free at the right-hand sides. This may be regarded as the fundamental (basic) scheme of ADI method, with no more operator (to be reduced) at the right-hand sides, unlike most traditional implicit methods that usually consist of operators at both sides of equations. The FADI method leads to simpler, more concise and efficient update equations without degrading the accuracy of conventional ADI method.

### Relations to other implicit methods

Many classical implicit methods by Peaceman-Rachford, Douglas-Gunn, D'Yakonov, Beam-Warming, Crank-Nicolson, etc., may be simplified to fundamental implicit schemes with operator-free right-hand sides. In their fundamental forms, the FADI method of second-order temporal accuracy can be related closely to the fundamental locally one-dimensional (FLOD) method, which can be upgraded to second-order temporal accuracy, such as for three-dimensional Maxwell's equations in computational electromagnetics. For two- and three-dimensional heat conduction and diffusion equations, both FADI and FLOD methods may be implemented in simpler, more efficient and stable manner compared to their conventional methods.