Multinomial Expansion in Mathematica

In summary, the problem is that the right hand side of the equation is a summation over all possibilities, and the Expand function only outputs a single result.
  • #1
EngWiPy
1,368
61
Hello,

I have the following equation, which is simply the multinomial exapnsion:

[tex]\left[\sum_{l=1}^L\,x_l\right]^n=\sum_{k_1,k_2,\ldots,k_L}{n\choose k_1,k_2,\ldots,k_L}\prod_{l=1}^L\,x_l^{k_l}[/tex]

where the summation is taken over all possibilities that the summation of the nonnegative integer indices k1,k2,...,kL equal n.

How can I program this using Mathematica??

Thanks in advance
 
Physics news on Phys.org
  • #2
Any suggestion please? I am really need this. Any help will be greatly appreciated.
 
  • #3
It really isn't clear what you want to do.
 
  • #4
Hurkyl said:
It really isn't clear what you want to do.

Ok, first of all, thank you for replying. What I want to do is to write a function using Mathematica that computes the multinomial expansion, which is the right hand side equation in the first post. The difficulty as I see it, comes from the summation. For example:

[tex](x_1+x_2+x_3)^2=\underbrace{\sum_{k_1,k_2,k_3}{2\choose k_1,k_2,k_3}\prod_{n=1}^{3}x_n^{k_n}}_{\text{Multinomial Expansion}}[/tex]

where the summation in the right hand side takes place over all possibilities that [tex]k_1+k_2+k_3=2[/tex], and
[tex]\left(\begin{smallmatrix}2\\k_1,k_2,k_2\end{smallmatrix}\right)=\frac{2!}{k_1!\,k_2!\,k_3!}[/tex]

Doing that yields to the final result:

[tex](x_1+x_2+x_3)^2=x_1^2+x_2^2+x_3^2+2x_1x_2+2x_1x_3+2x_2x_3[/tex]


I hope that I explain the point.

Regards
 
  • #5
What's wrong with the Expand function?
 
  • #6
Hurkyl said:
What's wrong with the Expand function?

The problem is that, the multinomial I have looks like this:

[tex]\left[\sum_{n=1}^NA_n\,\tex{e}^{-\gamma/\gamma_n}\right]^m[/tex]

I want to exctract the exponentials and combine them with other exponentials and integrate them all over [tex]\gamma[/tex] to do my derivation for the performance metrics.
 
  • #7
So far I reached to this point:

Code:
x = 0;
For[k1 = 0, k1 <= 2, k1++,
 For[k2 = 0, k2 <= 2, k2++,
  For[k3 = 0, k3 <= 2, k3++,
   If[k1 + k2 + k3 == 2,
    x = x + Multinomial[k1, k2, k3]*x1^k1*x2^k2*x3^k3];
   If[k1 == 2 && k2 == 2 && k3 == 2, Print[x]]]]]

x1^2+2 x1 x2+x2^2+2 x1 x3+2 x2 x3+x3^2

But how can I write it in general form, when the number of terms and the exponent are variables?
 
  • #8
I'm still not sure why you think this will result in anything different than the expand function...


When the number of loops is variable, you essentially have to implement an odometer -- e.g. as a list whose n-th element is the value of the n-th variable. Then you have just one for loop that initializes / steps this odometer.


It might be easier, however, to construct the m-fold Cartesian product of the set {0, 1, ..., N} with itself. There is surely a builtin function to compute Cartesian products of lists, and it should be easy enough to use that to write a function that iterates it m times. But I don't have mathematica on my home computer to tell you what that function would be.

(The Cartesian product of A with B is the set AxB whose elements are all length-2 lists whose first element is from A and whose second element is from B)
 

FAQ: Multinomial Expansion in Mathematica

What is Multinomial Expansion in Mathematica?

Multinomial Expansion in Mathematica is a mathematical concept that allows for the expansion of expressions with multiple variables raised to different powers. It is an extension of the binomial expansion, which only applies to expressions with two variables.

How does Mathematica perform Multinomial Expansion?

Mathematica performs Multinomial Expansion using the function Expand. This function takes in an expression and expands it using the binomial coefficients for each variable. It also takes into account any simplifications that can be made based on the properties of multinomial coefficients.

Can Mathematica handle Multinomial Expansion with more than three variables?

Yes, Mathematica can handle Multinomial Expansion with any number of variables. It uses the same principles as the binomial expansion, but extends it to include more variables and terms.

What are some common applications of Multinomial Expansion?

Multinomial Expansion is commonly used in probability and statistics to calculate the probability of events with multiple outcomes. It is also used in combinatorics to count the number of ways to arrange objects with repeated elements.

Are there any limitations to using Multinomial Expansion in Mathematica?

While Mathematica can handle Multinomial Expansion with any number of variables, it may become computationally intensive for large numbers of variables or high powers. In these cases, it may be more efficient to use other methods for expansion, such as the binomial theorem or Pascal's triangle.

Similar threads

Back
Top