Дискуссионный математический форумМатематический форум
Математический форум Math Help Planet

Обсуждение и решение задач по математике, физике, химии, экономике

Теоретический раздел
Часовой пояс: UTC + 3 часа [ Летнее время ]
новый онлайн-сервис
число, сумма и дата прописью

Часовой пояс: UTC + 3 часа [ Летнее время ]


Производные скалярной, векторной и матричной функций по векторному аргументу

Производные скалярной, векторной и матричной функций по векторному аргументу


Рассмотрим скалярную (числовую) функцию нескольких переменных f(x_1,x_2,\ldots,x_n). Упорядоченный набор переменных x_1,x_2,\ldots,x_n будем называть векторным аргументом этой функции и обозначать x. Первый дифференциал функции f(x)=f(x_1,x_2,\ldots,x_n) имеет вид:


df(x)= \frac{\partial f(x)}{\partial x_1}dx_1+\frac{\partial f(x)}{\partial x_2}dx_2+\ldots+\frac{\partial f(x)}{\partial x_n}dx_n.
(6.1)

Сумму в правой части можно представить как произведение строки \frac{df(x)}{dx}=\begin{pmatrix}\dfrac{\partial f(x)}{\partial x_1}&\cdots&\dfrac{\partial f(x)}{\partial x_n}\end{pmatrix} на столбец dx=\begin{pmatrix}dx_1\\\vdots\\dx_n \end{pmatrix}, либо как произведение строки dx^T на столбец \frac{df(x)}{dx^T}=\begin{pmatrix}\dfrac{df(x)}{dx}\end{pmatrix}^T\colon df(x)=\frac{df(x)}{dx}dx=dx^T\frac{df(x)}{dx^T}.


Матрица-строка \frac{df(x)}{dx}=\begin{pmatrix}\dfrac{\partial f(x)}{\partial x_1}&\cdots& \dfrac{\partial f(x)}{\partial x_n}\end{pmatrix} или матрица-столбец \frac{df(x)}{dx^T} определяют производную скалярной функции по векторному аргументу (градиент скалярной функции). Двойственность определения относится только к форме записи, поскольку векторный аргумент функции можно считать столбцом (в этом случае дифференциал dx — столбец) или понимать как строку. В любом случае для первого дифференциала получаем одно и то же выражение (6.1).


Второй дифференциал функции f(x)=f(x_1,x_2,\ldots,x_n) имеет вид


d^2f(x)= \sum_{i=1}^{n}\sum_{j=1}^{n}\frac{\partial^2f(x)}{\partial x_i\,\partial x_j}dx_i\,dx_j\,.
(6.2)

Обозначим через \frac{d^2f(x)}{dx^Tdx}=\begin{pmatrix} \dfrac{\partial^2f(x)}{\partial x_1^2}&\cdots&\dfrac{\partial^2f(x)}{\partial x_1\,\partial x_n}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial^2f(x)}{\partial x_n\,\partial x_1}&\cdots& \dfrac{\partial^2f(x)}{\partial x_n^2} \end{pmatrix} матрицу частных производных второго порядка (матрицу Гессе). Тогда правую часть (6.2) можно записать в виде произведения


d^2f(x)=dx^T\frac{d^2f(x)}{dx^Tdx}dx\,.



Замечания 6.1


1. Для записи производных можно использовать символические векторы (столбцы или строки):


\nabla=\frac{d}{dx}= \begin{pmatrix}\frac{\partial}{\partial x_1}&\cdots& \frac{\partial}{\partial x_n} \end{pmatrix}\!,\quad \nabla^T=\frac{d}{dx^T}= \begin{pmatrix} \dfrac{\partial}{\partial x_1}\\\vdots\\\dfrac{\partial}{\partial x_n} \end{pmatrix}\!.

При этом дифференцирование функции формально записывается как умножение функции на символический вектор производных. Например, градиент функции есть произведение вектора \nabla на функцию f(x)\colon \nabla f=\begin{pmatrix} \dfrac{\partial f}{\partial x_1}&\cdots&\dfrac{\partial f}{\partial x_n}\end{pmatrix}, а матрица Гессе есть произведение символической матрицы


