I know only some basics about mathematica. However I need to write down the following sum:


Where $\{m_k\}_N$ denotes partitions of $N$ i.e. $\sum_{k=1}^Nkm_k=N$. The argument in brackets [..] is the Hecke Operator, for now not that important. My problem is more that I do not know how to write the sum over partitions. The Hecke Operator I would then just insert and I think this would not be the most difficult part.

I know that usually I should write some code expressing my trials however I really have no idea how to handle the problem. Could someone please help me.

  • $\begingroup$ Could you explain, maybe with a simple by-hand example, how do you want to sum over partitions? As IntegerPartitions[4] gives a set of sets, so I don't fully understand. $\endgroup$ – corey979 Mar 27 '17 at 15:16
  • $\begingroup$ Sure: Take the example $N=3$. Then we have: $1\cdot 3=3 \Rightarrow m_1=3$, $1\cdot 1 + 1\cdot 2 = 3 \Rightarrow m_1=1, m_2=1$, $3\cdot 1=3 \Rightarrow m_3=1$. Thus the above sum up to prefactors is: $(T_1Z(\tau))^3 + T_1Z(\tau)T_2Z(\tau) + T_3Z(\tau)$. $\endgroup$ – user404302 Mar 27 '17 at 15:23
  • $\begingroup$ This is not exactly what IntegerPartitions does. $\endgroup$ – user404302 Mar 27 '17 at 15:24
  • 1
    $\begingroup$ Look up FrobeniusSolve[]. $\endgroup$ – J. M.'s torpor Mar 27 '17 at 16:05

Tally transforms IntegerPartitions into what you need:

Total[Times @@@ Map[Last[#]^-1 T[First[#], Z[\[Tau]]]^Last[#] &,
                     Tally /@ IntegerPartitions[3], {2}], {1, 2}]
  • $\begingroup$ This is my outcome: $T[1, Z[\[Tau]]] + T[1, Z[\[Tau]]]^3 + T[2, Z[\[Tau]]] + T[3, Z[\[Tau]]]$. It is not exactly what I want. But I think I get what you mean. $\endgroup$ – user404302 Mar 27 '17 at 16:43
  • $\begingroup$ or actually I do not get it, could you please explain your code? $\endgroup$ – user404302 Mar 27 '17 at 16:49
  • $\begingroup$ what is the meaning of the $\{1,2\}$ at the end? $\endgroup$ – user404302 Mar 27 '17 at 16:57
  • $\begingroup$ @user404302 I edited so that numbers from same partition are multiplied, and added the division by $m_k$. Total[#,{1,2}]& sums the numbers of a matrix or non-rectangular 2d array (as in this case) $\endgroup$ – Coolwater Mar 27 '17 at 17:25
  • $\begingroup$ So now I get it, thank you $\endgroup$ – user404302 Mar 27 '17 at 18:01

As I noted in the comments, using FrobeniusSolve[] in Sum[] is the most convenient way to implement the sum:

With[{n = 3}, 
     Sum[Product[If[m[[k]] != 0, tz[k]^m[[k]]/m[[k]], 1], {k, Length[m]}],
         {m, FrobeniusSolve[Range[n], n]}]]
   tz[1]^3/3 + tz[1] tz[2] + tz[3]

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.