# Stupid question about multinomial theorem (and Matlab)

• MATLAB
AiRAVATA
I know that there is a theorem to calculate the coefficients for a multinomial expansion, but I'm having a hard time implementig the algorithm. What I need to know is if my procedure is correct:

$$(A + B + C + D)^n = \sum_{i=0}^n \dbinom{n}{i} A^{n-i} (B + C + D)^i$$

$$= \sum_{i=0}^n \dbinom{n}{i} A^{n-i} \sum_{j=0}^i \dbinom{i}{j} B^{i-j} (C + D)^j$$

$$= \sum_{i=0}^n \dbinom{n}{i} A^{n-i} \sum_{j=0}^i \dbinom{i}{j} B^{i-j} \sum_{k=0}^j \dbinom{j}{k} C^{j-k} D^k,$$

so

$$(A + B + C + D)^n = \sum_{i=0}^n \sum_{j=0}^{i} \sum_{k=0}^{j}\dfrac{n!}{(n-i)!(i-j)!(j-k)!k!} A^{n-i} B^{i-j} C^{j-k} D^k$$

Is that correct?

If so, I'm trying to compute the coefficients in Matlab in the following way

Code:
h = 1;
for i = 1:n
for j = 1:i
for k = 1:j
coef(h,1) = factorial(n)/(factorial(n-i)*factorial(i-j)*factorial(j-k)*factorial(k))
h = h+1;
end
end
end

so the vector coef contains the coefficients of the polynomial. What do you think? Is my approach correct or am I doing something wrong?

Homework Helper
Hi AiRAVATA! I know that there is a theorem to calculate the coefficients for a multinomial expansion, but I'm having a hard time implementig the algorithm. What I need to know is if my procedure is correct:

$$(A + B + C + D)^n = \sum_{i=0}^n \sum_{j=0}^{i} \sum_{k=0}^{j}\dfrac{n!}{(n-i)!(i-j)!(j-k)!k!} A^{n-i} B^{i-j} C^{j-k} D^k$$

Is that correct?

Yes, though it's normally written for an individual component:

coefficient of AaBbCcDd = n!/a!b!c!d! (with a + b + c + d = n) (I don't know anything about porgramming though )

Irrational
not being smart but should it not be:

Code:
for i = [B]0[/B]:n
for j = [B]0[/B]:i
for k = [B]0[/B]:j

AiRAVATA
True, in the real code they all start from zero. Thanks for noticing though!