Using the central difference derivative approximation, the finite difference approximation of the following wave equation:
$$ c^2 u_{xx} = u_{tt} \tag 1$$
can be written as:
$$ U_{i+1, j}= kU_{i, j+1} + (2 - 2k)U_{i, j} + kU_{i, j-1} - U_{i-1, j} \tag 2$$
where:
$$ k = \Bigg(c{\Delta t \over \Delta x} \Bigg)^2 \tag 3$$
Assuming that the initial and boundary conditions are zero, the iteration expression can be written as:
$$\begin{bmatrix}\vec U_{i+1}\\\vec U_{i}\end{bmatrix} = M \begin{bmatrix}\vec U_{i}\\\vec U_{i-1}\end{bmatrix} \tag 4$$
In the above expression, $M$ is the iteration matrix and it is defined as:
$$ M = \begin{bmatrix} A & -I\\I & O\end{bmatrix} \tag 5 $$
where $I$ is the identity matrix, $O$ is the zero matrix and $A$ is the following tridiagonal matrix:
$$ A = \begin{bmatrix} 2-2k & k & 0\\ k & 2-2k & k\\ 0 & k & 2-2k\\ \end{bmatrix} \tag 6$$
Since there are no boundary conditions in the form of derivatives, the stability condition is:
$$ c{\Delta t \over \Delta x} \leq 1 \tag7 $$
This is the Courant–Friedrichs–Lewy (CFL) condition.
I have studied the finite difference method from this book. The way I understand this method, the method is stable by making sure that the first, second or infinity norm of the matrix $M$ is less or equal to one. I am trying to derive the CFL condition by analyzing the matrix norms, but I am failing. Here is what I did:
By analyzing the first norm I wrote:
$$ k + |2-2k| + k + 1 \leq 1 \tag 8$$
Then I considered the case where $k$ is less or equal to $1$:
$$ k + 2-2k + k + 1 \leq 1 \Rightarrow 3\leq 1 \tag {9}$$
It seems that the CFL condition can not be derived this way, or I made a mistake somewhere.
I tried one more way to derive the CFL condition using the matrix method. The method is described on page $148$ of the book I referenced, and there is also an example for the heat equation on page $150$.
The goal is to make sure that the spectral radius of matrix $M$ is less or equal to one. I have derived the eigenvalues of $M$ to be:
$$\lambda (k,n) = 0.5\bigg(f(k,n) \pm \sqrt {f^2(k,n) - 4}\bigg) \tag {10}$$
where $f(k,n)$ is defined as:
$$ f(k,n) = 2 - 2k \Bigg( 1 + \cos{\Big({n\pi \over N + 1}\Big)} \Bigg) \tag {11}$$ Note that $N$ is equal to three in this case and $n\in\{1, 2, 3\}.$ Plotting the absolute values of the six eigenvalue functions in Matlab, I got the following graph:
From the graph it can be seen that I made a mistake somewhere again, or I missed something. I tried to figure out what, but failed. The value of the spectral radius should not be equal to one if $k \geq 1$. It should be greater than one. But on my graph it is equal to one.
My question is, where am I making a mistake and how can I derive the CFL condition using the matrix method?
