$$
\newcommand{\uex}{{u_{\small\mbox{e}}}}
\newcommand{\half}{\frac{1}{2}}
\newcommand{\halfi}{{1/2}}
\newcommand{\xpoint}{\boldsymbol{x}}
\newcommand{\normalvec}{\boldsymbol{n}}
\newcommand{\Oof}[1]{\mathcal{O}(#1)}
\newcommand{\Ix}{\mathcal{I}_x}
\newcommand{\Iy}{\mathcal{I}_y}
\newcommand{\It}{\mathcal{I}_t}
\newcommand{\setb}[1]{#1^0} % set begin
\newcommand{\sete}[1]{#1^{-1}} % set end
\newcommand{\setl}[1]{#1^-}
\newcommand{\setr}[1]{#1^+}
\newcommand{\seti}[1]{#1^i}
\newcommand{\Real}{\mathbb{R}}
$$
The algorithm
- Compute \( u^0_i=I(x_i) \) for \( i=0,\ldots,N_x \)
- Compute \( u^1_i \) by (10) and set \( u_i^1=0 \)
for the boundary points \( i=0 \) and \( i=N_x \), for \( n=1,2,\ldots,N-1 \),
- For each time level \( n=1,2,\ldots,N_t-1 \)
- apply (9) to find \( u^{n+1}_i \) for \( i=1,\ldots,N_x-1 \)
- set \( u^{n+1}_i=0 \) for the boundary points \( i=0 \), \( i=N_x \).