0

私は2つの行列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)

上記の2つを試してみましたが、異なる結果が得られました。行列の場合、特に乗算と除算の場合、どの演算が許可されているかわかりません。誰でも明確にできますか?

4

1 に答える 1

2

あなたの行列ABは同じサイズで、両方とも正方形であると思います。そうでない場合は、お知らせください。

その場合、A/Bは と同じですA * inv(B)。これを区別するには、積を同じ順序に保つように注意しながら、通常のライプニッツ ルールを微分に使用します (行列の乗算は交換されないため)。

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、 、BdA/dxまたはdB/dxが相互に移動することは想定されていないため、これ以上単純化することはできません。もちろん、アプリケーションでこれらの行列の一部が常に交換される何らかの理由がある場合は、さらに単純化できる可能性があります。

于 2012-04-30T07:52:07.100 に答える