\nabla^T\nabla= \begin{pmatrix}\dfrac{\partial}{\partial x_1}\\\vdots\\ \dfrac{\partial}{\partial x_n} \end{pmatrix}\!\cdot\! \begin{pmatrix}\dfrac{\partial}{\partial x_1}&\cdots&\dfrac{\partial}{\partial x_n}\end{pmatrix}= \begin{pmatrix} \dfrac{\partial^2}{\partial x_1^2} &\cdots&\dfrac{\partial^2}{\partial x_1\partial x_n}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial^2}{\partial x_n\partial x_1}&\cdots&\dfrac{\partial^2}{\partial x_n^2} \end{pmatrix} на функцию f(x).

2. Определитель матрицы Гессе называется гессианом.


3. Свойства градиента функции и матрицы Гессе используются в методах поиска экстремума функции.




Пример 6.2. Найти первую и вторую производные сложной функции g(t)=f(x(t))=f(x_1(t),\ldots,x_n(t)), применяя матричные обозначения.


Решение. Находим производные функции g(t), заменяя суммирование операциями умножения соответствующих матриц:


\begin{gathered}\frac{dg(t)}{dt}= \sum_{i=1}^{n}\frac{\partial f(x(t))}{\partial x_i}\cdot\frac{dx_i(t)}{dt}= \frac{df(x(t))}{dx}\cdot\frac{dx(t)}{dt}\,;\\[5pt] \begin{aligned} \dfrac{d^2g(t)}{dt^2}&= \sum_{i=1}^{n}\sum_{j=1}^{n}\frac{\partial^2 f(x(t))}{\partial x_j\partial x_i}\cdot \frac{dx_i(t)}{dt}\cdot \frac{dx_j(t)}{dt}+ \sum_{i=1}^{n}\frac{\partial f(x(t))}{\partial x_i}\cdot\frac{d^2x_i(t)}{dt^2}=\\[2pt] &=\begin{pmatrix}\dfrac{dx(t)}{dt}\end{pmatrix}^T \frac{d^2f(x(t))}{dx^Tdx}\cdot\frac{dx(t)}{dt}+ \frac{df(x(t))}{dx}\cdot\frac{d^2x(t)}{dt^2}\,. \end{aligned}\end{gathered}

Сравним матричную форму записи этих производных с производными в случае скалярной функции x(t)\colon


\frac{dg(t)}{dt}=\frac{df(x(t))}{dx}\cdot\frac{dx(t)}{dt};\quad \frac{d^2g(t)}{dt^2}=\frac{df(x(t))}{dx}\cdot\frac{d^2x(t)}{dt^2}+\frac{d^2f(x(t))}{dx^2}{\left(\frac{dx(t)}{dt}\right)\!}^2.

Выражения для первой производной совпадают, а для второй производной -отличаются незначительно, причем полное совпадение будет, если учесть, что x^T=x для скалярной величины x.




Производные векторной функции по векторному аргументу


Пусть задан столбец f(x)=\begin{pmatrix}f_1(x_1,\ldots,x_n)\\\vdots \\f_m(x_1,\ldots,x_n) \end{pmatrix} функций нескольких переменных (говорят, что задана вектор-функция векторного аргумента). Первый дифференциал вектор-функции имеет вид:


df(x)= \begin{pmatrix}\sum\limits_{j=1}^{n}\dfrac{\partial f_1(x)}{\partial x_j}dx_j\\ \vdots\\ \sum\limits_{j=1}^{n}\dfrac{\partial f_m(x)}{\partial x_j}dx_j\end{pmatrix}= \sum_{j=1}^{n}\! \begin{pmatrix} \dfrac{\partial f_1(x)}{\partial x_j}\\ \vdots\\ \dfrac{\partial f_m(x)}{\partial x_j} \end{pmatrix}\!dx_j.

Обозначим через \frac{df(x)}{dx}= \begin{pmatrix} \dfrac{\partial f_1(x)}{\partial x_1}&\cdots&\dfrac{\partial f_1(x)}{\partial x_n}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial f_m(x)}{\partial x_1}&\cdots& \dfrac{\partial f_m(x)}{\partial x_n}\end{pmatrix} матрицу частных производных первого порядка заданных функций (матрицу Якоби). Тогда выражение для первого дифференциала можно записать в виде df(x)=\frac{df(x)}{dx}dx, т.е. \frac{df(x)}{dx}производная вектор-функции векторного аргумента.


