# svd_theta¶

tenpy.algorithms.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 with `truncate()`. The result is an approximation `theta ~= 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 singluar values of the array. If no cutoff is given, it has lenght `min(M, N)`. Normalized to `np.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.