Symbolic pseudo-inverse



This seems to work nicely except for one very big problem: it does not check
for expression zero equivalence except syntactically.  See below for an
example.

              -s

(%i1) mm: matrix([2*sin(x),sin(2*x)],[1,cos(x)]);

(%o1) matrix([2*sin(x),sin(2*x)],[1,cos(x)])

(%i2) moore_penrose_pseudoinverse(mm);

(%o2) matrix([-cos(x)/(sin(2*x)-2*cos(x)*sin(x)),
              sin(2*x)/(sin(2*x)-2*cos(x)*sin(x))],
             [1/(sin(2*x)-2*cos(x)*sin(x)),
              -2*sin(x)/(sin(2*x)-2*cos(x)*sin(x))])

(%i3) trigexpand(%);
Division by 0                                   <<<<<<<<<<<<<<<<< oops!
 -- an error.  To debug this try debugmode(true);

(%i4) moore_penrose_pseudoinverse(trigexpand(mm));

(%o4) matrix([2*sin(x)/((4*cos(x)^2+4)*sin(x)^2+cos(x)^2+1),
              1/((4*cos(x)^2+4)*sin(x)^2+cos(x)^2+1)],
             [2*cos(x)*sin(x)/((4*cos(x)^2+4)*sin(x)^2+cos(x)^2+1),
              cos(x)/((4*cos(x)^2+4)*sin(x)^2+cos(x)^2+1)])



On Mon, Aug 24, 2009 at 2:19 PM, Barton Willis <willisb at unk.edu> wrote:

> Try this and let me know how poorly / well it works:
>
> (%i50) load(linearalgebra)$
>
> (%i53) moore_penrose_pseudoinverse(matrix([a,b],[2*a,2*b]));
> (%o53)
>
> matrix([a/(5*b^2+5*a^2),(2*a)/(5*b^2+5*a^2)],[b/(5*b^2+5*a^2),(2*b)/(5*b^2+5*a^2)])
>
>
> (1) Unlike most functions in linearalgebra, moore_penrose_pseudoinverse
> doesn't autoload;
> assuming that moore_penrose_pseudoinverse is at least useable, that's a
> bug.
>
> (2) There is no user documentation for moore_penrose_pseudoinverse; and
> that's a bug too.
>
> Barton
>
> maxima-bounces at math.utexas.edu wrote on 08/24/2009 11:51:17 AM:
>
>
> >
> > Does anyone know if there is some implementation for calculating a
> > pseudo inverse in Maxima? I've found this link - "http://
> > www.math.utexas.edu/pipermail/maxima/2007/008247.html" - but it
> > seems that the implementation is not exactly for Maxima and it only
> > handle numerical matrices...
>
> _______________________________________________
> Maxima mailing list
> Maxima at math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>