I am looking for discretization methods of continuous linear time invariant systems with the properties:
- It is L-stable (meaning it is A-stable and its stability function approaches zero in the limit)
- It maps the open left half of the complex s-plane to the interior of the unit circle of the z-plane.
Some background: Consider the system
$$ \begin{align} \dot{x}(t) &= f(t,x(t)) \\ x(0) &= x_0 \end{align}\tag{1} $$
where $f:R^m\to R^m$ is smooth and $x\in R^m$. A numerical solution to the initial value problem $(1)$ can be computed by the general (potentially implicit) Runge-Kutta method of order $s$ and step-witdth $h$:
$$ \begin{align} x_{n+1} &= x_n + h \sum_{i = 1}^s b_i k_{ni} \\ k_{ni} &= f\Big(t_n + c_i h, x_n + h \sum_{j = 1}^s a_{ij}k_{nj}\Big) \end{align} \tag{2} $$
The coefficients $a_{ij},b_i,c_i$ in $(2)$ are defined by the Butcher tableau:
$$ \begin{array} {c|c} c & A \\ \hline & b^T \end{array}= \begin{array} {c|cccc} c_1 & a_{11} & a_{12} & \dots & a_{1s} \\ c_2 & a_{21} & a_{22} & \dots & a_{2s} \\ \vdots & \vdots & \vdots & \ddots & \vdots \\ c_s & a_{s1} & a_{s2} & \dots & a_{ss} \\ \hline & b_1 & b_2 & \dots & b_s \end{array} $$
Different methods have different Butcher tableaus. For example:
$$ \begin{array}{|c|c|c|} \hline \text{Method} & \text{Butcher tableau} \\ \hline \text{Explicit Euler} & A = 0, b = 1, c = 0 \\ \hline \text{Implicit Euler} & A = 1, b = 1, c = 1 \\ \hline \text{Heun} & A = \begin{pmatrix}0&0\\1&0\end{pmatrix}, b = \begin{pmatrix}\frac{1}{2}\\ \frac{1}{2}\end{pmatrix}, c = \begin{pmatrix}0\\ 1\end{pmatrix} \\ \hline \text{Runge Kutta 4} & A = \begin{pmatrix}0&0&0&0\\\frac{1}{2}&0&0&0\\ 0&\frac{1}{2}&0&0\\0&0&1&0 \end{pmatrix}, b = \begin{pmatrix}\frac{1}{6}\\\frac{1}{3}\\ \frac{1}{3}\\ \frac{1}{6}\\ \end{pmatrix}, c = \begin{pmatrix}0\\ \frac{1}{2}\\ \frac{1}{2} \\ 1\end{pmatrix} \\ \hline \text{Trapezoidal} & A = \begin{pmatrix}0&0\\ \frac{1}{2} & \frac{1}{2}\end{pmatrix}, b = \begin{pmatrix}\frac{1}{2}\\ \frac{1}{2}\end{pmatrix}, c = \begin{pmatrix}0\\ 1\end{pmatrix} \\ \hline \end{array} $$
Each method has a stability region $S$ which is given by
$$ S = \{ z \in \mathbb{C} : |\phi(z)| \leq 1 \} \tag{3} $$
In Eq. $(3)$ the function $\phi$ is the stability function of the considered method which is constructed from its Butcher tableau: $$ \phi(z) = \frac{\det(I - z A + z \mathbf{1} b^T)}{\det(I - z A)} \tag{4} $$ Here $I$ is $s \times s$ identity matrix and $\mathbf{1}$ a $s \times 1$ vector of ones. The stability regions (in yellow) for the five methods look like this:
Now define A-stability: A method is A-stable if its stability region contains the left half-plane of $\mathbb{C}$, meaning that $\{ z \in \mathbb{C} : Re(z) \leq 0 \} \subset S$. Here $Re(z)$ is the real part of $z$.
As can be seen in the plots above, out of the the five example methods, only the implicit Euler and the trapezoidal method are A-stable.
Now define L-stability: A method is L-stable if it is A-stable and if $$ \lim_{Re(z) \rightarrow -\infty} |\phi(z)| = 0 $$
Note: A-stability and L-stability are different concepts than asymptotic stability and Lyapunov stability (the naming is a bit unfortunate in my opinion).
To come back to my question, I am looking for a method that is L-stable (1. condition) and whose stability region is exactly the left half of the complex plane (2. condition). In other words, I am looking for a L-stable method with stability region $S = \{ z \in \mathbb{C} : Re(z) \leq 0 \}$.
For example the billinear transform (trapezoidal method) satisfies the second condition. However its stability function $\phi$ satisfies
$$ \lim_{Re(z) \rightarrow -\infty} |\phi(z)| = \lim_{Re(z) \rightarrow -\infty} \Big|\frac{1 + 0.5 z}{1 - 0.5z}\Big| = 1 \neq 0 $$
So it is not L-stable.
On the other hand, the implicit Euler method is L-stable because
$$ \lim_{Re(z) \rightarrow -\infty} |\phi(z)| = \lim_{Re(z) \rightarrow -\infty} \Big|\frac{1}{1 - z}\Big| = 0 $$
However it doesn't satisfy the second condition because its stability region is "larger" than the left half of the complex plane.
Question: Is there a method that has both properties?
