Mathematica 9 is now available
Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2007
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2007

[Date Index] [Thread Index] [Author Index]

Search the Archive

all the possible minors of a matrix

  • To: mathgroup at smc.vnet.net
  • Subject: [mg73755] all the possible minors of a matrix
  • From: Mark Novak <mnovak at uchicago.edu>
  • Date: Tue, 27 Feb 2007 05:53:11 -0500 (EST)

Hello,

I'm trying to recode a 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 produce by removing 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 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 n-1 by n-1), 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

-- 


***************************************
Dept. of Ecology & Evolution
1101 E. 57th St., U. of Chicago
Chicago, IL 60637
Office/Lab: 773-702-4815
Fax: 773-702-9740
http://home.uchicago.edu/~mnovak/
***************************************



  • Prev by Date: Why is 1 smaller than 0?
  • Next by Date: Re: deleting a title or subtitle in a notebook
  • Previous by thread: Re: Why is 1 smaller than 0?
  • Next by thread: Re: all the possible minors of a matrix