我假设您的矩阵A
和B
大小相同,并且都是正方形。如果不是这种情况,请告诉我。
在这种情况下,A/B
与 是一样的A * inv(B)
。为了区分这一点,您使用正常的 Leibniz 规则进行区分,注意保持产品的顺序相同(因为矩阵乘法不会对易):
d/dx (A * inv(B)) = dA/dx * inv(B) + A * d(inv(B))/dx
如果您查看维基百科,您会发现矩阵逆的导数是
d(inv(B))/dx = -inv(B) * dB/dx * inv(B)
所以对于你得到的产品的衍生物
d/dx (A * inv(B)) = dA/dx * inv(B) - A * inv(B) * dB/dx * inv(B)
inv(B)
您可以将两边的乘法分解出来,给出
d/dx (A * inv(B)) = (dA/dx - A * inv(B) * dB/dx) * inv(B)
你现在可能想使用 Matlab 的左右除法运算符来编写表达式,给出
d/dx (A/B) = (dA/dx - (A/B) * dB/dx) / B
这是你能做到的最简洁的。通常,您不希望任何A
, B
,dA/dx
或dB/dx
相互通勤,因此您不能再简化此操作。当然,如果在您的应用程序中,您确实有某些理由认为这些矩阵中的某些矩阵将始终通勤,那么进一步的简化可能是可能的。