This is an archive of past discussions about Tensor product. Do not edit the contents of this page. If you wish to start a new discussion or revive an old one, please do so on the current talk page. |
Archive 1 | Archive 2 |
Ack! Too hard!!! My brain hurts! Can someone rewrite this so that a mere physicist like myself can understand it? -- Tim Starling 04:15 Mar 4, 2003 (UTC)
hmm... there seems to be a section under matrix multiplication on Kronecker product/direct product, which is the same thing as tensor product as far as i know, with a slightly different definition.(the rank is neglected) I know that my definition is correct. (the rank is relevant). The question is, how do we remedy this duplicity? Kevin Baas 2003.03.14
How's that for a start? See people, like this. Why are mathematicians bad prose writers? Sigh... I don't mean to invade on this. It just needs to be written clearly. Kevin Baas 2003.03.14
The statement about the rank can't be possibly true:
or still worse:
Also, I think the example should be given as a tensor product of matrices from which the vector case can be derived easily. -- looxix 14:12 Mar 15, 2003 (UTC)
---
Maybe a tensor with 1 dimension has undefined rank? this is no disproof. i have very authoritave sources that verify the fact that the ranks are summed by a tensor product. can you tell me whether [0] has rank 1 or 2, or even 7? it's a 1x1x1x1x1x1.... tensor. But isn't 1 also ?
The 'rank' of a tensor is actually not defined by the columns, rows, ect., but by an equation such as:
where the rank of such T is 2 because it has order 2, regardless of how many 's or 's there are.
kevin -2003.03.15
This "matrix direct product" is also called a "Kronecker product". Michael Hardy 01:22 Mar 16, 2003 (UTC)
The way it is defined in matrix multiplication, there is a slight difference between the matrix direct product/kronecker product and the tensor product, namely regarding the rank as previously discussed.
looxix's idea above, at least the one with the matrix, may be a good idea. what i'm most concerned about is visualization. i don't want just a simple formula that means nothing. ofcourse, they should know the formula and be able to work with it fluently, but they should be able to forget it, and then reconstruct it from the visualization. The general formula seems like it would be a bit confusing to someone not comfortable with tensor calculus. it is important and should be on the page, but i think the visualization should take higher priority.
In any case, Tensor-classical has rewrite suggestions in the talk. I think this should be carried through with first, as it is the groundwork/pinnacle of the related pages.
Kevin Baas -2003.03.15
In the sentence "Universal property of tensor product: The space of all multilinear maps from V xW to R is naturally isomorphic to the space of all linear maps from V ⊗W to R"...can naturally be removed? Kingturtle 05:15 May 5, 2003 (UTC)
I've added something about the need to complete with tensor products of Hilbert spaces - but this is tentative since it isn't really one of my strong fields.
Charles Matthews 15:45, 1 Mar 2004 (UTC)
I'm just a computer projrammer, not a mathematician. Will someone please tell me how to compute the values
Do S and T have to be of the same order? Ie, if can vary between 1 and 3 (0 and 2 for us programmers), does that mean that etc must be the same?
So we are saying that
Right? Does this mean that ordinary matrix multiplication is not the same as the tensor product of two square matrixes?
If a, b, and c, are rank-one tensors (i.e. one-dimensional arrays), with indices i,j,k, respectively, then the tensor product of them is a rank-three tensor(i.e. three-dimensional array):
for( int i = 0; i < i_dim; i++) for( int j = 0; j < j_dim; j++) for( int k = 0; k < k_dim; k++) result[i][j][k] = a[i]*b[j]*c[k];
If a is a rank-two tensor and b is a rank-one tensor, with indices i & j, and k, respectively, then the tensor product of them is a rank-three tensor:
for( int i = 0; i < i_dim; i++) for( int j = 0; j < j_dim; j++) for( int k = 0; k < k_dim; k++) result[i][j][k] = a[i][j]*b[k];
Kevin Baas 20:16, 19 May 2004 (UTC)
The upper and the lower indices operate like Einstein summation: when the same term shows up on top and on bottom, that term can be dropped out via an inner product. For example, aki bjk =
for( int i = 0; i < i_dim; i++) for( int j = 0; j < j_dim; j++) { result[i][j] = 0; for( int k = 0; k < k_dim; k++) result[i][j] += a[i][k]*b[j][k]; }
However, one might have to take into account curvature. In riemannian geometry, this might be done with a metric. Kevin Baas 20:50, 19 May 2004 (UTC)
No curvature involved. Charles Matthews 21:41, 19 May 2004 (UTC)
Would anyone object to me putting the above explanation of tensor product for a programmer into the article? Seeing that a computer i.e. turing machine, theoretically, is the embodiment of all possible mathematical structures in Principia Mathematica, I would say it's quite a precise mechanism of description. Also, it's a concise way to be perfectly clear and precise to anyone familiar with programming: they read the code once and say "I get it!". Would anyone object to me making a small section called something like "Tensors in computer programming", wherein would be the above two code snippets? Kevin Baas 21:52, 2004 Jun 21 (UTC)