direct product



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