It is often the case that, while the numerical solution of the non-linear dispersive equation $\mathrm{i}\partial_t u(t)=\mathcal{H}(u(t),t)u(t)$ represents a formidable challenge, it is fairly easy and cheap to solve closely related linear equations of the form $\mathrm{i}\partial_t u(t)=\mathcal{H}_1(t)u(t)+\widetilde{\mathcal H}_2(t)u(t)$, where $\mathcal{H}_1(t)+\mathcal{H}_2(v,t)=\mathcal{H}(v,t)$. In that case we advocate an iterative linearisation procedure that involves fixed-point iteration of the latter equation to solve the former. A typical case is when the original problem is a nonlinear Schr\"odinger or Gross--Pitaevskii equation, while the `easy' equation is linear Schr\"odinger with time-dependent potential. We analyse in detail the iterative scheme and its practical implementation, prove that each iteration increases the order, derive upper bounds on the speed of convergence and discuss in the case of nonlinear Schr\"odinger equation with cubic potential the preservation of structural features of the underlying equation: the $\mathrm{L}_2$ norm, momentum and Hamiltonian energy. A key ingredient in our approach is the use of the Magnus expansion in conjunction with Hermite quadratures, which allows effective solutions of the linearised but non-autonomous equations in an iterative fashion. The resulting Magnus--Hermite methods can be combined with a wide range of numerical approximations to the matrix exponential. The paper concludes with a number of numerical experiments, demonstrating the power of the proposed approach.
翻译:暂无翻译