Author 
Comment/Response 
Mark Novak

02/26/07 2:01pm
Hello,
I'm trying to recode a Maple script into Mathematica and am stuck.
My problem in short:
I need to calculate all minors of a matrix, but can't figure out a way to get Mathematica to do more than just a specifically assigned minor at a time (e.g., the minor of column = 1, row = 1).
My problem in long version:
(I've posted an explanation with example matrices and links to the code I have written at http://home.uchicago.edu/~mnovak/mathematicahelp.html)
The original line in Maple is T:=matrix(n,n,(i,j)>permanent(minor(abs(A),j,i))):evalm(T);
So, given a matrix A of dimensions n by n, determine the n x n different minors of the A matrix (each minor being of size n1 by n1), then calculate the permanent of each of these minors, and put the resultant single value into the relevant position of an n by n matrix. That is, the permanent of the minor produced by removing the ith row and jth column goes into position (i,j).
First we need to define how we want the Minor of a matrix to be calculated (Mathematica's "Minors" function does it in a way that we don't want.) Second, Mathematica doesn't have a function for calculating a matrix's permanent, so we need to define that function. (Both of these I got from searching the the Mathgroup forum.)
Minor[m_List?MatrixQ, {i_Integer, j_Integer}]:=Abs[Drop[Transpose[A],{j}]],{i}]]
Permanent[m_List]:=With[{v=Array[x,Length[m]]},Coefficient[Times@@(m.v),Times@@v]]
Then the following does work....
Minor[Abs[A],{1,3}]//MatrixForm
Permanent[Minor[Abs[A],{i,j}]]/.{i>1,j>1}
But the problem is that while I can do each of the Minor and Permanent calculations for specified rows i & columns j of the matrix, I can't figure out how to do all n x n possible combinations of i and j.
Any suggestions would be much appreciated.
Thanks!
mark
URL: http://home.uchicago.edu/~mnovak/mathematicahelp.html, 
