Modify Mathematica code to output matrix products in descending order

  • Context: Mathematica 
  • Thread starter Thread starter kaizen.moto
  • Start date Start date
  • Tags Tags
    Code Mathematica
Join the discussion
Registration is free. Ask a follow-up in this thread, or start your own.
2 replies · 3K views
kaizen.moto
Messages
94
Reaction score
0
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
 
Physics news on Phys.org
You have to generate factors in reverse order. Just change arguments in Table command:

Code:
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}];
 
It works...Thank you so much.