Drexel dragonThe Math ForumDonate to the Math Forum



Search All of the Math Forum:

Views expressed in these public forums are not endorsed by Drexel University or The Math Forum.


Math Forum » Discussions » Software » comp.soft-sys.matlab

Topic: Special matrix multiplication
Replies: 18   Last Post: Mar 22, 2012 5:12 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Milos Milenkovic

Posts: 149
Registered: 4/4/09
Special matrix multiplication
Posted: Mar 15, 2012 12:10 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

Dear all,
Recently I had a problem like this
suppose that we have two matrices, where each element has three values like follows:
>
> A=[(a1,b1,c1), (a2,b2,c2); (a3,b3,c3), (a4,b4,c4)]
> B=[(d1,e1,f1), (d2,e2,f2); (d3,e3,f3), (d4,e4,f4)]
>
> Now, I have to multiply these two matrices, and that is matrix C=A*B
>
> C=[ c11=(a1,b1,c1)*(d1,e1,f1)+(a2,b2,c2)*(d3,e3,f3), c12=(a1,b1,c1)*(d2,e2,f2)+(a2,b2,c2)*(d4,e4,f4); c21=(a3,b3,c3)*(d1,e1,f1)+(a4,b4,c4)*(d3,e3,f3), c22=(a3,b3,c3)*(d2,e2,f2)+(a4,b4,c4)*(d4,e4,f4)]
>
> where the most important here is the low for multiplying these three-value numbers is:
>
> (ai,bi,ci)*(di,ei,fi) = (bi*di+ei*(ai-bi), bi*ei , ei*ci+bi(fi-ei))


and we (Roger S.) solved it as follows:
A1 = A(:,1:3:n); A2 = A(:,2:3:n); A3 = A(:,3:3:n);
B1 = B(:,1:3:n); B2 = B(:,2:3:n); B3 = B(:,3:3:n);
C1 = A2*B1+(A1-A2)*B2; C2 = A2*B2; C3 = A3*B2+A2*(B3-B2);
C(:,3:3:end) = C3; C(:,2:3:end) = C2; C(:,1:3:end) = C1;

This is ok, but now I have to make this multiplication with respect to sign of these (ai,bi,ci) numbers, so if (ai,bi,ci) and (di,ei,fi) are >0 (they are >0, if bi and ei >0) then the upper solution is ok,
but when bi or ei is <0 than I have to apply next rule:
(ai,bi,ci)*(di,ei,fi) = (ei*ai+bi*(fi-ei), bi*ei , ei*ci+bi(di-ei))
Or, if (ai,bi,ci) and (di,ei,fi) are both <0 (they are <0, if bi and ei <0)
(ai,bi,ci)*(di,ei,fi) = (ei*ci+bi*(fi-ei), bi*ei , ei*ai+bi(di-ei))
So now, first I have to check if bi and ei are > or < and then to apply an appropriate rule for multiplying.
Any idea how to solve this?
Example:
A=[2 3 4 5 6 7; -3 -2 -1 3 4 5]
B=[0 2 4 -4 -3 -2; -6 -4 -3 4 7 8]
C=A*B
C=[c11=(2 3 4)*(0 2 4)+(5 6 7)*(-6 -4 -3) c12=(2 3 4)*(-4 -3 -2)+(5 6 7)*(4 7 8); c21=(-3 -2 -1)*(-4 -3 -2)+(3 4 5)*(4 7 8) c22=?.]
Best,
Milos



Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© Drexel University 1994-2014. All Rights Reserved.
The Math Forum is a research and educational enterprise of the Drexel University School of Education.