pymor.algorithms.svd_va

Module for SVD method of operators represented by VectorArrays.

Module Contents

pymor.algorithms.svd_va.method_of_snapshots(A, product=None, modes=None, rtol=1e-07, atol=0.0, l2_err=0.0)[source]

SVD of a VectorArray using the method of snapshots.

Viewing the VectorArray A as a A.dim x len(A) matrix, the return value of this method is the singular value decomposition of A, where the inner product on R^(dim(A)) is given by product and the inner product on R^(len(A)) is the Euclidean inner product.

Warning

The left singular vectors may not be numerically orthonormal for ill-conditioned A.

Parameters:
  • A – The VectorArray for which the SVD is to be computed.

  • product – Inner product Operator w.r.t. which the SVD is computed.

  • modes – If not None, at most the first modes singular values and vectors are returned.

  • rtol – Singular values smaller than this value multiplied by the largest singular value are ignored.

  • atol – Singular values smaller than this value are ignored.

  • l2_err

    Do not return more modes than needed to bound the l2-approximation error by this value. I.e. the number of returned modes is at most

    argmin_N { sum_{n=N+1}^{infty} s_n^2 <= l2_err^2 }
    

    where s_n denotes the n-th singular value.

Returns:

pymor.algorithms.svd_va.qr_svd(A, product=None, modes=None, rtol=4e-08, atol=0.0, l2_err=0.0)[source]

SVD of a VectorArray using Gram-Schmidt orthogonalization.

Viewing the VectorArray A as a A.dim x len(A) matrix, the return value of this method is the singular value decomposition of A, where the inner product on R^(dim(A)) is given by product and the inner product on R^(len(A)) is the Euclidean inner product.

Parameters:
  • A – The VectorArray for which the SVD is to be computed.

  • product – Inner product Operator w.r.t. which the left singular vectors are computed.

  • modes – If not None, at most the first modes singular values and vectors are returned.

  • rtol – Singular values smaller than this value multiplied by the largest singular value are ignored.

  • atol – Singular values smaller than this value are ignored.

  • l2_err

    Do not return more modes than needed to bound the l2-approximation error by this value. I.e. the number of returned modes is at most

    argmin_N { sum_{n=N+1}^{infty} s_n^2 <= l2_err^2 }
    

    where s_n denotes the n-th singular value.

Returns: