ttclass/amensolve.m

From Spinach Documentation Wiki
Jump to: navigation, search

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

Syntax

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

Description

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

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.

See also

ttclass.m, ttclass/amensum.m


Version 2.1, authors: Dmitry Savostyanov, Sergey Dolgov