## 2 Materials and Methods
### The DBIM-FISTA Algorithm
, \tag{21}\]  
where  
\[\bar{\mathbf{A}}_{\varepsilon_{\infty}}^{\Re}=\mathbf{A}^{\Re},\bar{ \mathbf{A}}_{\varepsilon_{\infty}}^{\Im}=\mathbf{A}^{\Im},\bar{\mathbf{A}}_ {\Delta\varepsilon}^{\Re}=\frac{\mathbf{A}^{\Re}+\omega\tau\mathbf{A}^{\Im} }{1+\omega^{2}\tau^{2}},\bar{\mathbf{A}}_{\Delta\varepsilon}^{\Im}=\frac{ \mathbf{A}^{\Im}-\omega\tau\mathbf{A}^{\Re}}{1+\omega^{2}\tau^{2}},\bar{ \mathbf{A}}_{\sigma_{s}}^{\Re}=\frac{\mathbf{A}^{\Im}}{\omega\varepsilon_{0}},\bar{\mathbf{A}}_{\sigma_{s}}^{\Im}=\frac{-\mathbf{A}^{\Re}}{\omega \varepsilon_{0}}. \tag{22}\]  
We also use the convolutional perfectly matched layer (CPML) absorbing boundary condition to terminate the FDTD computational domain. A minimization problem with a regularization term is considered by FISTA as the following steps when \(l_{1}\) norm is chosen,  
\[F(\mathbf{x})=\frac{1}{2}\|\mathbf{A}\mathbf{x}-\mathbf{b}\|_{2}^{2}+\lambda \|\mathbf{x}\|_{1} \tag{23}\]  
where \(\lambda\) is a regularization parameter. Thus the structure of FISTA is constructed as [43],  
\[ \begin{split}&\mathbf{x}_{k}=p_{L_{k}}(\mathbf{y}_{k})=\psi \bigg{(}\mathbf{y}_{k}-\frac{1}{L_{k}}\mathbf{A}^{T}(\mathbf{A}\mathbf{y}_{k}- \mathbf{b})\bigg{)},\\ &\mathbf{y}_{k+1}=\mathbf{x}_{k}+\frac{t_{k}-1}{t_{k+1}}(\mathbf{x }_{k}-\mathbf{x}_{k-1})\end{split}  \tag{24}\]  
where  
\[t_{0}=1\text{ and }t_{k+1}=\frac{1+\sqrt{1+4t_{k}^{2}}}{2}, \tag{25}\]  
\(\psi\) is the soft thresholding function  
\[\psi(\mathbf{x})=sign(\mathbf{x})|\mathbf{x}-\lambda|, \tag{26}\]  
\(\mathbf{y}_{\mathbf{k}}\) is the solution at the \(k\)-th iteration. \(L_{k}\) is a non-negative parameter which is selected based on the following strategy: Find the smallest non-negative integers \(i_{k}\) with  
\[L_{k}=\eta^{i_{k}}L_{k-1}\text{ and }L_{0}=1, \tag{27}\]  
such that  
\[F(p_{L_{k}}(\mathbf{y}_{k}))\leq Q_{L_{k}}((p_{L_{k}}(\mathbf{y}_{k}),\mathbf{ y}_{k}), \tag{28}\]  
where  
\[\eta>1\text{ and }Q_{L}(\mathbf{x},\mathbf{y})=\frac{1}{2}\|\mathbf{A}\mathbf{y}- \mathbf{b}\|_{2}^{2}+\langle\mathbf{x}-\mathbf{y},\mathbf{A}^{T}\mathbf{A} \mathbf{y}-\mathbf{b}\rangle+\frac{1}{2}\|\mathbf{x}-\mathbf{y}\|_{2}^{2}+ \lambda\|\mathbf{x}\|_{1}. \tag{29}\]  
The computational complexity for FISTA is \(O(kMN)\) with a higher order convergence rate \(O(\frac{1}{k^{2}})\) compared with the traditional CG-type algorithm. The improvement is causedby the use of the accelerated momentum \(t_{k}\), which also reduces the chance of getting stuck into a local minimum when combined with a regularization term [44]. Our implementation selects the initial value of \(\mathbf{x}\) to be 0 and the regularization parameter as  
\[\lambda=\delta\|\mathbf{A}^{T}\mathbf{b}\|_{\infty}, \tag{30}\]  
where \(\delta\) is a factor with  
\[0<\delta<1. \tag{31}\]  
The stopping criterion is based on the relative error between current \(F(\mathbf{x}_{k})\) and previous \(F(\mathbf{x}_{k-1})\), defined as  
\[e_{opt}=\frac{|F(\mathbf{x}_{k})-F(\mathbf{x}_{k-1})|}{F(\mathbf{x}_{k-1})}. \tag{32}\]  
FISTA stops when the relative error \(e_{opt}\) becomes smaller than a preset value, usually chosen between \(10^{-4}\) and \(10^{-2}\).