Cálculos de estilo de norma proyectada más rápida (forma cuadrática, matriz métrica ...)
Necesito realizar muchas evaluaciones del formulario.
X(:,i)' * A * X(:,i) i = 1...n
donde X (:, i) es un vector y A es una matriz simétrica. Ostensiblemente, puedo hacer esto en un bucle
for i=1:n
z(i) = X(:,i)' * A * X(:,i)
end
que es lento, o vectorizarlo como
z = diag(X' * A * X)
lo que desperdicia RAM de forma inaceptable cuando X tiene muchas columnas. Actualmente estoy comprometiendo en
Y = A * X
for i=1:n
z(i) = Y(:,i)' * X(:,i)
end
que es un poco más rápido / más ligero pero aún parece insatisfactorio.
Esperaba que pudiera haber algún lenguaje o truco de matlab / scilab para lograr este resultado de manera más eficiente.