Pfaffian
Template:Short description Template:Distinguish In mathematics, the determinant of an m-by-m skew-symmetric matrix can always be written as the square of a polynomial in the matrix entries, a polynomial with integer coefficients that only depends on m. When m is odd, the polynomial is zero, and when m is even, it is a nonzero polynomial of degree m/2, and is unique up to multiplication by ±1. The convention on skew-symmetric tridiagonal matrices, given below in the examples, then determines one specific polynomial, called the Pfaffian polynomial. The value of this polynomial, when applied to the entries of a skew-symmetric matrix, is called the Pfaffian of that matrix. The term Pfaffian was introduced by Template:Harvs, who indirectly named them after Johann Friedrich Pfaff.
Explicitly, for a skew-symmetric matrix <math>A</math>,
- <math>\operatorname{pf}(A)^2=\det(A),</math>
which was first proved by Template:Harvs, who cites Jacobi for introducing these polynomials in work on Pfaffian systems of differential equations. Cayley obtains this relation by specialising a more general result on matrices that deviate from skew symmetry only in the first row and the first column. The determinant of such a matrix is the product of the Pfaffians of the two matrices obtained by first setting in the original matrix the upper left entry to zero and then copying, respectively, the negative transpose of the first row to the first column and the negative transpose of the first column to the first row. This is proved by induction by expanding the determinant on minors and employing the recursion formula below.
ExamplesEdit
- <math>A = \begin{bmatrix} 0 & a \\ -a & 0 \end{bmatrix},\qquad\operatorname{pf}(A) = a.</math>
- <math>B = \begin{bmatrix} 0 & a & b \\ -a & 0 & c \\ -b & -c & 0 \end{bmatrix},\qquad\operatorname{pf}(B) = 0.</math>
(3 is odd, so the Pfaffian of B is 0)
- <math>\operatorname{pf}\begin{bmatrix} 0 & a & b & c \\ -a & 0 & d & e \\ -b & -d & 0& f \\-c & -e & -f & 0 \end{bmatrix}=af-be+dc.</math>
The Pfaffian of a 2n × 2n skew-symmetric tridiagonal matrix is given as
- <math>\operatorname{pf}\begin{bmatrix}
0 & a_1 & 0 & 0\\ -a_1 & 0 & 0 & 0\\ 0 & 0 &0 & a_2 \\ 0 & 0 & -a_2 &0&\ddots\\ &&&\ddots&\ddots& \\ &&&& &0&a_n\\ &&&&&-a_n&0 \end{bmatrix} = a_1 a_2\cdots a_n.</math> (Note that any skew-symmetric matrix can be reduced to this form; see Spectral theory of a skew-symmetric matrix.)
Formal definitionEdit
Let A = (aij) be a 2n × 2n skew-symmetric matrix. The Pfaffian of A is explicitly defined by the formula
- <math>\operatorname{pf}(A) = \frac{1}{2^n n!}\sum_{\sigma\in S_{2n}}\operatorname{sgn}(\sigma)\prod_{i=1}^{n}a_{\sigma(2i-1),\sigma(2i)} \,, </math>
where S2n is the symmetric group of degree 2n and sgn(σ) is the signature of σ.
One can make use of the skew-symmetry of A to avoid summing over all possible permutations. Let Π be the set of all partitions of Template:Mset into pairs without regard to order. There are Template:Nowrap such partitions. An element Template:Nowrap can be written as
- <math>\alpha = \{(i_1,j_1),(i_2,j_2),\cdots,(i_n,j_n)\}</math>
with Template:Nowrap and <math>i_1 < i_2 < \cdots < i_n</math>. Let
- <math>\pi_\alpha = \begin{bmatrix} 1 & 2 & 3 & 4 & \cdots & 2n -1 & 2n \\ i_1 & j_1 & i_2 & j_2 & \cdots & i_n & j_{n} \end{bmatrix}</math>
be the corresponding permutation. Given a partition α as above, define
- <math>A_\alpha = \operatorname{sgn}(\pi_\alpha)a_{i_1,j_1}a_{i_2,j_2}\cdots a_{i_n,j_n}.</math>
The Pfaffian of A is then given by
- <math>\operatorname{pf}(A) = \sum_{\alpha\in\Pi} A_\alpha.</math>
The Pfaffian of a n × n skew-symmetric matrix for n odd is defined to be zero, as the determinant of an odd skew-symmetric matrix is zero, since for a skew-symmetric matrix, <math display="block">\det A = \det A^\text{T} = \det(-A) = (-1)^n \det A,</math> and for n odd, this implies <math>\det A = 0</math>.
Recursive definitionEdit
By convention, the Pfaffian of the 0 × 0 matrix is equal to one. The Pfaffian of a skew-symmetric 2n × 2n matrix A with Template:Nowrap can be computed recursively as
- <math>\operatorname{pf}(A) = \sum_{{j=1}\atop{j\neq i}}^{2n}(-1)^{i+j+1+\theta(i-j)}a_{ij}\operatorname{pf}(A_{\hat{\imath}\hat{\jmath}}),</math>
where the index i can be selected arbitrarily, <math>\theta(i-j)</math> is the Heaviside step function, and <math>A_{\hat{\imath}\hat{\jmath}}</math> denotes the matrix A with both the i-th and j-th rows and columns removed.<ref>{{#invoke:citation/CS1|citation |CitationClass=web }}</ref> Note how for the special choice <math>i=1</math> this reduces to the simpler expression:
- <math>\operatorname{pf}(A) = \sum_{j=2}^{2n}(-1)^{j}a_{1j}\operatorname{pf}(A_{\hat{1}\hat{\jmath}}).</math>
Alternative definitionsEdit
One can associate to any skew-symmetric 2n × 2n matrix Template:Nowrap a bivector
- <math>\omega = \sum_{i<j} a_{ij}\;e_i \wedge e_j ,</math>
where Template:Mset is the standard basis of R2n. The Pfaffian is then defined by the equation
- <math>\frac{1}{n!}\omega^n = \operatorname{pf}(A)\;e_1\wedge e_2\wedge\cdots\wedge e_{2n},</math>
here ωn denotes the wedge product of n copies of ω.
Equivalently, we can consider the bivector (which is more convenient when we do not want to impose the summation constraint <math>i < j</math>): <math display="block">\omega'=2 \omega = \sum_{i, j} a_{ij}\;e_i\wedge e_j,</math> which gives <math>\omega'^n = 2^n n! \operatorname{pf}(A)\;e_1\wedge e_2\wedge\cdots\wedge e_{2n}.</math>
A non-zero generalisation of the Pfaffian to odd-dimensional matrices is given in the work of de Bruijn on multiple integrals involving determinants.<ref>Template:Cite journal</ref> In particular for any m × m matrix A, we use the formal definition above but set <math>n = \lfloor m/2\rfloor</math>. For m odd, one can then show that this is equal to the usual Pfaffian of an (m+1) × (m+1)-dimensional skew symmetric matrix where we have added an (m+1)th column consisting of m elements 1, an (m+1)th row consisting of m elements −1, and the corner element is zero. The usual properties of Pfaffians, for example the relation to the determinant, then apply to this extended matrix.
Properties and identitiesEdit
Pfaffians have the following properties, which are similar to those of determinants.
- Multiplication of a row and a column by a constant is equivalent to multiplication of the Pfaffian by the same constant.
- Simultaneous interchange of two different rows and corresponding columns changes the sign of the Pfaffian.
- A multiple of a row and corresponding column added to another row and corresponding column does not change the value of the Pfaffian.
Using these properties, Pfaffians can be computed quickly, akin to the computation of determinants.
MiscellaneousEdit
For a 2n × 2n skew-symmetric matrix A
- <math>\operatorname{pf}(A^\text{T}) = (-1)^n\operatorname{pf}(A).</math>
- <math>\operatorname{pf}(\lambda A) = \lambda^n \operatorname{pf}(A).</math>
- <math>\operatorname{pf}(A)^2 = \det(A).</math>
For an arbitrary 2n × 2n matrix B,
- <math>\operatorname{pf}(BAB^\text{T})= \det(B)\operatorname{pf}(A).</math>
Substituting in this equation B = Am, one gets for all integer m
- <math>\operatorname{pf}(A^{2m+1})= (-1)^{nm}\operatorname{pf}(A)^{2m+1}.</math>
Derivative identitiesEdit
If A depends on some variable xi, then the gradient of a Pfaffian is given by
- <math>\frac{1}{\operatorname{pf}(A)}\frac{\partial\operatorname{pf}(A)}{\partial x_i}=\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}\right),</math>
and the Hessian of a Pfaffian is given by
- <math>\frac{1}{\operatorname{pf}(A)}\frac{\partial^2\operatorname{pf}(A)}{\partial x_i\partial x_j}=\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial^2 A}{\partial x_i\partial x_j}\right)-\frac{1}{2}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}A^{-1}\frac{\partial A}{\partial x_j}\right)+\frac{1}{4}\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_i}\right)\operatorname{tr}\left(A^{-1}\frac{\partial A}{\partial x_j}\right).</math>
The following formula applies even if the matrix <math>A</math> is singular for some values of the variable <math>x</math>:
- <math>
\frac{\partial}{\partial x_k}{\operatorname{pf}(A)}=\sum_{1\leq i<j\leq 2n}(-1)^{i+j+1}\frac{\partial A_{ij}}{\partial x_k} {\operatorname{pf}(A_{\hat{i}\hat{j}})},</math> where <math>A_{\hat{i}\hat{j}}</math> is the <math>(2n-2)\times (2n-2)</math> skew-symmetric matrix obtained from <math>A</math> by deleting rows and columns <math>(i,j)</math>.
Trace identitiesEdit
The product of the Pfaffians of skew-symmetric matrices A and B can be represented in the form of an exponential
- <math>\textrm{pf}(A)\,\textrm{pf}(B) = \exp(\tfrac{1}{2}\mathrm{tr}\log(A^\text{T}B)).</math>
Suppose A and B are 2n × 2n skew-symmetric matrices, then
- <math>\mathrm{pf}(A)\,\mathrm{pf}(B) = \tfrac{1}{n!} B_n(s_1, s_2, \ldots, s_n), \qquad \mathrm{where} \qquad s_l = - \tfrac{1}{2}(l - 1)!\,\mathrm{tr}((AB)^l)</math>
and Bn(s1,s2,...,sn) are Bell polynomials.
Block matricesEdit
For a block-diagonal matrix
- <math>A_1\oplus A_2=\begin{bmatrix} A_1 & 0 \\ 0 & A_2 \end{bmatrix},</math>
- <math>\operatorname{pf}(A_1\oplus A_2) =\operatorname{pf}(A_1)\operatorname{pf}(A_2).</math>
For an arbitrary n × n matrix M:
- <math>\operatorname{pf}\begin{bmatrix} 0 & M \\ -M^\text{T} & 0 \end{bmatrix} =
(-1)^{n(n-1)/2}\det M.</math>
It is often required to compute the Pfaffian of a skew-symmetric matrix <math>S</math> with the block structure
- <math>S = \begin{pmatrix} M & Q \\ -Q^\mathrm{T} & N \end{pmatrix}\,</math>
where <math>M</math> and <math>N</math> are skew-symmetric matrices and <math>Q</math> is a general rectangular matrix.
When <math>M</math> is invertible, one has
- <math>\operatorname{pf}(S) = \operatorname{pf}(M)\operatorname{pf}(N+ Q^\mathrm{T} M^{-1} Q).</math>
This can be seen from Aitken block-diagonalization formula,<ref>A. C. Aitken. Determinants and matrices. Oliver and Boyd, Edinburgh, fourth edition, 1939.</ref><ref> Zhang, Fuzhen, ed. The Schur complement and its applications. Vol. 4. Springer Science & Business Media, 2006.</ref><ref>Bunch, James R. "A note on the stable decomposition of skew-symmetric matrices." Mathematics of Computation 38.158 (1982): 475-479.</ref>
- <math>\begin{pmatrix}M& 0\\ 0 & N+Q^\mathrm{T} M^{-1} Q\end{pmatrix} = \begin{pmatrix}I& 0\\ Q^\mathrm{T} M^{-1} & I\end{pmatrix}\begin{pmatrix} M & Q\\ -Q^\mathrm{T} & N\end{pmatrix} \begin{pmatrix}I& -M^{-1} Q\\ 0 & I \end{pmatrix}.</math>
This decomposition involves a congruence transformations that allow to use the Pfaffian property <math>\operatorname{pf}(BAB^\mathrm{T}) = \operatorname{det}(B)\operatorname{pf}(A)</math>.
Similarly, when <math>N</math> is invertible, one has
- <math>\operatorname{pf}(S) =
\operatorname{pf}(N)\operatorname{pf}(M+ Q N^{-1} Q^\mathrm{T}),</math> as can be seen by employing the decomposition
- <math>\begin{pmatrix}M+Q N^{-1} Q^\mathrm{T}& 0\\ 0 & N\end{pmatrix} = \begin{pmatrix}I& -Q N^{-1}\\ 0 & I\end{pmatrix}\begin{pmatrix} M& Q\\ -Q^\mathrm{T} & N\end{pmatrix} \begin{pmatrix}I& 0\\ N^{-1} Q^\mathrm{T}& I \end{pmatrix}.</math>
Calculating the Pfaffian numericallyEdit
Suppose A is a 2n × 2n skew-symmetric matrices, then
- <math>\textrm{pf}(A) = i^{(n^2)} \exp\left(\tfrac{1}{2}\mathrm{tr}\log((\sigma_y\otimes I_n)^\mathrm{T}\cdot A)\right), </math>
where <math>\sigma_y</math> is the second Pauli matrix, <math>I_n</math> is an identity matrix of dimension n and we took the trace over a matrix logarithm.
This equality is based on the trace identity
- <math>\textrm{pf}(A)\,\textrm{pf}(B) = \exp\left(\tfrac{1}{2}\mathrm{tr}\log(A^\text{T}B)\right)</math>
and on the observation that <math>\textrm{pf}(\sigma_y\otimes I_n)=(-i)^{n^2}</math>.
Since calculating the logarithm of a matrix is a computationally demanding task, one can instead compute all eigenvalues of <math>((\sigma_y\otimes I_n)^\mathrm{T}\cdot A)</math>, take the log of all of these and sum them up. This procedure merely exploits the property <math>\operatorname{tr}{\log{(AB)}} = \operatorname{tr}{\log{(A)}} + \operatorname{tr}{\log{(B)}}</math>. This can be implemented in Mathematica with a single statement:
Pf[x_] := Module[{n = Dimensions[x]Template:Brackets / 2}, I^(n^2) Exp[ 1/2 Total[ Log[Eigenvalues[ Dot[Transpose[KroneckerProduct[PauliMatrix[2], IdentityMatrix[n]]], x] ]]]]]
However, this algorithm is unstable when the Pfaffian is large. The eigenvalues of <math>(\sigma_y\otimes I_n)^\mathrm{T}\cdot A</math> will generally be complex, and the logarithm of these complex eigenvalues are generally taken to be in <math>[-\pi, \pi]</math>. Under the summation, for a real valued Pfaffian, the argument of the exponential will be given in the form <math>x + k\pi/2</math> for some integer <math>k</math>. When <math>x</math> is very large, rounding errors in computing the resulting sign from the complex phase can lead to a non-zero imaginary component.
For other (more) efficient algorithms see Template:Harvnb.
ApplicationsEdit
- There exist programs for the numerical computation of the Pfaffian on various platforms (Python, Matlab, Mathematica) Template:Harv.
- The Pfaffian is an invariant polynomial of a skew-symmetric matrix under a proper orthogonal change of basis. As such, it is important in the theory of characteristic classes. In particular, it can be used to define the Euler class of a Riemannian manifold that is used in the generalized Gauss–Bonnet theorem.
- The number of perfect matchings in a planar graph is given by a Pfaffian, hence is polynomial time computable via the FKT algorithm. This is surprising given that for general graphs, the problem is very difficult (so called #P-complete). This result is used to calculate the number of domino tilings of a rectangle, the partition function of Ising models in physics, or of Markov random fields in machine learning (Template:Harvnb; Template:Harvnb), where the underlying graph is planar. It is also used to derive efficient algorithms for some otherwise seemingly intractable problems, including the efficient simulation of certain types of restricted quantum computation. See Holographic algorithm for more information.
See alsoEdit
NotesEdit
ReferencesEdit
- Template:Cite journal
- Template:Cite journal Reprinted in Collected mathematical papers, volume 2.
- Template:Cite journal
- Template:Cite arXiv
- Template:Cite book
- Template:Cite book
- Template:Cite journal
- Template:Cite journal
- Template:Cite book
- Template:Cite book Online
- Template:Cite journal
- Template:Cite journal
- Template:Cite journal
External linksEdit
- Template:Springer
- Pfaffian at PlanetMath.org
- T. Jones, The Pfaffian and the Wedge Product (a demonstration of the proof of the Pfaffian/determinant relationship)
- R. Kenyon and A. Okounkov, What is ... a dimer?
- Template:OEIS el
- W. Ledermann "A note on skew-symmetric determinants" https://www.researchgate.net/publication/231827602_A_note_on_skew-symmetric_determinants