Robert Israel

6577 Reputation

21 Badges

18 years, 215 days
University of British Columbia
Associate Professor Emeritus
North York, Ontario, Canada

MaplePrimes Activity


These are replies submitted by Robert Israel

Here's a proof of my counterexample without using Maple. Suppose A and B are 2 x 2 matrices over R so that det(A) = det(B) = 0 and A B = M = x I. Let Adj be the classical adjoint operator, so Adj(Matrix([[a,b],[c,d]]))= Matrix([[d,-b],[-c,a]]). Note that Adj(A) A = det(A) I = 0 so Adj(A) x = Adj(A) A B = 0. This means that all matrix elements of Adj(A), and therefore of A, are multiples of x. Similarly from x Adj(B) = A B Adj(B) = 0 we see that all matrix elements of B are multiples of x. But that implies that A B = 0, contradiction. This proof relies heavily on the fact that the matrices are 2 x 2, so that Adj is a linear operator. I don't see how to get a counterexample in n x n matrices with n > 2. The most simpleminded generalization doesn't work: for n=4 the matrices A = Matrix([[x,0,0,0],[0,x,0,0],[0,0,1,0],[0,0,0,1]]) and B = Matrix([[1,0,0,0],[0,1,0,0],[0,0,x,0],[0,0,0,x]]) over R satisfy A B = x I with det(A) = det(B) = 0.
I hope I have this straight now. R is a commutative ring with identity, you have an n x n matrix M over R such that det(M) = rs where r and s are non-units in R, and you want to write M = AB where A and B are n x n matrices over R with det(A) = r and det(B) = s. I think I have a counterexample. Let R be the ring with identity generated by one indeterminate x with x^2 = 0, let M = Matrix([[x,0],[0,x]]), and take r=s=0. Let's try to find A and B using Maple. Start with two general 2x2 matrices over R. The coefficients e[i,j], f[i,j], g[i,j] and h[i,j] must be integers.
> with(LinearAlgebra):
  M:= DiagonalMatrix([x,x]);
  A:= Matrix(2,2,(i,j)->e[i,j]+f[i,j]*x); 
  B:= Matrix(2,2,(i,j) -> g[i,j]+h[i,j]*x);
To satisfy our requirements, the coefficients of x^0 and x^1 in the entries of A.B-M and in det(A) and det(B) must be 0.
> P:= A.B-M;
  L:= map(t -> (coeff(t,x,0),coeff(t,x,1)),
    [seq(seq(P[i,j],i=1..2),j=1..2), Determinant(A),   
      Determinant(B)]);
Use Groebner[Solve] to see if there is a solution to these equations.
> with(Groebner):
  Solve(L,indets(L));
{} So, if Maple is to be believed, there is no solution. There's probably a nicer proof than that.
The other method for labelling the axes is using the labels option in just about any plot command, e.g.
> plot(..., labels = ["p","q"]);
The other method for labelling the axes is using the labels option in just about any plot command, e.g.
> plot(..., labels = ["p","q"]);
Obviously, if your ring R has an identity, there is a square matrix with determinant A, namely a diagonal matrix with one A and all other diagonal entries 1. So I suppose your ring R doesn't have an identity. But then your result is not true, e.g. if R is the commutative ring over the integers generated by x (i.e. polynomials in x with integer coefficients and no constant term) take M = RTABLE(156754120,MATRIX([[x, 0], [0, x^2]]),Matrix). Its determinant is x^3 so we can take A = x, B = x^2. But the determinant of any 2 x 2 matrix over R is divisible by x^2.
Tools, Options..., Display. Set Input Display to Maple Notation, click Apply Globally, and your default input mode will be Maple Notation. If you ever do want 2D math mode, press Ctrl-R.
Tools, Options..., Display. Set Input Display to Maple Notation, click Apply Globally, and your default input mode will be Maple Notation. If you ever do want 2D math mode, press Ctrl-R.
Shift-Enter makes a new line without executing. As for "Units template", do you mean Tasks? Tools, Tasks, Browse... and click on "Units, Constants, and Errors".
Shift-Enter makes a new line without executing. As for "Units template", do you mean Tasks? Tools, Tasks, Browse... and click on "Units, Constants, and Errors".
... you could use 1D (Maple notation) mode.
... you could use 1D (Maple notation) mode.
Never mind the simplify, R(5,x) returns that error. The point is that HermiteH(5,x) is not literally a polynomial. You might try
> R:= (n,x) -> rem(expand(HermiteH(n,x), x^2-1, x);
It was not faster when I tried it. In Maple 11 Classic, mzp(20) took 29.625 seconds, m2p(20) took 49.469. What would be faster is to use the angle-bracket construction shortcut, like this:
> myp:= proc(p::posint)
    [seq( seq( seq( seq(< < i|j>,< k|l>>, 
        l=0..p-1), k=0..p-1), j=0..p-1), i=0..p-1)];
  end proc:
myp(20) took only 2.281 seconds.
It was not faster when I tried it. In Maple 11 Classic, mzp(20) took 29.625 seconds, m2p(20) took 49.469. What would be faster is to use the angle-bracket construction shortcut, like this:
> myp:= proc(p::posint)
    [seq( seq( seq( seq(< < i|j>,< k|l>>, 
        l=0..p-1), k=0..p-1), j=0..p-1), i=0..p-1)];
  end proc:
myp(20) took only 2.281 seconds.
Perhaps something like this?
> Zeroplus:= `#msub(mn("0"),mo("+"))`;
  Int(f(x), x=Zeroplus .. infinity);
And similarly, replacing plus with minus.
First 154 155 156 157 158 159 160 Last Page 156 of 187