# Pfaffian

Not to be confused with Pfaffian function or Pfaffian system.

In mathematics, the determinant of a skew-symmetric matrix can always be written as the square of a polynomial in the matrix entries. This polynomial is called the Pfaffian of the matrix. The term Pfaffian was introduced by Cayley (1852) who named them after Johann Friedrich Pfaff. The Pfaffian is nonvanishing only for 2n × 2n skew-symmetric matrices, in which case it is a polynomial of degree n.

Explicitly, for a skew-symmetric matrix A,

$\operatorname{pf}(A)^2=\det(A),$

which was first proved by Thomas Muir in 1882 (Muir 1882).[dubious ]

The fact that the determinant of any skew symmetric matrix is the square of a polynomial can be shown by writing the matrix as a block matrix, then using induction and examining the Schur complement, which is skew symmetric as well. [1]

## Examples

$A=\begin{bmatrix} 0 & a \\ -a & 0 \end{bmatrix}.\qquad\operatorname{pf}(A)=a.$
$B=\begin{bmatrix} 0 & a & b \\ -a & 0 & c \\ -b & -c & 0 \end{bmatrix}.\qquad\operatorname{pf}(B)=0.$

(3 is odd, so Pfaffian of B is 0)

$\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.$

The Pfaffian of a 2n × 2n skew-symmetric tridiagonal matrix is given as

$\operatorname{pf}\begin{bmatrix} 0 & a_1 & 0 & 0\\ -a_1 & 0 & b_1 & 0\\ 0 & -b_1 &0 & a_2 \\ 0 & 0 & -a_2 &\ddots&\ddots\\ &&&\ddots&&b_{n-1}\\ &&&&-b_{n-1}&0&a_n\\ &&&&&-a_n&0 \end{bmatrix} = a_1 a_2\cdots a_n.$

(Note that any skew-symmetric matrix can be reduced to this form with all $b_i$ equal to zero, see Spectral theory of a skew-symmetric matrix)

## Formal definition

Let A = {ai,j} be a 2n × 2n skew-symmetric matrix. The Pfaffian of A is defined by the equation

$\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)}$

where S2n is the symmetric group 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 {1, 2, …, 2n} into pairs without regard to order. There are (2n − 1)!! such partitions. An element α ∈ Π can be written as

$\alpha=\{(i_1,j_1),(i_2,j_2),\cdots,(i_n,j_n)\}$

with ik < jk and $i_1 < i_2 < \cdots < i_n$. Let

$\pi=\begin{bmatrix} 1 & 2 & 3 & 4 & \cdots & 2n \\ i_1 & j_1 & i_2 & j_2 & \cdots & j_{n} \end{bmatrix}$

be the corresponding permutation. Given a partition α as above, define

$A_\alpha =\operatorname{sgn}(\pi)a_{i_1,j_1}a_{i_2,j_2}\cdots a_{i_n,j_n}.$

The Pfaffian of A is then given by

$\operatorname{pf}(A)=\sum_{\alpha\in\Pi} A_\alpha.$

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, $\det\,A = \det\,A^\text{T} = \det\left(-A\right) = (-1)^n \det\,A$, and for n odd, this implies $\det\,A = 0$.

### Recursive definition

By convention, the Pfaffian of the 0×0 matrix is equal to one. The Pfaffian of a skew-symmetric 2n×2n matrix A with n>0 can be computed recursively as

$\operatorname{pf}(A)=\sum_{{j=1}\atop{j\neq i}}^{2n}(-1)^{i+j+1+\theta(i-j)}a_{ij}\operatorname{pf}(A_{\hat{i}\hat{j}}),$

where index i can be selected arbitrarily, $\theta(i-j)$ is the Heaviside step function, and $A_{\hat{i}\hat{j}}$ denotes the matrix A with both the i-th and j-th rows and columns removed.[2] Note how for the special choice $i=1$ this reduces to the simpler expression:

$\operatorname{pf}(A)=\sum_{j=2}^{2n}(-1)^{j}a_{1j}\operatorname{pf}(A_{\hat{1}\hat{j}}).$

### Alternative definitions

• One can associate to any skew-symmetric 2n×2n matrix A ={aij} a bivector
$\omega=\sum_{i

where {e1, e2, …, e2n} is the standard basis of R2n. The Pfaffian is then defined by the equation

$\frac{1}{n!}\omega^n = \operatorname{pf}(A)\;e^1\wedge e^2\wedge\cdots\wedge e^{2n},$

here ωn denotes the wedge product of n copies of ω.

## Identities

For a 2n × 2n skew-symmetric matrix A

$\operatorname{pf}(A^\text{T}) = (-1)^n\operatorname{pf}(A).$
$\operatorname{pf}(\lambda A) = \lambda^n \operatorname{pf}(A).$
$\operatorname{pf}(A)^2 = \det(A).$

For an arbitrary 2n × 2n matrix B,

$\operatorname{pf}(BAB^\text{T})= \det(B)\operatorname{pf}(A).$

Substituting in this equation B = Am, one gets for all integer m

$\operatorname{pf}(A^{2m+1})= (-1)^{nm}\operatorname{pf}(A)^{2m+1}.$

For a block-diagonal matrix

$A_1\oplus A_2=\begin{bmatrix} A_1 & 0 \\ 0 & A_2 \end{bmatrix},$
$\operatorname{pf}(A_1\oplus A_2) =\operatorname{pf}(A_1)\operatorname{pf}(A_2).$

For an arbitrary n × n matrix M:

$\operatorname{pf}\begin{bmatrix} 0 & M \\ -M^\text{T} & 0 \end{bmatrix} = (-1)^{n(n-1)/2}\det M.$

If A depends on some variable xi, then the gradient of a Pfaffian is given by

$\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),$

and the Hessian of a Pfaffian is given by

$\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).$

## Properties

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 Pfaffian by the same constant.
• Simultaneous interchange of two different rows and corresponding columns changes the sign of Pfaffian.
• A multiple of a row and corresponding column added to another row and corresponding column does not change the value of Pfaffian.

These properties can be derived from the identity $\operatorname{pf}(BAB^\text{T})=\det(B)\operatorname{pf}(A)$.

## Applications

• There exist programs for the numerical computation of the Pfaffian on various platforms (Python, Matlab, Mathematica) (Wimmer 2012).