Determinant Operator

From NARS2000
Revision as of 00:48, 22 October 2013 by WikiSysop (talk | contribs) (Created page with "<table border="1" cellpadding="5" cellspacing="0" rules="none" summary=""> <tr> <td> <table border="0" cellpadding="5" cellspacing="0" summary=""> <tr> <td val...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
Z←f.g R returns the generalized determinant of R.
R is a numeric scalar, vector, or matrix.
f and g are functions.

The determinant of a matrix is a value associated with it whose interpretation depends upon the purpose of the matrix. For example, where the matrix represents the coefficients in a system of linear equations, a non-zero determinant indicates that the system has a unique solution, and a zero determinant indicates that the system has either no solutions or many solutions. For the original source document that introduced this operator, see Determinant-Like Functions Produced by the Dot Operator.

There are many formulas that many be used to calculate the value of the determinant, one of which (from Wikipedia, due to Leibniz) is particularly suited to our purposes:


for an n×n matrix, where sgn is the sign function of permutations in the permutation group Sn, which returns +1 and −1 for even and odd permutations, respectively. The latter sum of positive or negative quantities is actually an alternating sum (-/ in APL) and the righthand part is a product of terms (× in APL), hence this formula may be described as an alternating sum of products. This means that the usual determinant of a matrix is obtained via -.×. Moreover, the permanent of a matrix uses +.×.

For example,

      ⎕←a←?4 4⍴10
1 8 1 8
5 1 7 2
6 3 9 4
4 9 8 8

The Leibniz formula also allows us to substitute other functions for (-) and (×) to obtain alternate derived functions.

One such alternate form is ⌊.+ which finds the lowest cost assignment of people (rows) to tasks (columns) where each person is assigned one and only one task. For example,


This result means that there is a minimal assignment of choices of an entry from each column and each row that sums to 10, a result easily seen using another pair of functions to display the actual choices:

      {(+/⍺)<+/⍵:⍺ ⋄ ⍵}.,a
4 3 1 2

That is, the minimal set of choices is the 4 in column 1, the 3 in column 2, the 1 in column 3, and the 2 in column 4.