Viktor -
Thank you for the code. I'll give it a try and let you know how it
works.
Dick
Viktor T. Toth wrote:
>For what it's worth, I don't think there's a built-in direct matrix product
>in Maxima, but you can easily define your own solution. For instance, I
>believe the following function will do what you expect:
>
>directprod(A,B):=([P],
> IF NOT (MATRIXP(A) AND MATRIXP(B)) THEN
> ERROR("Invalid arguments to DIRECTPROD()")
> ELSE
> (
> P:ZEROMATRIX(LENGTH(A)*LENGTH(A[1]),LENGTH(B)*LENGTH(B[1])),
> FOR i THRU LENGTH(A) DO
> FOR j THRU LENGTH(A[1]) DO
> FOR k THRU LENGTH(B) DO
> FOR l THRU LENGTH(B[1]) DO
>
>P[(i-1)*LENGTH(A[1])+j,(k-1)*LENGTH(B[1])+l]:A[i,j]*B[k,l],
> P
> )
>);
>
>An example:
>
>(%i1) A:MATRIX([a11,a12],[a21,a22]);
> [ a11 a12 ]
>(%o1) [ ]
> [ a21 a22 ]
>(%i2) B:MATRIX([b11,b12,b13,b14],[b21,b22,b23,b24],[b31,b32,b33,b34]);
> [ b11 b12 b13 b14 ]
> [ ]
>(%o2) [ b21 b22 b23 b24 ]
> [ ]
> [ b31 b32 b33 b34 ]
>(%i3) directprod(A,B);
> [ a11 b11 a11 b12 a11 b13 a11 b14 a11 b21 a11 b22 a11 b23 a11
>b24 a11 b31 a11 b32 a11 b33 a11 b34 ]
> [
>]
> [ a12 b11 a12 b12 a12 b13 a12 b14 a12 b21 a12 b22 a12 b23 a12
>b24 a12 b31 a12 b32 a12 b33 a12 b34 ]
>(%o3) [
>]
> [ a21 b11 a21 b12 a21 b13 a21 b14 a21 b21 a21 b22 a21 b23 a21
>b24 a21 b31 a21 b32 a21 b33 a21 b34 ]
> [
>]
> [ a22 b11 a22 b12 a22 b13 a22 b14 a22 b21 a22 b22 a22 b23 a22
>b24 a22 b31 a22 b32 a22 b33 a22 b34 ]
>
>
>Viktor
>
>
>
>
>-----Original Message-----
>From: maxima-admin@math.utexas.edu [mailto:maxima-admin at math] On
>Behalf Of richard n. fell
>Sent: Saturday, August 28, 2004 6:50 AM
>To: go_furuya@infoseek.jp
>Cc: maxima@math.utexas.edu
>Subject: Re: [Maxima] direct product
>
>Gosie -
> Thanks for your reply. Unfortunately, this is not the direct product.
>Dick Fell
>go_furuya@infoseek.jp wrote:
>
>
> hi
> That is posiible.
> for example
> (C1) load(diag);
> (D1) /usr/local/share/maxima/5.9.0/share/contrib/diag.mac
> (C2) diag([matrix([a0,a1],[a2,a3]),matrix([b1,b2],[b3,b4])]);
>
> [ a0 A1 0 0 ]
> [ ]
> [ A2 A3 0 0 ]
> (D2) [ ]
> [ 0 0 B1 B2 ]
> [ ]
> [ 0 0 b3 b4 ]
> diag(x),x is list of numbers,or list of matrix.
>
> Gosei Furuya
>
>
>
>
> Is there a maxima share package that computes the direct
>product of
> matrices? (I can not find any in my maxima).
> Thanks,
> Dick Fell
>
> --
> Richard N. Fell
> Martin Fisher School of Physics
> Brandeis University
> Waltham, Ma 02454
> fell@brandeis.edu
>
>
> _______________________________________________
> Maxima mailing list
> Maxima@www.math.utexas.edu
> http://www.math.utexas.edu/mailman/listinfo/maxima
>
>
>
>
>
>
>
>
>
>------------------------------------------------------------------------
> ?????????????????????? by infoseek
> http://ap.infoseek.co.jp/gr9.html
>
>
>
>
>
>
>
>
--
Richard N. Fell
Martin Fisher School of Physics
Brandeis University
Waltham, Ma 02454
fell@brandeis.edu