Algorithm 1: A trust region algorithm for computing an eigenvalue of a tensor. |
1: Set $ \mathcal{B}= \mathcal{I} $ and $ \mathcal{B}= \mathcal{E} $ if an H-eigenvalue and a Z-eigenvalue are in purpose, respectively. 2: Set parameters $ 0<\eta_1<\eta_2<1/2 $, $ 0<\gamma_1<\gamma_2<1<\gamma_3 $, and $ 0<\Delta_0\le\bar{\Delta} $. Choose an initial point $ \mathbf{x}_0\in\mathbb{S}^{{n-1}} $ and set $ k\gets0 $. 3: while$ \nabla f( \mathbf{x}_k)\ne0 $ 4: Calculate $ \mathcal{A} \mathbf{x}^m, \mathcal{B} \mathbf{x}^m, \mathcal{A} \mathbf{x}^{m-1}, \mathcal{B} \mathbf{x}^{m-1}, \mathcal{A} \mathbf{x}^{m-2} $, and $ \mathcal{B} \mathbf{x}^{m-2} $. 5: Solve the trust region subproblem: $\begin{equation*} \begin{aligned} \min\; & \frac{1}{2} \mathbf{d}^T H_k \mathbf{d} + \mathbf{g}_k^T \mathbf{d} + f_k \mathrm{s.t.}\; \; \| \mathbf{d}\|\le\Delta_k, \end{aligned} \end{equation*}$ $ \mathrm{s.t.}\; \; \| \mathbf{d}\|\le\Delta_k, $ inexactly for a trial step $ \mathbf{d}_k $ satisfying (7) and (8). 6: Backtracking search on $ \mathbb{S}^{{n-1}} $. Find a smallest nonnegative integer $ j $ such that the step size $ \alpha=\gamma_2^j $ satisfies: $\begin{equation*} \rho_k = \frac{f_k-f( \mathbf{x}_k^+(\alpha))}{q_k(0)-q_k(\alpha \mathbf{d}_k)} \ge \eta_1, \end{equation*}$ where $ \mathbf{x}_k^+(\alpha) $ is defined by (9). 7: Update an iterate. Set $ \alpha_k=\gamma_2^j $ and $ \mathbf{x}_{k+1}= \mathbf{x}_k^+(\alpha_k) $. 8: Update a trust region radius. If $ \alpha_k=1 $, we choose $ \begin{equation*} \Delta_{k+1}\in\left\{\begin{aligned} & [\gamma_2\Delta_k, \Delta_k] && \text{ if }\rho_k\in[\eta_1,\eta_2), & [\Delta_k, \min\{\gamma_3\Delta_k,\bar{\Delta}\}] && \text{ if }\rho_k\ge\eta_2, \end{aligned}\right. \end{equation*} $ else $\begin{equation*} \Delta_{k+1}\in[\max\{\gamma_1\Delta_k,\alpha_k\| \mathbf{d}_k\|\},\gamma_2\Delta_k]. \end{equation*}$ 9: Set $ k\gets k+1 $. 10: end while |