次の式を計算する改良された方法はありますか?


8

対称行列と任意の行列X \ in \ mathbb {R} ^ {n \ times n}、およびベクトルv \ in \ mathbb {R } ^ {n \ times 1}O(n ^ 2)時間で次の式を計算することは可能ですか?YRn×nXRn×nvRn×1O(n2)

diag(XTYX)v

ここで、diag(X)は、主な対角要素がXの要素に等しく、非対角要素が0に等しいn×n行列を返します。X^ TXの転置行列です。XXTX


3
クイック備考:無用である:質問は、と等価である"とは、計算することが可能である中に?"。答えはわかりませんが、そうではないと思います。vdiag(XTYX)O(n2)
Federico Poloni、

2
私が思う、我々はの計算考慮すれば、コストを削減するには、いくつかの役割を果たしている可能性、で計算することが可能であるを次のように。しかし、を使用する場合は、誰かが私に手を貸してくれることを感謝しています。v(XTYX)vO(n2)XT(Y(Xv))diag
ジョンスミス

1
以下のために対角、製品で計算することができる時間。ベクトル積の構造が悪用される可能性はあると思いますが、疑わしいと思います。となるような時間で行列を計算できた場合、そのベクトル積は有用です。DDvO(n)ZO(n2)diag(XTYX)=XTYXZ
Geoff Oxberry 2014

このような見つけるのは難しいと思われる中に。ZO(n2)
ジョンスミス

4
私は主張する:は役に立たない。あなたは計算すること手順を使用している場合にの時間、その後も計算することができる中にの時間:すべて1のベクトルとしてを選択します。逆の減少も明らかです。vdiag(XTYX)vO(n2)diag(XTYX)O(n2)v
フェデリコポローニ2014

回答:


2

お手伝いさせていただきますが、帽子から引っ張っているだけなので間違っている場合は修正してください。

計算を拡張して、何が起こっているのかを確認できるようにします。

書きましょうA=(XTY)

したがって、すべてのについてを計算する必要がありますkaikxkiνii

およびaik=lxliylk

(diag(XTYX)v)i=klxliylkxkiνiはです。O(n3)

ここで仮説を立てましょうは対称なので、です。合計では、とに関して対称な積のみが存在します。Yylk=yklxlixkikl

したがって、(diag(XTYX)v)i=2×kl>kxliylkxkiνi+kxkiykkxkiνi

これは、倍の計算です。したがって、計算をほぼ除算できますが、は除算できません。nn(n+1)22n

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.