Multivariate calculus#

The idea is the same: approximate the increment \(\Delta f\) by a linear function:

\[ f(x+h) - f(x) = Df(x)[h] + \mathcal O\big(\Vert h\Vert^2\big), \Vert h\Vert \to 0 \]

(cp. with (62)). Here differential \(Df(x)[h]\) is a linear function (which is usually called linear operator in multidimensional case) with respect to increment \(h\) which represents the main linear part of the increment \(\Delta f = f(x+h) - f(x)\).

Differentials of scalar functions#

In the previous section we considered the simplest case when \(f \colon \mathbb R \to \mathbb R\) is a real-valued function of real argument. Then its differential is written as \(df(x) = f'(x) dx\) or \(Df(x)[h] = f'(x)h\). Now see what happens when the function \(f\) has multidimensional domain.

Functions of vectors#

let \(f\colon \mathbb R^n \to \mathbb R\) and \(\boldsymbol x = (x_1, \ldots, x_n)^\mathsf{T}\). Then

(63)#\[Df(\boldsymbol x)[\boldsymbol h] = \sum\limits_{i=1}^n \frac{\partial f(\boldsymbol x)}{\partial x_i} h_i = \langle \nabla f(\boldsymbol x), \boldsymbol h\rangle = \nabla f (\boldsymbol x)^\mathsf{T} \boldsymbol h,\]

Here \(\frac{\partial f(\boldsymbol x)}{\partial x_i}\) are partial derivatives of \(f\) at point \(\boldsymbol x\). The vector of partial derivatives

\[ \nabla f = \Big(\frac{\partial f}{\partial x_1}, \ldots,\frac{\partial f}{\partial x_n}\Big)^\mathsf{T} \]

is called gradient of \(f\). Alternative notation for differential:

\[ df(\boldsymbol x) = \sum\limits_{i=1}^n \frac{\partial f(\boldsymbol x)}{\partial x_i} dx_i = \nabla f(\boldsymbol x)^\mathsf{T} d\boldsymbol x, \quad d\boldsymbol x = (dx_1, \ldots, dx_n)^\mathsf{T}. \]

Note that both increment \(d\boldsymbol x\) and gradient \(\nabla f\) have the same shape as variable \(\boldsymbol x\): they are columns of size \(n\). All partial derivatives are functions of \(\boldsymbol x\), therefore, gradient also depends on \(\boldsymbol x\).

Question

How to write \(df\) in vector form if the argument of \(f\) is a row vector \(\boldsymbol x = (x_1, \ldots, x_n)\)?

Note

Иногда приходится дифференцировать функции, зависящие от различных наборов аргументов, и тогда во избежание неоднозачности в индексе у буквы \(\nabla\) указывают аргумент, по которому осуществляется дифференцирование. Например, запись \(\nabla_{\boldsymbol w} f(\boldsymbol X, \boldsymbol y, \boldsymbol w)\) недвусмысленно даёт понять, что мы дифференцируем фукнцию \(f\) по вектору \(\boldsymbol w\), а \(\boldsymbol X\) и \(\boldsymbol y\) рассматриваем при этом как фиксированные параметры.

Differentials of vector functions#

Пусть \(f\colon \mathbb R^m \to \mathbb R^n\), тогда дифференциал должен быть линейным оператором из \(\mathbb R^m\) в \(\mathbb R^n\), то есть матрицей размера \(n\times m\). И, действительно, с помощью матрицы Якоби

(64)#\[\begin{split}\boldsymbol J_f = \frac{\partial f}{\partial \boldsymbol x} = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \ldots & \frac{\partial f_1}{\partial x_m} \\ \vdots & & \vdots \\ \frac{\partial f_n}{\partial x_1} & \ldots & \frac{\partial f_n}{\partial x_m}\\ \end{pmatrix}\end{split}\]

differential is written as

(65)#\[Df(\boldsymbol x)[\boldsymbol h] = \boldsymbol J_f(\boldsymbol x)\boldsymbol h \text { or } df(\boldsymbol x) = \boldsymbol J_f(\boldsymbol x) d\boldsymbol x.\]

Question

Let \(f\colon \mathbb R^m \to \mathbb R^n\) be a mapping from a row vector \(\boldsymbol x = (x_1, \ldots, x_m)\) to another row vector \((f_1(\boldsymbol x), \ldots, f_n(\boldsymbol x))\). How to write \(df\) in matrix form?

Differential in general case#

Функция \(f \colon X \to V\), \(X \subset U\), дифференцируема в точке \(x\in X\), если найдётся такой линейный оператор \(L\colon U \to V\), что справедливо равенство

\[ f(x+h) - f(x) = L[h] + o(\Vert h\Vert) \text{ при } \Vert h\Vert \to 0. \]