Как и в случае с аргументом x, упорядоченный набор функций можно считать не матрицей-столбцом, а матрицей-строкой (f(x))^T. Этот случай сводится к предыдущему, учитывая, что операции дифференцирования и транспонирования можно выполнять в любом порядке, так как d(f^T)=(df)^T (здесь и далее аргумент x для упрощения записи опущен). Поэтому из равенства df=\frac{df}{dx}dx получаем


df^T= (dx)^T\cdot\! \begin{pmatrix}\dfrac{df}{dx}\end{pmatrix}^T= (dx)^T\cdot\frac{df^T}{dx^T}, где \frac{df^T}{dx^T}= \begin{pmatrix} \dfrac{\partial f_1(x)}{\partial x_1}&\cdots&\dfrac{\partial f_m(x)}{\partial x_1}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial f_1(x)}{\partial x_n}&\cdots& \dfrac{\partial f_m(x)}{\partial x_n}\end{pmatrix}

— транспонированная матрица Якоби вектор-функции f(x).


Заметим, что из равенства d(f^T)=(df)^T следует правило транспонирования производных вектор-функции: \frac{df^T}{dx^T}= \begin{pmatrix} \dfrac{df}{dx} \end{pmatrix}^T.




Правила дифференцирования по векторному аргументу


Векторный аргумент x, его приращение dx считаем матрицами-столбцами размеров n\times1.


1. Первый дифференциал скалярной функции f(x) имеет вид:


df=\frac{df}{dx}\,dx=dx^T\frac{df}{dx^T}\,,

где \frac{df}{dx}=\begin{pmatrix}\dfrac{df}{dx_1}&\cdots&\dfrac{df}{dx_n} \end{pmatrix} — градиент функции, а \frac{df}{dx^T}=\begin{pmatrix} \dfrac{df}{dx} \end{pmatrix}^T.


2. Второй дифференциал скалярной функции f(x) имеет вид


d^2f=dx^T\frac{d^2f}{dx^Tdx}\,dx, где \frac{d^2f(x)}{dx^Tdx}= \begin{pmatrix} \dfrac{\partial^2f(x)}{\partial x_1^2}&\cdots& \dfrac{\partial^2f(x)}{\partial x\partial x_n}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial^2f(x)}{\partial x_n\partial x_1}&\cdots& \dfrac{\partial^2f(x)}{\partial x_n^2}\end{pmatrix} — матрица Гессе.

3. Первый дифференциал вектор-функции {матрицы-столбца) f(x)=\begin{pmatrix} f_1(x)\\\vdots\\ f_m(x)\end{pmatrix} имеет вид:


df=\frac{df}{dx}\,dx, где \frac{df(x)}{dx}= \begin{pmatrix} \dfrac{\partial f_1(x)}{\partial x_1}& \cdots&\dfrac{\partial f_1(x)}{\partial x_n}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial f_m(x)}{\partial x_1}&\cdots& \dfrac{\partial f_m(x)}{\partial x_n} \end{pmatrix} — матрица Якоби.

Первый дифференциал матрицы-строки: d(f^T)=dx^T\frac{df^T}{dx^T}.


4. В частном случае, когда f(x)=x, получаем


\frac{dx}{dx}=E,~~\frac{dx^T}{dx^T}=E, где E — единичная матрица n-го порядка.

5. Числовую матрицу C (соответствующих размеров) можно выносить за знак производной:


\frac{d(Cf)}{dx}=C\,\frac{df}{dx};\quad \frac{d(f^TC)}{dx^T}= \frac{df^T}{dx^T}\,C

Последняя формула следует из правила транспонирования производных:


\frac{d(f^TC)}{dx^T}= \begin{pmatrix}\dfrac{d(C^Tf)}{dx}\end{pmatrix}^T= \begin{pmatrix}C^T\,\dfrac{df}{dx}\end{pmatrix}^T= \frac{df^T}{dx^T}\,C.

