Lanczos Method
The Foster-to-Cauer Methods of the previous chapters yields exact Cauer coefficients but can be slow and prone to round-off once the ladder grows long. The Lanczos iteration offers a fast, numerically stable alternative that needs only vector operations and produces the Cauer elements on the fly.
The Foster ladder that comes straight from the time-constant spectrum is a parallel network whose branch voltages obey a first-order differential equation. The Lanczos iteration turns that differential-equation view into a numerically efficient recipe for building the equivalent series Cauer ladder, one resistor–capacitor pair at a time.
Fig. 6 Foster network with series RC branches.
Foster Network as Differential-Equation
For a Foster network with branch capacitances \(C_i\) and resistances \(R_i\) the node voltages collected in \(\mathbf u(t)=[u_1,\dots,u_N]^{\!\top}\) satisfy
where \(I(t)\) is the input current and
This is the thermal analogue of the semi-discrete heat equation (without sources). After Laplace transformation we recover the driving-point impedance
exactly the quantity that network identification by deconvolution supplies. Lanczos operates directly on the matrix pencil \((s\mathbf C+\mathbf K)\) to recast it into the tridiagonal continued-fraction form of a Cauer ladder, compare the equations in the section on Polynomial Long-Division.
Lanczos in a Nutshell
Project the diagonal pair \((\mathbf C,\mathbf K)\) onto a Krylov sub-space that is orthogonal with respect to the \(\mathbf C\)-weighted inner product.
The projection produces a tridiagonal matrix \(\mathbf T\) whose entries are the Cauer resistances and capacitances.
One Lanczos iteration = one extra rung in the ladder.
During the iteration two scalars are produced at every step:
where
\(\mathbf u_k\) – the k-th Lanczos vector (C-orthonormal),
\(\mathbf r_k\) – the residual used to build the next vector.
Algorithm
Lanczos Iteration for Foster-to-Cauer Conversion
Input: \(\mathbf{C} = \text{diag}(C_1\ldots C_N)\), \(\mathbf{K} = \text{diag}(1/R_1\ldots 1/R_N)\)
Output: \(\{R'_k, C'_k\}\) for \(k = 1 \ldots \nu\) (Cauer ladder)
Solve \(\mathbf{C}\,\mathbf{r} = \mathbf{1}_N\) (initial residual \(\mathbf{r}_0\))
\(\beta_0 = \sqrt{\mathbf{r}^\top \mathbf{C}\,\mathbf{r}}\)
\(\mathbf{v} = \mathbf{0}\) (“previous” Lanczos vector)
\(k = 0\)
while \(\beta_k \neq 0\) do
\(\mathbf{u} = \mathbf{r}/\beta_k\) (new Lanczos vector \(\mathbf{u}_k\))
\(k = k + 1\)
\(\alpha_k = -\,\mathbf{u}^\top \mathbf{K}\,\mathbf{u}\)
Solve \(\mathbf{C}\,\mathbf{r} = -(\mathbf{K} + \alpha_k\mathbf{C})\,\mathbf{u} - \beta_{k-1}\,\mathbf{C}\,\mathbf{v}\)
\(\beta_k = \sqrt{\mathbf{r}^\top \mathbf{C}\,\mathbf{r}}\)
\(\mathbf{v} = \mathbf{u}\)
end while
Mapping to Cauer Elements
Let \(r_k = 1/R'_k\) and \(c_k = C'_k\).
First pair
Subsequent pairs (\(k \ge 2\))
Each step adds one section to the series ladder; stop when the desired cumulative resistance is reached or when \(\beta_k\) underflows.
Why Use Lanczos?
The Lanczos method offers significant advantages: it’s computationally efficient with complexity linear in the number of Foster branches, avoiding large matrix multiplications and high-order polynomial divisions; it provides excellent numerical stability in ordinary double precision for hundreds of ladder sections as coefficients remain \(\mathcal{O}(1)\); and it delivers progressive output where the first few Cauer elements appear after only a handful of iterations, making it particularly suitable for on-line identification.
Practical Tips
For optimal performance when implementing the Lanczos method, consider rescaling \(s\) by the geometric mean of all time-constants to keep \(\alpha_k\) near –1 … 0, and you can safely terminate the algorithm when \(\beta_k/\beta_0 < 10^{-12}\) as the remaining ladder will have negligible influence on the impedance.