3
$\begingroup$

Is there a simple way to rewrite a rectangular $m \times n$ matrix in terms of its maximal minors?

For a few small cases, $(m,n)$ = $(2,3),(2,4),(3,4)$ I can brute force by explicitly solving:

m = 2; n = 3;
mat = Array[c, {m, n}];
subs = Subsets[Range[n], {m}]
dets = det[Sequence @@ #] - Det[Transpose[mat][[#]]] & /@ subs;
nzs = det[Sequence @@ #] != 0 & /@ subs;
eqns = And[And @@ (# == 0 & /@ dets), And @@ nzs];
red = Reduce[eqns, Flatten[mat]];
final = mat //. {ToRules[red]}[[1]] // Together;
Simplify[Minors[final, m]]

In the (2,3) case:

Minors[final, m]
(* {{det[1, 2], det[1, 3], det[2, 3]}} *)

In the (3,4) case:

Minors[final, m]
(* {{det[1, 2, 3], det[1, 2, 4], det[1, 3, 4], det[2, 3, 4]}} *)

In the (2,4) case:

Minors[final, m]
(* {{(-det[1, 4] det[2, 3] + det[1, 3] det[2, 4])/det[3, 4], det[1, 3], det[1, 4], det[2, 3], det[2, 4], det[3, 4]}} *)

In this last case the weird first entry is secretly det[1,2] as expected:

Simplify[Minors[final, m][[1, 1]] //. det[i_, j_] :> Det[Transpose[mat][[{i, j}]]]]
(*-c[1, 2] c[2, 1] + c[1, 1] c[2, 2]*)

I don't mind that det[1,2] doesn't show up explicitly, I just want the matrix rexpressed in terms of as many det[_,_]'s as necessary.

Using Reduce quickly becomes intractable. I'm looking for an answer that can easily get up to $m \sim 5$, $n \sim 10$.

Edit

I'm not wedded to using Reduce or explicitly solving. I toyed around with the ideas of:

1) Trying to match each element of the matrix to an explicit determinant.

2) Using PolynomialReduce to write c[_,_]'s in terms of the explicit determinants, but the problem isn't quite amenable to that since the c[_,_]'s would necessarily be rational in det[_,_]'s unfixed c[_,_]'s.

$\endgroup$
6
  • $\begingroup$ At the very least, you're computing Subsets[Range[n], {m}] twice. $\endgroup$ Nov 10, 2017 at 4:03
  • $\begingroup$ Noted and corrected. That's not the bottleneck though, Reduce is. $\endgroup$ Nov 10, 2017 at 4:23
  • $\begingroup$ Yes, hence "at the very least". Reduce[] is indeed the bigger problem here. $\endgroup$ Nov 10, 2017 at 4:29
  • $\begingroup$ What would that be good for? $\endgroup$ Nov 10, 2017 at 7:37
  • $\begingroup$ If there is another dMat=Array[d,{m,n}], I want to express the $2m \times 2m$ maximal minors of cdMAt=Join[mat,dMat] in terms of the minors of mat. $\endgroup$ Nov 10, 2017 at 14:28

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.