【数理知识】二次型求导 矩阵求导
最近在做一些 LQR 的研究,發現涉及到了大量的二次型求導以及矩陣求導問題,故簡單整理如下。
因為是 LQR 的問題,故從一個哈密頓 Hamilton 函數開始吧。
有哈密頓函數
H=12xTQx+12uTRu+λTAx+λTBuH = \frac{1}{2} x^T Q x + \frac{1}{2} u^T R u + \lambda^T A x + \lambda^T B uH=21?xTQx+21?uTRu+λTAx+λTBu
求駐值點時會用到
??u12uTRu=Ru\frac{\partial}{\partial u}~~~ \frac{1}{2} u^T R u = R u?u?????21?uTRu=Ru
??u12[u1u2][r11r12r12r22][u1u2]=??u12[u1r11+u2r12u1r12+u2r22][u1u2]=??u12[u12r11+u1u2r12+u1u2r12+u22r22]=[u1r11+u2r12u1r12+u2r22]=[r11r12r12r22][u1u2]=Ru\begin{aligned} & \frac{\partial}{\partial u}~~~ \frac{1}{2} \left[\begin{matrix} u_1 & u_2 \\ \end{matrix}\right] \left[\begin{matrix} r_{11} & r_{12} \\ r_{12} & r_{22} \\ \end{matrix}\right] \left[\begin{matrix} u_1 \\ u_2 \\ \end{matrix}\right] \\ =&\frac{\partial}{\partial u}~~~ \frac{1}{2} \left[\begin{matrix} u_1 r_{11} + u_2 r_{12} & u_1 r_{12} + u_2 r_{22} \\ \end{matrix}\right] \left[\begin{matrix} u_1 \\ u_2 \\ \end{matrix}\right] \\ =&\frac{\partial}{\partial u}~~~ \frac{1}{2} \left[\begin{matrix} u_1^2 r_{11} + u_1 u_2 r_{12} + u_1 u_2 r_{12} + u_2^2 r_{22} \\ \end{matrix}\right] \\ =&\left[\begin{matrix} u_1 r_{11} + u_2 r_{12} \\ u_1 r_{12} + u_2 r_{22} \\ \end{matrix}\right] \\ =&\left[\begin{matrix} r_{11} & r_{12} \\ r_{12} & r_{22} \\ \end{matrix}\right] \left[\begin{matrix} u_1 \\ u_2 \\ \end{matrix}\right] \\ =&Ru \end{aligned}=====??u?????21?[u1??u2??][r11?r12??r12?r22??][u1?u2??]?u?????21?[u1?r11?+u2?r12??u1?r12?+u2?r22??][u1?u2??]?u?????21?[u12?r11?+u1?u2?r12?+u1?u2?r12?+u22?r22??][u1?r11?+u2?r12?u1?r12?+u2?r22??][r11?r12??r12?r22??][u1?u2??]Ru?
??uλTBu=BTλ\frac{\partial}{\partial u}~~~ \lambda^T B u = B^T \lambda?u?????λTBu=BTλ
??u[λ1λ2][b1b2]u=??u(λ1b1+λ2b2)u=λ1b1+λ2b2=BTλ\begin{aligned} & \frac{\partial}{\partial u}~~~ \left[\begin{matrix} \lambda_1 & \lambda_2 \\ \end{matrix}\right] \left[\begin{matrix} b_1 \\ b_2 \\ \end{matrix}\right] u \\ =&\frac{\partial}{\partial u}~~~ (\lambda_1 b_1 + \lambda_2 b_2)u \\ =&\lambda_1 b_1 + \lambda_2 b_2 \\ =&B^T \lambda \end{aligned}===??u?????[λ1??λ2??][b1?b2??]u?u?????(λ1?b1?+λ2?b2?)uλ1?b1?+λ2?b2?BTλ?
求正則方程時有
??λλTAx=Ax\frac{\partial}{\partial \lambda}~~~ \lambda^T A x = A x?λ?????λTAx=Ax
??λλTBu=Bu\frac{\partial}{\partial \lambda}~~~ \lambda^T B u = B u?λ?????λTBu=Bu
??λ[λ1λ2][b1b2]u=??λ(λ1b1u+λ2b2u)=[b1ub2u]=Bu\begin{aligned} & \frac{\partial}{\partial \lambda}~~~ \left[\begin{matrix} \lambda_1 & \lambda_2 \\ \end{matrix}\right] \left[\begin{matrix} b_1 \\ b_2 \\ \end{matrix}\right] u \\ =&\frac{\partial}{\partial \lambda}~~~ (\lambda_1 b_1 u + \lambda_2 b_2 u ) \\ =& \left[\begin{matrix}b_1 u \\ b_2 u \end{matrix}\right] \\ =&B u \end{aligned}===??λ?????[λ1??λ2??][b1?b2??]u?λ?????(λ1?b1?u+λ2?b2?u)[b1?ub2?u?]Bu?
??x12xTQx=Qx\frac{\partial}{\partial x}~~~ \frac{1}{2} x^T Q x = Q x?x?????21?xTQx=Qx
??xλTAx=ATλ\frac{\partial}{\partial x}~~~ \lambda^T A x = A^T \lambda?x?????λTAx=ATλ
總結
以上是生活随笔為你收集整理的【数理知识】二次型求导 矩阵求导的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Matlab】求解黎卡提 Riccat
- 下一篇: 【Matlab】dde23解时滞时延微分