Линейное отображение \(L\) из мира \(x\)-ов в мир значений \(f\) называется дифференциалом (производной, производным отображением) функции \(f\) в точке \(x\) и обозначается \(df(x)\) или \(Df(x)[h]\). Фактически дифференциал зависит от двух аргументов: \(df \colon X\times U \to V\), причём по второму аргументу он линеен. Среди всех линейных операторов из \(U\) в \(V\) дифференциал наилучшим образом приближает приращение функции:

\[ f(x+h) - f(x) \approx Df(x)[h]. \]

Note

Нотация \(Df(x)[h]\) для дифференциала выглядит несколько громоздко, зато в неё явно включены обе переменные, от которых зависит дифференциал. При вычислении дифференциала функции \(f\) в произвольной точке \(x\) часто используют более короткую запись \(df(x)\) или даже \(df\); переменная приращения в таких случаях традиционно обозначается через \(dx\). Обозначение \(dx\) следует воспринимать как единый неделимый символ, по смыслу полностью тождественный приращению \(h\).

Special cases#

  • \(U = V = \mathbb R\):

    \[ Df(x)[h] = f'(x)h \text{ or } df = f'(x)dx \]
  • \(U = \mathbb R^n\), \(V = \mathbb R\):

    \[ Df(\boldsymbol x)[\boldsymbol h] = \nabla f(\boldsymbol x)^{\mathsf T} \boldsymbol h \text{ or } df = \nabla f^{\mathsf T} d\boldsymbol x \]
  • \(U = \mathbb R^{m\times n}\), \(V = \mathbb R\) (see next section):

    \[ Df(\boldsymbol X)[\boldsymbol H] = \mathrm{tr}\big(\nabla f(\boldsymbol X)^{\mathsf T} \boldsymbol H\big) \text{ or } df = \mathrm{tr}\big(\nabla f^{\mathsf T} d\boldsymbol X\big) \]
  • \(U = \mathbb R^{m}\), \(V = \mathbb R^n\):

    \[ Df(\boldsymbol x)[\boldsymbol h] = J_f(\boldsymbol x) \boldsymbol h \text{ or } df = J_f d\boldsymbol x \]

Question

If \(f\colon U \to V\) is differentiable at point \(x\), what is the shape of \(Df(x)[h]\)?

Rules of differentiation#

  1. Производная константы. Если \(f(x) = \mathrm{const}\), то \(f(x+h) - f(x) = 0\), и по определению \(Df(x)[h] = 0\). По этой же причине градиент постоянной функции векторного или матричного аргумента также равен нулю.

  2. Дифференциал линейного отображения. Пусть \(f(x)\) — линейное отображение. Тогда

\[ f(x + h) - f(x) = f(x) + f(h) - f(x) = f(h). \]

