Re: von Neumann entropy
- To: mathgroup at smc.vnet.net
- Subject: [mg43153] Re: von Neumann entropy
- From: Paul Abbott <paul at physics.uwa.edu.au>
- Date: Thu, 14 Aug 2003 07:06:38 -0400 (EDT)
- Organization: The University of Western Australia
- References: <bhd9nn$rpk$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <bhd9nn$rpk$1 at smc.vnet.net>, Chad Junkermeier <cej38 at email.byu.edu> wrote: > I have been trying to use Mathematica to compute the von Neumann entropy > of a density matrix and have run into trouble with telling Mathematica > to use a particular definition in the calculation. > > The von Neumann entropy is defined as > > S = -Tr [ rho Ln (rho)], > > where rho is a square matrix. Are you sure that this definition, as written, is correct for matrices (as opposed to operators)? How is the multiplication of the matrices rho and Log[rho] to be interpreted (element-by-element, as written, or matrix multiplication using Dot)? > The problem is how to handle the case when and element of the matrix rho is zero. I want to tell Mathematica > to assume that > > 0 * Ln(0) = 0 > > when it is computing the entropy. How do I tell it to make that > assumption? You can avoid this problem altogether. The definition I'm familiar with gives the von Neumann entropy as a sum over the eigenvalues, r, of rho: r = Eigenvalues[rho]; S = - Sum[r[[i]] Log[r[[i]]],{i,Length[r]}] which can be implemented more elegantly as S = - r . Log[r] rho should be positive definite, so all the eigenvalues will be positive and there should be no errors. Note that, in general, this will _not_ give the same result as S = -Tr[rho Log[rho]] Cheers, Paul -- Paul Abbott Phone: +61 8 9380 2734 School of Physics, M013 Fax: +61 8 9380 1014 The University of Western Australia (CRICOS Provider No 00126G) 35 Stirling Highway Crawley WA 6009 mailto:paul at physics.uwa.edu.au AUSTRALIA http://physics.uwa.edu.au/~paul