dada una matriz simétrica , y una matriz arbitraria X ∈ R n × n , y un vector v ∈ R n × 1 , ¿es posible calcular la siguiente expresión en el tiempo O ( n 2 ) ?
donde devuelve un n × n matriz con sus principales elementos diagonales iguales a los de X y los elementos fuera de la diagonal igual a 0, y X T es la transpuesta de X .
optimization
algorithms
performance
matrix
complexity
John Smith
fuente
fuente
Respuestas:
Permítame intentar ayudar, pero corríjame si me equivoco porque solo estoy sacando eso de mi sombrero:
Simplemente expandiré el cálculo para ayudar a ver lo que está sucediendo.
EscribamosA=(XTY)
entonces quieres calcular para cada i∑kaikxkiνi i
yaik=∑lxliylk
que esO(n3).(diag(XTYX)⋅v)i=∑k∑lxliylkxkiνi O(n3)
Ahora traigamos la hipótesis: como es simétrica, y l k = y k l . En la suma, solo existe el producto x l i x k i que también es simétrico con respecto a k y l .Y ylk=ykl xlixki k l
Entonces(diag(XTYX)⋅v)i=2×∑k∑l>kxliylkxkiνi+∑kxkiykkxkiνi
Eso es veces n ( n + 1 )n cálculos. Por lo tanto, puede dividir el cálculo entre casi2pero non.n(n+1)2 2 n
fuente