I've got a function $$g(x,y) = \| f(x,y) \|_2$$ and I want to calculate its derivatives with respect to $x$ and $y$.

Using Mathematica, differentiating w.r.t. $x$ gives me $ f'_x(x,y) \text{Norm}'( f(x,y))$, where Norm is $\| \cdot \|$.

I read here that

$$d\|{\bf x}\| = \frac{ {\bf x}^Td{\bf x}}{\|{\bf x}\|}$$

at least for the $2$-norm. Point is, as inside the norm I have a multivariate function, I'm still confused on how to calculate $ f'_x(x,y) \text{Norm}'( f(x,y))$

I think it should be $f'_x(x,y) \frac{f(x,y)}{||f(x,y)||}$, but some verification would be great :)

  • $\begingroup$ When you are not sure, writing out all components should help. It's nasty, I know, but it always works. $\endgroup$ – Tunococ Jan 31 '13 at 12:30
  • $\begingroup$ First find the derivative of $h(x,y) = \|f(x,y)\|^2 = f(x,y) \cdot f(x,y)$, using the product rule. Then you can get the derivative of $g(x,y) = \sqrt{h(x,y)}$ from the chain rule. $\endgroup$ – Hans Engler Jan 31 '13 at 12:36
  • $\begingroup$ Just saw your edit. This answer is correct. $\endgroup$ – Hans Engler Jan 31 '13 at 12:36
  • $\begingroup$ @YellowSkies: how is your link related to this question? $\endgroup$ – Watson Sep 14 '16 at 9:14
  • $\begingroup$ @Tunococ can you solve this one ? math.stackexchange.com/questions/2587031/… thanx. $\endgroup$ – Usman Mahmood Dec 31 '17 at 21:23

Suppose $f:\mathbb R^m \to \mathbb R^n$. Decompose into $f = (f_1, \ldots, f_n)$. Each $f_i$ is a real-valued function, i.e., $f_i: \mathbb R^m \to \mathbb R$. Then $$ g(X) = \|f(X)\|_2 = \sqrt{\sum_{i=1}^n f_i(X)^2}. $$ Therefore, $$\nabla g(X) = \frac 12\left(\sum_{i=1}^n f_i(X)^2\right)^{-\frac 12}\left(\sum_{i=1}^n 2f_i(X)\nabla f_i(X)\right) = \frac{\sum_{i=1}^n f_i(X)\nabla f_i(X)}{\|f(X)\|_2}. $$ This matches your answer.

If you want to write in terms of the Jacobian matrix of $f$ instead of components $f_i$, you can: $$ \nabla g(X) = \frac{J_f(X)^T f(X)}{\|f(X)\|_2}. $$

  • $\begingroup$ Many thanks for the answer! $\endgroup$ – Babis Jan 31 '13 at 13:14
  • $\begingroup$ May I know if $m = 1$, e.g. $f(t) = (f_1(t), f_2(t), \cdots, f_n(t))$, then $\nabla f_i(t) = \dfrac{df_i(t)}{dt}$? $\endgroup$ – Yuki.F Nov 5 '20 at 4:55
  • $\begingroup$ That seems correct. $\endgroup$ – Tunococ Nov 6 '20 at 6:31

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.