# Multivariate Faà di Bruno's formula

I'm attempting to implement a computer algebra function using the combinatoric version of Faà di Bruno's formula presented by Michael Hardy in Combinatorics of Partial Derivatives that "collapses" partitions to account for multiple variables. The paper is mostly very well-written and intelligible (its examples are used in the Wikipedia article) but there's one thing I'm unclear about.

To give an example:

I do the following:

• Compute the integer partition of the order represented as nested sequences
• Take the unmixed partial of f at the order corresponding the number of blocks in each partition
• Compose it with g
• Multiply the composition with the mixed partials of f corresponding to the blocks in the partition
• Sum the functions corresponding to each partition

I'm currently distributing the multiplication at each order/partition rather than collapsing partitions and multiplying by a scalar, so I'm duplicating some work but am just trying to get it correct right now).

I think the problem is that I'm misunderstanding the composition at each order, i.e. that f'''(y) in Hardy's example is not, if fact, the unmixed second-order partial of f composed with g. I just can't think of anything else that could be meant by notation like f''(y)(dy/x1 * dy^2/dx2xdx3).

Any clarification would be greatly appreciated.

• Well you confuse me at two points: (a) you talk of "unmixed partial of $f$" -- but $f$ is just a function of one variable; and (b) you talk of "the mixed partials of $f$ " --but surely you mean "the mixed partials of $y$". I think you should distinguish carefully between $f$ a function defined on $\mathbb{R}$ , and $F(x_1,x_2,\dots,x_n):=f(y(x_1,x_2,\dots,x_n))$ a function defined on $\mathbb{R}^n$. Mar 28 '18 at 11:52
• @ancientmathematician yes I assumed that's where my confusion lies. If I think about this in terms of the chain rule where both f and g can be multivariate then how do I get f(y) from g? Mar 28 '18 at 17:46
• I'm sorry, I don't see where you tell us what $g$ is in your question. Is it $y(x_1,\dots,x_n)$? Mar 29 '18 at 6:50
• The mixing of Leibniz's and Lagrange's notation is what's confusing me. It's clear from the traditional version of the formula that y is g and the partials are of g, but in that case both functions are assumed to be univariate. Mar 29 '18 at 9:11
• But $f$ is univariate, $y$ is $n$-variate, $F$ [see my first comment] is $n$-variate. So $F$ has partials wrt the $x_i$, as does $y$; but $f$ just has plain old derivatives. Again, I think you should keep $f$ and$F$ distinct -- the tradition may be to confuse them but that's confusing. Mar 29 '18 at 9:31

Perhaps if we look at the earlier terms it may help. [If it does not address your difficulty then I will happily delete it.]

We are looking at a composition $f(y(x_1,\dots,x_n))$. I think that this may be what is confusing you. I don't have any reference for a formula when $f$ is multivariate.

Then $$\frac{\partial}{\partial x_1}f(y(x_1,\dots,x_n)) = f'(y(x_1,\dots,x_n))\cdot\frac{\partial}{\partial x_1}y(x_1,\dots,x_n)$$ by the Chain Rule.

Next $$\frac{\partial^2}{\partial x_2\partial x_1}f(y(x_1,\dots,x_n)) = \frac{\partial}{\partial x_2}\left(f'(y(x_1,\dots,x_n))\cdot\frac{\partial}{\partial x_1}y(x_1,\dots,x_n)\right)$$ and to this we apply the Product Rule and so $$\frac{\partial^2}{\partial x_2\partial x_1}f(y(x_1,\dots,x_n)) = \frac{\partial}{\partial x_2} \left(f'(y(x_1,\dots,x_n))\right)\cdot\frac{\partial}{\partial x_1}y(x_1,\dots,x_n) +\\ f'(y(x_1,\dots,x_n))\cdot\frac{\partial}{\partial x_2}\left(\frac{\partial}{\partial x_1}y(x_1,\dots,x_n)\right)$$ Now apply to the first term the Chain Rule argument (we have $f'$ instead of $f$ and $x_2$ instead of $x_1$): we get $$\frac{\partial^2}{\partial x_2\partial x_1}f(y(x_1,\dots,x_n)) = f''(y(x_1,\dots,x_n))\cdot\frac{\partial}{\partial x_2}y(x_1,\dots,x_n)\frac{\partial}{\partial x_1}y(x_1,\dots,x_n) +\\ f'(y(x_1,\dots,x_n))\cdot\frac{\partial^2}{\partial x_2\partial x_1}y(x_1,\dots,x_n)$$

Now differentiate with respect to $x_3$. At each stage you need to use the Product Rule, and then on the $f^{(n)}((y(x_1,\dots,x_n))$ you must use the Chain Rule. Faà di Bruno's formula gives a combinatorial explanation of which products of partial derivatives of $y$ occur in the multiplier of $f^{(k)}(y(x_1,\dots,x_n)$.

• Are you just saying that f is univariate and the formula is generalized with respect to multiple variables in y? I assumed f could be multivariate as well. Is it something like that possible? And what type of situations come up when one would be working with functions in different dimensions to warrant this construction? Mar 30 '18 at 11:06
• @SophiaGold $f$ cannot be multivariate because otherwise notations like $f''$ are not defined.
– Ѕааԁ
Mar 30 '18 at 11:52
• @SophiaGold. Yes, it's univariate here and in the paper you quote. If $f$ were a function of $y_1, \dots, y_m$ all functions of $x_1, \dots, x_n$ then the Chain Rule is more complicated and I don't know what the combinatorics are. Mar 30 '18 at 12:05
• Thanks. And sorry for all the confusion. Given that restriction on f everything else makes complete sense. I suppose there are many systems that can be described in terms of a one dimensional function over higher dimensional spaces, e.g. certain types of transformations or cost functions in optimization problems, but I was having trouble imagining how functional composition fit into this. I suppose it's simply convolution, i.e. the "composition product?" Mar 30 '18 at 20:06
• This newer paper by Tsoy-Wo Ma provides a multivariate generalization of Hardy's combinatoric version of Faà di Bruno's formula. Jun 20 '21 at 15:58