1) Die eigendecomposition hilft nicht wirklich viel. Es ist mit Sicherheit numerisch stabiler als eine Cholesky-Faktorisierung. Dies ist hilfreich, wenn Ihre Matrix schlecht konditioniert / nahezu singulär ist / eine hohe Konditionszahl aufweist. So können Sie die eigendecomposition verwenden und erhalten eine Lösung für Ihr Problem. Es gibt jedoch kaum eine Garantie dafür, dass es sich um die RICHTIGE Lösung handelt. Ehrlich gesagt, wenn Sie ausdrücklich Invertzucker wird der Schaden bereits geschehen. Das Bilden von X T Σ - 1 X macht die Sache nur noch schlimmer. Die eigendecomposition wird Ihnen helfen, die Schlacht zu gewinnen, aber der Krieg ist mit Sicherheit verloren.ΣXTΣ−1X
2) Ohne die Einzelheiten Ihres Problems zu kennen, würde ich dies tun. Führen Sie zunächst eine Cholesky-Faktorisierung an sodass Σ = L L T ist . Führen Sie dann eine QR-Faktorisierung an L - 1 X durch, so dass L - 1 X = Q R ist . Bitte stellen Sie sicher, dass Sie L - 1 X durch Forward-Substitution berechnen. Invertieren Sie L NICHT explizit . Dann erhalten Sie:
X T Σ - 1 X = X T ( LΣΣ=LLTL−1XL−1X=QRL−1XL
Von hier aus können Sie jede gewünschte rechte Seite lösen. Aber auch hier bitte nicht explizitR(oderRTR)invertieren. Verwenden Sie nach Bedarf Vorwärts- und Rückwärtssubstitutionen.
XTΣ−1X======XT(LLT)−1XXTL−TL−1X(L−1X)T(L−1X)(QR)TQRRTQTQTRTR
RRTR
Übrigens bin ich neugierig auf die rechte Seite Ihrer Gleichung. Du hast geschrieben, dass es . Sind Sie sicher, dass es nicht X T Σ - 1 Y ist ? Denn wenn es wäre, könnte man einen ähnlichen Trick auf der rechten Seite verwenden:
X T Σ - 1 Y = X T ( L L T ) - 1 YXTΣYXTΣ−1Y
Und dann können Sie den Coup de grâce liefern, wenn Sie nachβzu lösen gehen:
X T Σ - 1 X β = X T Σ - 1 Y R T R β = R T Q T L - 1 Y R β = Q T L - 1 Y β = R - 1 Q T L
XTΣ−1Y=====XT(LLT)−1YXTL−TL−1Y(L−1X)TL−1Y(QR)TL−1YRTQTL−1Y
β
Natürlich würden Sie niemals explizit
Rfür den letzten Schrittinvertieren, oder? Das ist nur eine Rückwärtssubstitution. :-)
XTΣ−1XβRTRβRββ====XTΣ−1YRTQTL−1YQTL−1YR−1QTL−1Y
R