假设 J = f ( y ( u ) ) J=f(y(u)) J=f(y(u)) ,已知标量复合函数对标量 的求导:
∂ J ∂ u = ∂ J ∂ y ∂ y ∂ u \frac{\partial J}{\partial u}=\frac{\partial J}{\partial y} \frac{\partial y}{\partial u} ∂u∂J=∂y∂J∂u∂y
以此类推,假设 J = f ( y → ( u → ) ) J=f(\overrightarrow{y}(\overrightarrow{u})) J=f(y (u )), y → = y 1 ( u → ) . . y m ( u → ) m × 1 \overrightarrow{y}= \begin{bmatrix} y_1(\overrightarrow{u}) \\ .\\ .\\ y_m(\overrightarrow{u})\\ \end{bmatrix}{m\times1} y = y1(u )..ym(u ) m×1, u → = u 1 . . u n n × 1 \overrightarrow{u}= \begin{bmatrix} u_1\\ .\\ .\\ u_n\\ \end{bmatrix}{n\times1} u = u1..un n×1,则标量复合函数对向量的求导(分母布局):
❌ ∂ J ∂ u → = ∂ J ∂ y → m × 1 ∂ y → ∂ u → n × m ❌ \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial J}{\partial \overrightarrow{y}}{m\times 1} \frac{\partial \overrightarrow{y}}{\partial \overrightarrow{u}}{n\times m} ❌∂u ∂J=∂y ∂Jm×1∂u ∂y n×m
可以发现矩阵的行列无法满足相乘规则,无法相乘 。
最终通过推导可以得出标量复合函数对向量的求导(分母布局)的正确形式
✅ ∂ J ∂ u → = ∂ y → ∂ u → n × m ∂ J ∂ y → m × 1 ✅ \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{y}}{\partial \overrightarrow{u}}{n\times m} \frac{\partial J}{\partial \overrightarrow{y}}{m\times 1} ✅∂u ∂J=∂u ∂y n×m∂y ∂Jm×1
例,性能指标、代价函数
状态变量 x → k + 1 = A x → k + B u → k \overrightarrow{x}{k+1}=A\overrightarrow{x}{k}+B\overrightarrow{u}{k} x k+1=Ax k+Bu k,代价函数 J = x → k + 1 T x → k + 1 J=\overrightarrow{x}^T{k+1}\overrightarrow{x}{k+1} J=x k+1Tx k+1,则根据上式可得:
∂ J ∂ u → = ∂ x → k + 1 ∂ u → k ∂ J ∂ x → k + 1 \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{x}{k+1}}{\partial \overrightarrow{u}{k}} \frac{\partial J}{\partial \overrightarrow{x}{k+1}} ∂u ∂J=∂u k∂x k+1∂x k+1∂J
其中 ∂ x → k + 1 ∂ u → k = ∂ ( A x → k + B u → k ) ∂ u → k = B T \frac{\partial \overrightarrow{x}{k+1}}{\partial \overrightarrow{u}{k}}=\frac{\partial (A\overrightarrow{x}{k}+B\overrightarrow{u}{k})}{\partial \overrightarrow{u}{k}}=B^T ∂u k∂x k+1=∂u k∂(Ax k+Bu k)=BT(向量方程对向量的求导常用特例1), ∂ J ∂ x → k + 1 = ∂ ( x → k + 1 T x → k + 1 ) ∂ x → k + 1 = 1 x → k + 1 + 1 T x → k + 1 = 2 x → k + 1 \frac{\partial J}{\partial \overrightarrow{x}{k+1}}=\frac{\partial (\overrightarrow{x}^T_{k+1}\overrightarrow{x}{k+1})}{\partial \overrightarrow{x}{k+1}}=1\overrightarrow{x}{k+1}+1^T\overrightarrow{x}{k+1}=2\overrightarrow{x}{k+1} ∂x k+1∂J=∂x k+1∂(x k+1Tx k+1)=1x k+1+1Tx k+1=2x k+1(向量方程对向量的求导常用特例2),将这两式代入上述最终可得:
∂ J ∂ u → = ∂ x → k + 1 ∂ u → k ∂ J ∂ x → k + 1 = 2 B T x → k + 1 \frac{\partial J}{\partial \overrightarrow{u}}=\frac{\partial \overrightarrow{x}{k+1}}{\partial \overrightarrow{u}{k}} \frac{\partial J}{\partial \overrightarrow{x}{k+1}}=2B^T\overrightarrow{x}_{k+1} ∂u ∂J=∂u k∂x k+1∂x k+1∂J=2BTx k+1