svd_theta
full name: tenpy.linalg.truncation.svd_theta
parent module:
tenpy.linalg.truncation
type: function
- tenpy.linalg.truncation.svd_theta(theta, trunc_par, qtotal_LR=[None, None], inner_labels=['vR', 'vL'])[source]
Performs SVD of a matrix theta (= the wavefunction) and truncates it.
Perform a singular value decomposition (SVD) with
svd()
and truncates withtruncate()
. The result is an approximationtheta ~= tensordot(U.scale_axis(S*renormalization, 1), VH, axes=1)
- Parameters:
theta (
Array
, shape(M, N)
) – The matrix, on which the singular value decomposition (SVD) is performed. Usually, theta represents the wavefunction, such that the SVD is a Schmidt decomposition.trunc_par (dict) – truncation parameters as described in
truncate()
.qtotalLR ((charges, charges)) – The total charges for the returned U and VH.
inner_labels ((string, string)) – Labels for the U and VH on the newly-created bond.
- Returns:
U (
Array
) – Matrix with left singular vectors as columns. Shape(M, M)
or(M, K)
depending on full_matrices.S (1D ndarray) – The singular values of the array. If no cutoff is given, it has length
min(M, N)
. Normalized tonp.linalg.norm(S)==1
.VH (
Array
) – Matrix with right singular vectors as rows. Shape(N, N)
or(K, N)
depending on full_matrices.err (
TruncationError
) – The truncation error introduced.renormalization (float) – Factor, by which S was renormalized.