ttclass/amensolve.m

From Spinach Documentation Wiki
Revision as of 18:04, 5 June 2026 by Kuprov (talk | contribs) (Repair ttclass function page template)
Jump to: navigation, search

Solves the linear system Ax=y using the AMEn iteration.

Syntax

    x=amensolve(A,y,tol,opts,x0)

Arguments

    A                    - ttclass representing a square matrix

    y                    - ttclass representing the right hand side

    tol                  - relative approximation and stopping tolerance,
                           1e-6 is a good start

    x0                   - ttclass representing the initial guess

    Options (pass empty array for defaults):

    opts.nswp            - maximum number of AMEn sweeps

    opts.init_guess_rank - the rank of the initial guess

    opts.enrichment_rank - the rank of the residual and
                           enrichment

    opts.resid_damp      - local accuracy gap

    opts.rmax            - maximum TT rank limit for the solution

    opts.max_full_size   - direct vs iterative solver switch-
                           over dimension

    opts.local_iters     - maximum number of bicgstab iterations
                           for local problems

    opts.verb            - Verbosity level: silent (0), sweep (1) or full (2)

Outputs

    x - ttclass representing the solution such that
        |x-X| < tol |X| in Frobenius norm, where X is
        the exact solution.

Notes

A, y and x0 should have ntrains==1. Call ttclass/shrink.m on all three if that is not the case.

A very experimental tensor train format solver - see papers by Savostyanov and Dolgov.

See also

ttclass.m, ttclass/amensum.m

Version 2.1, authors: Dmitry Savostyanov, Sergey Dolgov