Поскольку справа линейное отображение, то по определению оно и является дифференциалом \(Df(x)[h]\).

  1. Линейность дифференциала. Пусть функции \(f \colon X \to V\) и \(g \colon X \to V\) дифференцируемы в точке \(x\in X\) и \(\alpha, \beta \in \mathbb R\). Тогда функция \(\alpha f + \beta g\) дифференцируема в точке \(x\), и

    \[ D(\alpha f + \beta g)(x)[h] = \alpha Df(x)[h] + \beta Dg(x)[h]. \]
  2. Дифференциал произведения. Пусть функции \(u \colon X \to \mathbb R\), \(v \colon X \to V\) дифференцируемы в точке \(x\). Тогда функция \(u\cdot v\) дифференцируема в точке \(x\), и

    \[ D(uv)(x)[h] = Du(x)[h]\cdot v(x) + u(x)\cdot Dv(x)[h]. \]

    Это же правило сработает и для скалярного произведения:

    \[ D \langle u(x), v(x)\rangle [h] = \langle Du(x)[h], v(x)\rangle + \langle u(x), Dv(x)[h]\rangle. \]
  3. Производная сложной функции. Пусть функция \(u \colon X \to Y\) дифференцируема в точке \(x\), а функция \(v \colon Y \to Z\) дифференцируема в точке \(u(x)\). Тогда их композиция \(v\circ u\) дифференцируема в точке \(x\), и

    \[ D(u\circ v)(x)[h] = Dv(u(x))\Big[Du(x)[h]\Big]. \]

    В частности, если \(Y \subset \mathbb R\) и \(Z = \mathbb R\), то \(d(v\circ u)(x) = v'(u(x))du(x)\).

  4. Важный частный случай: дифференцирование перестановочно с линейным отображением. Пусть \(f(x) = L(v(x))\), где \(L\) — линейное отображение. Тогда \(DL(v(x))\) совпадает с самим \(L\) и формула упрощается:

    \[ D(L\circ v)(x)[h] = L(Dv(x)[h]). \]

Second differential#

Дифференциал \(Df(x)[h]\) функции

\[ f \colon X \to V, \quad X\subset U, \]

где \(U\) и \(V\) — некоторые конечномерные пространства, зависит от двух аргументов: \(x\in X\) и \(h\in U\). Зафиксировав приращение \(h_1\in U\), получим функцию от переменной \(x\):

\[ g(x) = Df(x)[h_1]. \]

А значит, её тоже можно попробовать продифференцировать! Если это возможно, то её дифференциал \(Dg(x)[h_2]\) называется вторым дифференциалом функции \(f\), и обозначается

\[ D^2f(x)[h_1, h_2] \text{ или } d^2f(x). \]

На сей раз это не линейный оператор, а билинейная форма: при фиксированном \(x_0\in X\) функция \(D^2f(x_0)[h_1, h_2]\) линейна по каждому из аргументов приращения.

Для функций \(f\colon \mathbb R^n \to \mathbb R\) второй дифференциал, как и любую билинейную форму, можно представить в виде матрицы:

\[ D^2f(\boldsymbol x)[\boldsymbol h_1, \boldsymbol h_2] = \langle \boldsymbol H_x \boldsymbol h_1, \boldsymbol h_2\rangle = \boldsymbol h_2^\mathsf{T} \boldsymbol H_x \boldsymbol h_1, \quad \boldsymbol H_x \in \mathbb R^{n\times n}. \]

Матрица \(\boldsymbol H_x\) назвается гессианом функции \(f\) в точке \(\boldsymbol x\) и обозначается \(\nabla^2 f( \boldsymbol x)\). Гессиан состоит из вторых частных производных:

\[ \nabla^2 f(\boldsymbol x) = \left \| \frac{\partial^2 f}{\partial x_i \partial x_j}(\boldsymbol x)\right\|_{i, j=1}^n. \]

Если все вторые частные производные функции \(f\) непрерывны, то её гессиан представляет собой симметричную матрицу (в этом состоит утверждение теоремы Шварца). Также для таких функций справедливо разложение по формуле Тейлора до второго порядка:

\[ f(\boldsymbol x+ \boldsymbol h) = f(\boldsymbol x) + Df(\boldsymbol x)[\boldsymbol h] + \frac 12 D^2f(\boldsymbol x)[\boldsymbol h, \boldsymbol h] + o(\|\boldsymbol h\|^2), \]

или, в другой записи,

\[ f(\boldsymbol x+\boldsymbol h) = f(\boldsymbol x) + \nabla f(\boldsymbol x)^\mathsf{T} \boldsymbol h + \frac 12 \boldsymbol h^\mathsf{T}\nabla ^2f(\boldsymbol x)\boldsymbol h + o(\|\boldsymbol h\|^2). \]

Exercises#

  1. Let \(\boldsymbol a \in \mathbb R^n\) be a fixed vector and

    \[ f(\boldsymbol x) = \sum\limits_{k=1}^n a_k x_k = \boldsymbol a^\mathsf{T} \boldsymbol x. \]

    Find \(\nabla f(\boldsymbol x)\).

  2. Let \(\varphi \in C^1(\mathbb R)\), \(\boldsymbol x \in \mathbb R^m\), and

    (66)#\[\begin{split}f(\boldsymbol x) = \begin{pmatrix} \varphi(x_1)\\ \vdots\\ \varphi(x_m) \end{pmatrix}, \quad g(\boldsymbol x) = \begin{pmatrix} \varphi'(x_1)\\ \vdots\\ \varphi'(x_m) \end{pmatrix}\end{split}\]

    Show that

    (67)#\[ Df(\boldsymbol x)[\boldsymbol h] = g(\boldsymbol x) \odot \boldsymbol h =\boldsymbol h \odot g(\boldsymbol x).\]
  3. According to (64), the differential of the function \(f\) from (66) should be an \(m\times m\) matrix. How does it look like?

  4. Let \(\boldsymbol A \in \mathbb R^{n\times n}\) and

    \[ f(\boldsymbol x) = \langle \boldsymbol{Ax}, \boldsymbol x\rangle = \boldsymbol x^\mathsf{T} \boldsymbol{Ax}. \]

    Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).

  5. Logistic function is

    \[ f(\boldsymbol x) = \log\big(1 + \exp(\boldsymbol a^\mathsf{T} \boldsymbol x)\big), \quad \boldsymbol a \in \mathbb R^n. \]

    Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).

  6. Let \(\boldsymbol A = \boldsymbol A^\mathsf{T}\) and \(f(\boldsymbol x) = \frac 12 \Vert\boldsymbol{xx}^\mathsf{T} - \boldsymbol A\Vert_F^2\). Find \(\nabla f(\boldsymbol x)\) and \(\nabla^2 f(\boldsymbol x)\).