Take the 2-minute tour ×
Mathematica Stack Exchange is a question and answer site for users of Mathematica. It's 100% free, no registration required.

Assume we have the following Tensor objects: \begin{equation} F_{i}{}^{j}\;and\;S_{ij}{}^{k}, \end{equation} where the components of $F$ are known, and we would like to solve for the components of $S$ if they satisfy the following equation \begin{equation} F^{l}{}_{i}S_{jl}{}^{k}-F^{l}{}_{j}S_{il}{}^{k}=0. \end{equation} $l$ is summed over, all the indices run from 1 to 4, and $S$ is symmetric in the lower indices.

Can you please help in writing a Mathematica code for this.

My attempt:

First, suppose we know all the components of $F$, and they are given by \begin{equation} F= \begin{matrix} a & b & c & d\\ e & f & g & h \\ i & j & k & l \\ m & n & o & p \end{matrix} \end{equation}

Then I defined the components of $S$ by:

S[i_, j_, k_] := S[i, j, k]

The first term of the equation I defined it as:

SF[i_, j_, k_] := SF[i, j, k] = S[1, i, j].F[k, 1] +
                                V[2, i, j].F[k, 2] + 
                                V[3, i, j].F[k, 3] + 
                                V[4, i, j].F[k, 4];

As for the second term in the equation, I think it can be found using Transpose

FS[i, j, k] = Transpose[SF, {i, k}]

Then for example:

Solve[SF==FS,{S[i,j,k]},{i,4},{j,4},{k,4}]

is not working. I'm sure there is something wrong in my commands, but I can't figure out what it is. The functions $a$,$b$,$c$,... in the expression of $F$ are some complicated scalar functions of space coordinates.

share|improve this question
    
Hello, welcome to Mathematica.SE! Please consider registering your account so that any upvotes you get on this question are added to those you might get on future questions and answers. That way, over time you will be able to do more on the site (post graphics, edit things, etc). Another tip: after posting a question stay around for a little while, to answer questions raised by commenters. This will streamline the Q&A process considerably. –  belisarius Sep 20 '12 at 12:14
    
BTW ... Have you tried something? Do you have some approximate code? –  belisarius Sep 20 '12 at 12:15
    
@belisarius Thanks for your comments, I have a code that gives me $F$ which is an endomorphisms acting on the tangent space of some moduli space. I will update the questions with what I tried to do... –  Imagine Sep 20 '12 at 13:01
add comment

1 Answer

up vote 3 down vote accepted

Perhaps

f = RandomInteger[{-1, 1}, {4, 4}]; 
Solve[
 And @@ Join[
   Thread[Equal[Flatten[Table[
       Sum[f[[l, i]] s[j, l, k] - f[[l, j]] s[i, l, k], {l, 4}], 
   {i, 4}, {j, 4}, {k, 4}], 2], 0]], 
   Flatten@Table[s[i, j, k] == s[j, i, k], {i, 4}, {j, 4}, {k, 4}]]]
share|improve this answer
    
Thanks for your answer, Mathematica is running now your code. Hope it works. I logged in with my google account, does it mean I'm registered or I have sign up differently? (sorry for the silly question). –  Imagine Sep 20 '12 at 13:54
    
@user2348 You're already registered. Just go to your account panel (by clicking on user2348 at the top of this screen) and edit your name into something meaningful! –  belisarius Sep 20 '12 at 14:15
    
Is it possible to write the code in different way such that it takes less time. I've been running the program since yesterday and still waiting. I think its because my F entries are complicated function of space. Also If, say, we suppress the condition of S being symmetric in the lower indices, would that decrease the time cost? –  Imagine Sep 21 '12 at 14:57
    
@Imagine I would recommend the following: 1) Check if my answer works as you expect with a simple case. 2) Report that here 3) The optimization problem depends on your F entries, so if the above is working you should post another question with details about your F's and tag it as optimization. –  belisarius Sep 21 '12 at 15:04
add comment

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.