One missing maxima feature, that I have the math behind, but not a program



Two more examples:

(%i14) m : matrix([5,7,1],[9,11,7],[5,7,8])$

OK, but suboptimal (linsolve detects under determined equations)

(%i23) matrix_power(m,1);
solve: dependent equations eliminated: (3)
(%o23) matrix([-5*(4*%r5-1)+(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+7,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+1],[(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+9,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+11,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+7],[-5*(4*%r5-1)+(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5-20*%r5+7,(sqrt(2)*sqrt(3)*sqrt(19)+10)*%r5+(10-sqrt(2)*sqrt(3)*sqrt(19))*%r5+4*(2-5*%r5)])

(%i24) ratsimp(%);
(%o24) matrix([5,7,1],[9,11,7],[5,7,8])

Likely completely bogus:

(%i30) ratsimp(matrix_power(m,1/2). matrix_power(m,1/2));
solve: dependent equations eliminated: (3)
solve: dependent equations eliminated: (3)
 << Expression too long to display! >>

OK:

(%i31) ratsimp(matrixfun(lambda([x], sqrt(x)), m) . matrixfun(lambda([x], sqrt(x)), m));
(%o31) matrix([5,7,1],[9,11,7],[5,7,8])



--Barton


________________________________
From: maxima-bounces at math.utexas.edu <maxima-bounces at math.utexas.edu> on behalf of Barton Willis <willisb at unk.edu>
Sent: Saturday, December 21, 2013 07:21
To: Mike Valenzuela
Cc: maxima at math.utexas.edu
Subject: Re: [Maxima] One missing maxima feature, that I have the math behind, but not a program


Examples:


(%i2) m : matrix([5,7],[9,11])$


Suboptimal?


    (%i3) matrix_power(m,0);
      expt: undefined: 0^0

      0: matrix_power(a=matrix([5,7],[9,11]),t=0)(mp.mac line 35)


For the 0-th power, matrixfun gives the identity:

   (%i4) matrixfun(lambda([x], x^0), m);
   (%o4) matrix([1,0],[0,1])


For an inverse, matrix_power returns a scalar


   (%i5) matrix_power(m,-1);
   (%o5) B_[2]/(3*2^(3/2)+8)+B_[1]/(8-3*2^(3/2))


   (%i6) matrixfun(lambda([x], x^-1), m);
    (%o6) matrix([-11/8,7/8],[9/8,-5/8])


    (%i9) m : matrix([a,b],[b,c]);
    (%o9) matrix([a,b],[b,c])


Symbolic matrices:


    (%i18) m : matrix([a,b],[b,c]);
    (%o18) matrix([a,b],[b,c])


    (%i19) matrix_power(m,2);
    (%o19) (B_[2]*(sqrt(c^2-2*a*c+4*b^2+a^2)+c+a)^2)/4+(B_[1]*(sqrt(c^2-2*a*c+4*b^2+a^2)-c-a)^2)/4



    (%i20) matrixfun(lambda([x],x^2),m);
    Proviso: assuming c^2-2*a*c+4*b^2+a^2 # 0
    (%o20) matrix([b^2+a^2,b*c+a*b],[b*c+a*b,c^2+b^2])


--Barton (author of matrixfun)


________________________________