Take the 2-minute tour ×
Mathematics Stack Exchange is a question and answer site for people studying math at any level and professionals in related fields. It's 100% free, no registration required.

I have two tensors that i must calculate double dot product. matrix A is rank 2 and matrix B is rank 4. I want to multiply them with Matlab and I know in Matlab it becomes: A : B = trace (A*B) but it has one error and it says: Inner matrix dimensions must agree So how can I solve this problem? anybody help me? Thanks

share|improve this question
    
What size are A and B? –  anorton Jul 2 '13 at 15:46
    
A is 3*3 and B is 6*6 –  Sara sky Jul 2 '13 at 19:18

1 Answer 1

I think you can only calculate this explictly if you have dyadic- and polyadic-product forms of your two tensors, i.e., A = a b and B = c d e f, where a, b, c, d, e, f are vectors. Beware that there are two definitions for double dot product, even for matrices both of rank 2: (a b) : (c d) = (a.c) (b.d) or (a.d) (b.c), where "." is the usual single-dot scalar product for vectors. One possible answer would thus be (a.c) (b.d) (e f); another would be (a.d) (b.c) (e f), i.e., a matrix of rank 2 in any case. Of course A:B $\not =$ B:A in general, if A and B do not have same rank, so be careful in which order you wish to double-dot them as well.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.