Verbesserung einer schlecht konditionierten Matrix
Ich habe eine schlecht konditionierte Matrix, derenrcond()
nahe Null ist und daher die Umkehrung dieser Matrix nicht als korrekt herauskommt. Ich habe versucht mitpinv()
aber das löst das problem nicht. So nehme ich das Gegenteil:
X = (A)\(b);
Ich suchte nach einer Lösung für dieses Problem und fanddieser Link (letzte Lösung) zur Verbesserung der Matrix. Die dortige Lösung schlägt vor, dies zu verwenden:
A_new = A_old + c*eye(size(A_old));
Woherc > 0
. Bisher funktioniert diese Technik bei der Herstellung der MatrixA
besser konditioniert und die resultierende Lösung sieht besser aus. Ich untersuchte jedoch mit unterschiedlichen Werten vonc
und die resultierende Lösung hängt vom gewählten Wert abc
.
Anders als manuell nach dem Wert von suchenc
Gibt es einen automatischen Weg, durch den ich den Wert von finden kann?c
wofür bekomme ich die beste lösung?