Je ne peux pas imaginer que je suis le premier à penser au problème suivant, donc je serai satisfait d'une référence (mais une réponse complète et détaillée est toujours appréciée):
Disons que vous avez une symétrique définie positive . n est considéré comme très grand, donc garder Σ en mémoire est impossible. Vous pouvez cependant évaluer Σ x , pour tout x ∈ R n . Étant donné un certain x ∈ R n , vous aimeriez trouver x t Σ - 1 x .
La première solution qui vient à l'esprit est de trouver utilisant (disons) des gradients conjugués. Cependant, cela semble quelque peu inutile - vous cherchez un scalaire et dans le processus, vous trouvez un vecteur gigantesque dans R n . Il semble plus logique de trouver une méthode pour calculer directement le scalaire (c'est-à-dire sans passer par Σ - 1 x ). Je recherche ce genre de méthode.
Réponses:
Je ne pense pas avoir entendu parler d'une méthode qui fasse ce que vous voulez sans réellement résoudre .y=Σ−1x
La seule alternative que je peux offrir est si vous saviez quelque chose sur les vecteurs propres et les valeurs de . Supposons que vous saviez qu'ils sont λ i , v i , alors vous pouvez représenter Σ = V T L V où les colonnes de V sont les v i , et L est une matrice diagonale avec les valeurs propres sur la diagonale. Par conséquent, vous avez que Σ - 1 = V T L - 1 V et vous obtenez que x T Σ - 1 x =Σ λi,vi Σ=VTLV V vi L Σ−1=VTL−1V
Cela nécessiterait bien sûr que vous stockieztoutes lesvaleurs propres, c'est-à-dire une matrice V complète. Mais, s'il vous arrivait de savoir que seules quelques-unes des valeurs propres de Σ sont petites, disons le premier m , et le reste est si grand que vous pouvez négliger tous les termes avec λ - 1 i pour i > m , alors vous pouvez approximer
la source