6. Производные суммы, разности и произведения вектор-функций u(x) и v(x) одинаковых размеров m\times1\colon


\begin{gathered} \frac{d(u+v)}{dx}=\frac{du}{dx}+\frac{dv}{dx};\qquad \frac{d(u-v)}{dx}=\frac{du}{dx}-\frac{dv}{dx};\\[5pt] \frac{d(u^Tv)}{dx}= v^T\,\frac{du}{dx}+ u^T\,\frac{dv}{dx};\qquad \frac{d(u^Tv)}{dx^T}= \frac{du^T}{dx^T}\,v+ \frac{dv^T}{dx^T}\,u. \end{gathered}

Докажем, например, последнее равенство. Найдем частную производную скалярной функции u^Tv по переменной x_j\colon


\frac{\partial(u^Tv)}{\partial x_j}=\frac{\partial}{\partial x_j}\!\left(\sum_{i=1}^{m} u_iv_i\right)= \sum_{i=1}^{m}\!\left(\frac{\partial u_i}{\partial x_j}\,v_i+ u_i\,\frac{\partial v_i}{\partial x_j}\right)= \sum_{i=1}^{m}\frac{\partial u_i}{\partial x_j}\,v_i+ \sum_{i=1}^{m} u_i\,\frac{\partial v_i}{\partial x_j}\,.

Тогда первый дифференциал функции u^Tv имеет вид


d(u^Tv)= \sum_{j=1}^{n}\left(\sum_{i=1}^{m}\frac{\partial u_i}{\partial x_j}\,v_i+ \sum_{i=1}^{m} u_i\,\frac{\partial v_i}{\partial x_j}\right)\!dx_j\,.

Запишем это выражение, используя матричные обозначения


\begin{aligned}d(u^Tv)&= \begin{pmatrix}dx_1&\cdots&dx_n\end{pmatrix}\!\! \begin{bmatrix} \begin{pmatrix} \dfrac{\partial u_1}{\partial x_1}&\cdots&\dfrac{\partial u_m}{\partial x_1}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial u_1}{\partial x_n}&\cdots&\dfrac{\partial u_m}{\partial x_n} \end{pmatrix}\!\cdot\! \begin{pmatrix}v_1\\\vdots\\v_m\end{pmatrix}+ \begin{pmatrix} \dfrac{\partial v_1}{\partial x_1}&\cdots&\dfrac{\partial v_m}{\partial x_1}\\ \vdots&\ddots&\vdots\\ \dfrac{\partial v_1}{\partial x_n}&\cdots&\dfrac{\partial v_m}{\partial x_n} \end{pmatrix}\!\cdot\! \begin{pmatrix} u_1\\\vdots\\u_m\end{pmatrix}\end{bmatrix}=\\ &=dx^T\!\begin{bmatrix} \dfrac{du^T}{dx^T}\,v+ \dfrac{dv^T}{dx^T}\,u\end{bmatrix}\!.\end{aligned}

Сравнивая полученное выражение с d(u^Tv)=dx^T\frac{d(u^Tv)}{dx^T}, приходим к равенству \frac{d(u^Tv)}{dx^T}=\frac{du^T}{dx^T}\,v+\frac{dv^T}{dx^T}\,u, что и требовалось доказать.


7. Производная сложной функции z=(y(x)), где z=z(y)= \begin{pmatrix} z_1(y)\\\vdots\\z_k(y)\end{pmatrix} и y=y(x)= \begin{pmatrix} y_1(x)\\\vdots\\y_m(x) \end{pmatrix} вычисляется по формуле:


\frac{dz(y(x))}{dx}=\frac{dz(y(x))}{dy}\cdot\frac{dy(x)}{dx} или, опуская аргументы, \frac{dz}{dx}=\frac{dz}{dy}\cdot\frac{dy}{dx}.

