我有两个矩阵A和B以及一个矩阵C,其中
C = A / B
现在我想采用C的衍生物
(B*dA/dx - A*dB/dx)/B^2
我不确定上面会是什么样子。我找到了一个看起来像
的地方(B/B)*((dA/dx)/B) - (A/B)*(dB/dx)/B
我很困惑我可以执行什么样的操作。我可以这样做吗
(B/B^2) * (dA/dx) - (A/B^2)*(dB/dx)
我尝试了以上两种,他们给了我不同的结果。在矩阵特别是乘法和除法的情况下,我不确定允许哪些操作。那么有人可以澄清一下吗?
答案 0 :(得分:2)
我认为您的矩阵A
和B
大小相同,并且都是正方形。如果情况并非如此,请告诉我。
在这种情况下,A/B
与A * inv(B)
相同。为了区分这一点,您可以使用正常的Leibniz规则进行区分,小心保持产品的顺序相同(因为矩阵乘法不会通勤):
d/dx (A * inv(B)) = dA/dx * inv(B) + A * d(inv(B))/dx
如果你检查Wikipedia,你会发现矩阵逆的导数是
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
中的任何一个相互通信,因此您无法再简化此操作。当然,如果在您的应用程序中做有某些原因,其中某些矩阵将始终通勤,那么可能会进一步简化。