rspert.m

From Spinach Documentation Wiki
Revision as of 15:04, 5 April 2026 by Kuprov (talk | contribs) (Sync syntax/arguments/outputs with current Spinach source)
Jump to: navigation, search


Rayleigh-Schrodinger perturbation theory to arbitrary order, Eqs 2.21-2.23 from Stefan Stoll's PhD thesis, with the typo fixed in the numerator of Eq 2.21.

Syntax

[Ep,Vp]=rspert(E0,H1,order)

Arguments

E0 - eigenvalues of H0, a column vector of real

            numbers

    H1    - perturbation, written in the basis that di-
            agonalises H0

    order - order of perturbation theory to be used, 6
            is the sensible maximum

Outputs

Ep - eigenvalues of H0+H1 to the specified order,

            a vector of reals, not necessarily sorted in
            the same way as the input
    Vp    - normalised eigenvectors of H0+H1 to the spe-
            cified order in perturbation theory, a squa-
            re unitary matrix with eigenvectors in cols
            in the same order as the eigenvalues in Ep
Notes: there must be no degeneracies in H0; H1 must be Hermitian,
       the theory only converges when norm(H1,2) is much smaller
       than the smallest energy gap in H0; numerical artefacts
       appear beyond sixth order; complexity is linear in the or-
       der and cubic in the matrix dimension.
ilya.kuprov@weizmann.ac.il

Examples

Below is the output of examples/fundamentals/perturb_theory.m example file.

Rspert.png

Notes

  1. There must be no degeneracies in H0.
  2. H1 must be Hermitian.
  3. The theory only converges when H1 << H0 in 2-norm.
  4. Numerical artefacts appear beyond sixth order.
  5. Complexity is linear in the order and cubic in matrix dimension.

See also

vvpert.m, Numerical infrastructure


Version 2.6, authors: Ilya Kuprov