1) Skład eigend nie bardzo pomaga. Jest z pewnością bardziej stabilny numerycznie niż rozkład na czynniki Choleskiego, co jest pomocne, jeśli macierz jest źle uwarunkowana / prawie pojedyncza / ma wysoką liczbę warunków. Więc można użyć eigendecomposition i to daje A rozwiązanie problemu. Ale nie ma gwarancji, że będzie to PRAWIDŁOWE rozwiązanie. Szczerze mówiąc, po jawnym odwróceniu obrażenia już zostały wyrządzone. Formowanie tylko pogarsza sprawę. Skład eigend pomoże ci wygrać bitwę, ale wojna z pewnością jest przegrana.X T Σ - 1 XΣXTΣ−1X
2) Nie znając specyfiki twojego problemu, właśnie to bym zrobił. Po pierwsze, należy wykonać na czynniki Cholesky'iego o , tak że . Następnie dokonaj faktoryzacji QR na , aby . Pamiętaj, aby obliczyć stosując substytucję przód - NIE wyraźnie inwertowany . Otrzymujesz:
Odtąd możesz rozwiązać dowolną prawą stronę. Ale znowu,ΣΣ=LLTL−1XL−1X=QRL−1XL
XTΣ−1X======XT(LLT)−1XXTL−TL−1X(L−1X)T(L−1X)(QR)TQRRTQTQTRTR
R(lub ). W razie potrzeby użyj substytucji do przodu i do tyłu.
RTR
BTW, jestem ciekawa prawej strony twojego równania. Napisałeś, że to . Czy na pewno nie jest to ? Ponieważ gdyby tak było, możesz użyć podobnej sztuczki po prawej stronie:
A potem możesz podać zamach stanu, gdy pójdziesz rozwiązać :
XTΣYXTΣ−1Y β 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 - 1 Y R
XTΣ−1Y=====XT(LLT)−1YXTL−TL−1Y(L−1X)TL−1Y(QR)TL−1YRTQTL−1Y
βXTΣ−1XβRTRβRββ====XTΣ−1YRTQTL−1YQTL−1YR−1QTL−1Y
Rna ostatni krok, prawda? To tylko wsteczna zamiana. :-)