Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
297 views
in Technique[技术] by (71.8m points)

python - Make tensor out of a vector and find contractions which gives scalar

Assume there is a random 3D vector (U). We can construct a tensor of rank K by following outer product

Tk = U @ U @ ... @ U [k times] 

Where @ represents outer or tensor product. Then we can combine different combinations of these tensors and contract them to provide a scalar.

For example,

T0 = 1     (scalar)
T1 = U     (tensor of rank 1 = vector)
T2 = U @ U (tensor of rank 2 = matrix)
T3 = U @ U @ U (tensor of rank 3)
...

Since T1 is a vector, we can dot product T1 with T1 and generate an scalar.

I want to generate all independent scalars which can be obtained by contraction of these tensors. For example:

T0
T1 . T1
T0 * T0
T1 . T1 * T0
T2 : T2
T2 : T2 * T0
...

I think the problem can be divided into 2 parts: 1) Finding set of tensors which can contract to scalar. 2) Find all contractions for a single set. The challenge is that there are many ways for contracting the tensors and not clear which ones are equivalent. We can make the problem finite by limiting number of tensors since we can always multiply by T0 and still have an scalar.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
等待大神答复

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...