Skip to main content
Sandbox Physics
Tensor networks · A course with experiments

L2 · Chapter 3

Turn a wave function into a chain of small matrices

Split off the first spin with a singular value decomposition, keep the left factor as a small matrix, and carry the rest forward. Repeat for every spin. Each amplitude is then a product of one matrix per spin, chosen by that spin's value. The sizes of the matrices are the numbers of Schmidt terms at each cut, so a chain with little entanglement needs only small matrices.

Peel off one spin at a time

Start with the amplitudes as a two-row matrix: the first spin labels the rows and the other spins label the columns. Decompose it. Keep the left factor, a two by two matrix, as the tensor of the first spin. Multiply the singular values into the right factor, then reshape that factor so the second spin joins the rows.

Decompose again, keep the new left factor as the tensor of the second spin, and carry the rest forward. After the last spin, every amplitude reads as a row vector times a chain of matrices times a column vector, one matrix per spin, picked by whether that spin is up or down. Schollwöck builds the decomposition this way in Section 4.1.3 of his review.

ψs1s2⋯sL=A[1]s1A[2]s2⋯A[L]sL,A[j]sj∈Cχj−1×χj,χ0=χL=1\psi_{s_1s_2\cdots s_L}=A^{[1]s_1}A^{[2]s_2}\cdots A^{[L]s_L},\qquad A^{[j]s_j}\in\mathbb C^{\chi_{j-1}\times\chi_j},\quad \chi_0=\chi_L=1

Why the matrices stay orthonormal

Each kept left factor has orthonormal columns, because it came out of a singular value decomposition. Summed over the two values of its spin, the tensor times its own conjugate transpose gives the identity. Schollwöck calls such a tensor left-normalized.

This matters in practice. With every tensor to the left of a cut left-normalized, the columns of that cut are an orthonormal basis of the left part. The singular values at that cut are then the Schmidt coefficients of the full state, so the entanglement and the truncation error at any cut can be read off locally, without touching the rest of the chain.

∑sj(A[j]sj)†A[j]sj=1χj\sum_{s_j}\big(A^{[j]s_j}\big)^{\dagger}A^{[j]s_j}=\mathbb 1_{\chi_j}

Worked example

Count the numbers for twelve spins

Without truncation, the number of Schmidt terms at a cut cannot exceed the number of patterns on the smaller side. For twelve spins the link sizes can run 2, 4, 8, 16, 32, 64 and back down. Count the entries and an exact matrix product state of a general state stores 10,920 numbers, more than twice the original list. The format alone saves nothing. The saving comes from cutting the links.

Now cap every link at four, the compression Lab default. The link sizes become 1, 2, 4, then eight links of 4, then 4, 2, 1 at the far end. Each tensor holds two matrices, one per spin value, of size left link by right link. Adding them gives 296 numbers in place of 4,096. That is the stored count the Lab reports for the critical chain.

N=∑j=1122 χj−1χj=2 (1⋅2+2⋅4+8⋅4⋅4+4⋅2+2⋅1)=296N=\sum_{j=1}^{12}2\,\chi_{j-1}\chi_j=2\,(1\cdot2+2\cdot4+8\cdot4\cdot4+4\cdot2+2\cdot1)=296

Vidal's form keeps the weights in view

Vidal wrote the same object differently in 2004. Between every pair of site tensors he stores the vector of Schmidt coefficients of that cut. A state of a chain of spins then needs a number of parameters that grows like the chain length times the square of the largest link size, instead of exponentially.

His form makes truncation transparent: the coefficients at every cut sit in the open, so cutting a link down means dropping its smallest coefficients. Chapter six uses this form to evolve a state in time.

ψs1⋯sL=Γ[1]s1Λ[1]Γ[2]s2Λ[2]⋯Λ[L−1]Γ[L]sL,Λ[j]=diag(s1[j],…,sχj[j])\psi_{s_1\cdots s_L}=\Gamma^{[1]s_1}\Lambda^{[1]}\Gamma^{[2]s_2}\Lambda^{[2]}\cdots\Lambda^{[L-1]}\Gamma^{[L]s_L},\qquad \Lambda^{[j]}=\mathrm{diag}\big(s^{[j]}_1,\dots,s^{[j]}_{\chi_j}\big)

An experiment to think through

Predict, change, explain

  1. In the compression Lab, predict the stored count for the critical chain at bond dimension eight before you move the slider.
  2. Move the slider to sixteen, then all the way to 64.
  3. At sixteen the Lab stores 2,680 numbers and the error is at the level of rounding. At 64 it stores more than the full list. Explain both with the size of the Schmidt weights at each cut.

The Labs simulate open spin-1/2 chains with energies in units of the coupling and time in units of the reduced Planck constant divided by the coupling. Each Lab states its model and limits in its notes and can export the data behind its readouts.

Try explaining it yourself

1. What is the largest link size an exact matrix product state of twelve spins can need, and at which cut?

Read an explained answer

At the middle cut, where each side has six spins and 64 patterns. The link there needs at most 64 terms.

χmax⁡=2L/2=64\chi_{\max}=2^{L/2}=64

2. Cap every link at eight for twelve spins. How many numbers are stored?

Read an explained answer

The links run 1, 2, 4, 8, then six interior links of 8, then 8, 4, 2, 1. Summing two times the product of neighbouring link sizes gives 936.

N=2 (2+8+32+6⋅64+32+8+2)=936N=2\,(2+8+32+6\cdot64+32+8+2)=936

3. At a fixed cap of four, how many stored numbers does each extra spin add in the middle of a long chain?

Read an explained answer

One more tensor of two four by four matrices, so 32 numbers. The storage grows in proportion to the length.

Sources to read alongside

  1. U. Schollwöck, The density-matrix renormalization group in the age of matrix product states, Annals of Physics 326, 96 (2011)

    The standard review. Section 3 uses the area law to explain why DMRG works in one dimension; Section 4.1 builds matrix product states from successive singular value decompositions and bounds the truncation error in Eq. 58; Section 6 sets out the ground-state search as a variational sweep; Section 7 covers time evolution and its limits.

  2. G. Vidal, Efficient simulation of one-dimensional quantum many-body systems, Physical Review Letters 93, 040502 (2004)

    Introduces the time-evolving block decimation: split the Hamiltonian into two-site gates, apply them and keep the largest Schmidt coefficients after each gate.

FeedbackSomething broken, confusing, or missing on this page?Tell us
What kind of feedback?

Sent with this page’s address, its Lab ID, the site language and your device type. Please leave out personal details. Feedback is kept for up to 12 months.Privacy policy