Действительно, запишем первый дифференциал вектор-функции: dz(x)=\frac{dz}{dy}\,dy=\frac{dz}{dy}\frac{dy}{dx}\,dx. Заметим, что матрицы Якоби в правой части формулы согласованы: матрица \frac{dz}{dy} имеет размеры k\times m, матрица \frac{dy}{dx}-m\times n. Найдем, используя обычные правила дифференцирования, частную производную \frac{\partial z_i(y(x))}{\partial x_j}= \sum_{k=1}^{m}\frac{\partial z_i}{\partial y_k}\frac{\partial y_k}{\partial x_j}. В правой части стоит произведение i-й строки матрицы \frac{dz}{dy} на j-й столбец матрицы \frac{dy}{dx}, что и требовалось показать.


Использование матричных обозначений позволяет записывать и применять правила дифференцирования по векторному аргументу аналогично правилам дифференцирования в скалярном случае. Например, правило 7 дифференцирования сложной вектор-функции формально совпадает с обычным "цепным" правилом \frac{dz}{dx}=\frac{dz}{dy}\frac{dy}{dx} дифференцирования скалярной сложной функции одной переменной. Разумеется, что формальное совпадение правил становится фактическим в скалярном случае, когда все матрицы имеют размеры 1\times1.




Пример 6.3. Применяя правила дифференцирования по векторному аргументу, найти производные следующих функций:


а) c^Tx; б) x^Tc; в) x^TA; г) x^TA; д) x^TAx,


где A — квадратная числовая матрица n-го порядка; x,\,c — столбцы размеров n\times1, причем столбец c числовой.


Решение. а) Вынося постоянный множитель (матрицу-строку) c^T по правилу 5 и учитывая правило 4, получаем:


\frac{d(c^Tx)}{dx}=c^T\,\frac{dx}{dx}=c^Tec^T.

б) Учитывая, что величина x^Tc скалярная, т.е. x^Tc=(x^Tc)^T=c^Tx, получаем \frac{d(x^Tc)}{dx}=\frac{d(c^Tx)}{dx}=c^T. Заметим, что \frac{d(c^Tx)}{dx^T}=\frac{d(x^Tc)}{dx^T}=c.


в) По правилам 4 и 5 находим: \frac{d(Ax)}{dx}=A\,\frac{dx}{dx}=AE=A.


г) По правилам 4 и 5 находим: \frac{d(x^TA)}{dx^T}=\frac{dx^T}{dx^T}\,A=EA=A.


д) Представляя скалярное выражение x^TAx как произведение строки x^T на столбец Ax, по правилу 6 (где u^T=x^T,\,v=Ax) получаем


\frac{d(x^TAx)}{dx}=(Ax)^T\frac{dx}{dx}+x^T\,\frac{dx}{dx}=x^TA^T\,\frac{dx}{dx}+ x^TA\frac{dx}{dx}= x^T(A^T+A).

с учетом правила транспонирования производных


\frac{d(x^TAx)}{dx^T}= \frac{d(x^TA^Tx)^T}{dx^T}= \begin{pmatrix} \frac{d(x^TA^Tx)}{dx^T} \end{pmatrix}^T= \begin{bmatrix}x^T(A+A^T)\end{bmatrix}^T= (A^T+A)x.

Учитывая результат п. "б", имеем \frac{d^2(x^TAx)}{dx^Tdx}=A^T+A.




Замечания 6.2


1. В некоторых областях прикладной математики, например, в методах оптимизации и теории управления, часто используются другие соглашения, совпадающие с изложенными с точностью до операции транспонирования. Производная \frac{df(x)}{dx} (градиент функции f(x)) считается матрицей-столбцом, а производная \frac{df(x)}{dx^T} — матрицей-строкой:


\frac{}{}= \begin{pmatrix}\dfrac{\partial f}{\partial x_1}\\\vdots\\\dfrac{\partial f}{\partial x_n}\end{pmatrix}\!;\qquad \frac{df(x)}{dx^T}= \begin{pmatrix}\dfrac{\partial f}{\partial x_1}&\cdots&\dfrac{\partial f}{\partial x_n}\end{pmatrix}\!.

Тогда соответствующие формулы дифференцирования, аналогичные полученным в примере 6.3, имеют вид:


