Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Mathematica: Need help to modify the code

  1. Jun 6, 2012 #1
    Hi all,
    I need help to edit the code so that the arrangment of the outputs match the one that Iam looking for.

    For instance:
    term[n_Integer, m_Integer] :=
    Apply[Dot, Table[matg[], {i, m + 1, n}]].hl[[m]] /; (n >= m);
    Subscript[lay, s_] := Sum[term[s, i], {i, s}];

    In[1]: Subscript[lay,3]
    Out[1]: matg[[3]].hl[[2]] + matg[[2]].matg[[3]].hl[[1]] + hl[[3]]

    In[2]: Subscript[lay,4]
    Out[2]:matg[[4]].hl[[3]] + matg[[3]].matg[[4]].hl[[2]] +
    matg[[2]].matg[[3]].matg[[4]].hl[[1]] + hl[[4]]

    However, I need to get the right code of the above, so that the output that Iam looking will look like this,

    In[3]: Subscript[lay,3]
    Out[3]: matg[[3]].hl[[2]] + matg[[3]].matg[[2]].hl[[1]] + hl[[3]]

    In[4]: Subscript[lay,4]
    Out[4]: matg[[4]].hl[[3]] + matg[[4]].matg[[3]].hl[[2]] +
    matg[[4]].matg[[3]].matg[[2]].hl[[1]] + hl[[4]];


    As you can see the above pattern, I wish the output (the number in the bracket of matg) to be arranged in desecending order.

    Please help me to modify the above code and many thanks for any kind helps.

    Note: Please ignore the warnings given by the mathematica
     
  2. jcsd
  3. Jun 17, 2012 #2
    You have to generate factors in reverse order. Just change arguments in Table command:

    Code (Text):
    term[n_Integer,m_Integer]:=Apply[Dot,Table[matg[[i]],{i,n,m+1,-1}]].hl[[m]]/;(n>=m);
    Subscript[lay,s_]:=Sum[term[s,i],{i,s}];
     
  4. Jun 18, 2012 #3
    It works...Thank you so much.
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook




Similar Discussions: Mathematica: Need help to modify the code
  1. Mathematica code help (Replies: 24)

Loading...