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.

Foster network

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

(100)\[\mathbf C\,\dot{\mathbf u}(t)+\mathbf K\,\mathbf u(t)=\mathbf g\,I(t),\]

where \(I(t)\) is the input current and

(101)\[\begin{split}\begin{aligned} \mathbf C&=\operatorname{diag}(C_i)\\[1ex] \mathbf K&=\operatorname{diag}\!\bigl(1/R_i\bigr)\\[1ex] \mathbf g&=\mathbf 1 \end{aligned}\quad .\end{split}\]

This is the thermal analogue of the semi-discrete heat equation (without sources). After Laplace transformation we recover the driving-point impedance

(102)\[Z(s)=\mathbf g^{\!\top}\bigl(s\mathbf C+\mathbf K\bigr)^{-1}\mathbf g,\]

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:

(103)\[\begin{split}\begin{aligned} \alpha_k &= -\,\mathbf u_k^{\!\top}\mathbf K\,\mathbf u_k \\[1ex] \beta_k &= \|\mathbf r_k\|_{\mathbf C} \\[1ex] &= \sqrt{\mathbf r_k^{\!\top}\mathbf C\,\mathbf r_k} \end{aligned}\end{split}\]

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)

  1. Solve \(\mathbf{C}\,\mathbf{r} = \mathbf{1}_N\) (initial residual \(\mathbf{r}_0\))

  2. \(\beta_0 = \sqrt{\mathbf{r}^\top \mathbf{C}\,\mathbf{r}}\)

  3. \(\mathbf{v} = \mathbf{0}\) (“previous” Lanczos vector)

  4. \(k = 0\)

  5. while \(\beta_k \neq 0\) do

    1. \(\mathbf{u} = \mathbf{r}/\beta_k\) (new Lanczos vector \(\mathbf{u}_k\))

    2. \(k = k + 1\)

    3. \(\alpha_k = -\,\mathbf{u}^\top \mathbf{K}\,\mathbf{u}\)

    4. Solve \(\mathbf{C}\,\mathbf{r} = -(\mathbf{K} + \alpha_k\mathbf{C})\,\mathbf{u} - \beta_{k-1}\,\mathbf{C}\,\mathbf{v}\)

    5. \(\beta_k = \sqrt{\mathbf{r}^\top \mathbf{C}\,\mathbf{r}}\)

    6. \(\mathbf{v} = \mathbf{u}\)

  6. end while

Mapping to Cauer Elements

Let \(r_k = 1/R'_k\) and \(c_k = C'_k\).

First pair

(104)\[C'_1 = \frac{1}{\beta_0^{2}},\qquad R'_1 = -\frac{1}{\alpha_1\,C'_1}.\]

Subsequent pairs (\(k \ge 2\))

(105)\[C'_k = \frac{1}{\beta_{k-1}^{2}\,r_{k-1}^{2}\,c_{k-1}},\qquad R'_k = -\frac{1}{\alpha_k c_k + 1/r_{k-1}}.\]

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.