\begin{gathered}\frac{d(c^Tx)}{dx}=\frac{d(x^Tc)}{dx}=c;\qquad \frac{d(x^Tc)}{dx^T}= \frac{d(c^Tx)}{dx^T}=c^T;\\[5pt] \frac{d(Ax)}{dx^T}=A;\qquad \frac{d(x^TA)}{dx}=A;\\[5pt] \frac{d(x^TAx)}{dx^T}= x^T(A^T+A),\quad \frac{d(x^TAx)}{dx}=(A^T+A)x,\quad \frac{d^2(x^TAx)}{dx^Tdx}=A^T+A.\end{gathered}

2. Если матрица Якоби квадратная (m=n), то ее определитель называется якобианом.


3. След матрицы Якоби (при m=n) определяет


\operatorname{div}f=\operatorname{tr}\frac{df}{dx}=\sum_{i=1}^{n}\frac{\partial f_i}{\partial x_i} дивергенцию вектор-функции f(x) векторного аргумента x.




Производные матричной функции по векторному аргументу


Рассмотрим функциональную матрицу A(x), элементами которой служат функции a_{ij}(x) векторного аргумента x. Дифференциал этой функции имеет вид


dA(x)=\sum_{i=1}^{n}\frac{\partial A(x)}{\partial x_i}\,dx_i,

где \frac{\partial A(x)}{\partial x_i}частная производная матрицы по одной переменной. Совокупность частных производных (градиент функциональной матрицы) представляет объект, элементы которого \frac{\partial a_{ij}(x)}{\partial x_k} нумеруются тремя индексами: номер строки, номер столбца и номер переменной дифференцирования. Поэтому заменить операцию суммирования в правой части формулы операцией умножения матриц в данном случае не представляется возможным. Необходимо вводить другие объекты — тензоры и операции над ними. Поясним формальную сторону получения удобных формул дифференцирования на примере функциональных матриц. Примем следующие правила индексирования:


1) элементы матрицы A=\begin{pmatrix}a_j^i\end{pmatrix} обозначаются a_j^i, где i — номер строки, а j — номер столбца. В частности, x=\begin{pmatrix}x^i\end{pmatrix} — матрица-столбец (или просто столбец), а y=\begin{pmatrix}y_j\end{pmatrix} — матрица-строка (или просто строка);


2) частную производную функции F(x) (скалярной, векторной или матричной) по переменной x^i будем обозначать, приписывая нижний индекс i в скобках: \frac{\partial F}{\partial^i}=F_{(i)};


3) если в произведении одинаковые индексы встречаются сверху и снизу, то по ним производится суммирование (хотя знак суммы не указывается). Например, если A=\begin{pmatrix}a_j^i\end{pmatrix} — матрица размеров m\times n, x=\begin{pmatrix}x^i\end{pmatrix} — столбец размеров n\times1, y=\begin{pmatrix}y_j\end{pmatrix} — строка размеров 1\times m, то


a_j^ix^j=\sum_{j=1}^{n}a_j^ix^j,\quad a_j^iy_i=\sum_{i=1}^{m}a_j^iy_i,\quad a_j^ix^jy_i=\sum_{i=1}^{m}\sum_{j=1}^{n}a_j^ix^jy_i,

т.е. a_j^ix^j — i-й элемент столбца Ax, a_j^iy_i — j-й элемент строки yA, a_j^ix^jy_i — число yAx.


Применяя эти соглашения, запишем дифференциалы:


— скалярной функции: df=f_{(i)}dx^i,~d^2f=f_{(i)(j)}dx^idx^j;


— вектор-функции f=\begin{pmatrix}f^i\end{pmatrix} (функции-столбца): df^i=f_{(j)}^idx^j;


— функциональной матрицы F=(f_j^i)\colon\,df_j^i=f_{j(k)}^idx^k, где f_{j(k)}^i=\frac{\partial f_j^i}{\partial x^k} — частная производная первого порядка элемента f_j^i функциональной матрицы F по переменной x^k.


Одним из преимуществ принятых соглашений является получение простого вида формул. Другие преимущества раскрываются и используются в тензорном анализе.

Математический форум (помощь с решением задач, обсуждение вопросов по математике).
Кнопка "Поделиться"
Если заметили ошибку, опечатку или есть предложения, напишите в комментариях.

Часовой пояс: UTC + 3 часа [ Летнее время ]


Яндекс.Метрика

Copyright © 2010-2020 MathHelpPlanet.com. All rights reserved