Poprawianie źle kondycjonowanej macierzy
Mam źle kondycjonowaną matrycę, którejrcond()
jest bliski zeru, a zatem odwrotność tej macierzy nie jest poprawna. Próbowałem użyćpinv()
ale to nie rozwiązuje problemu. W ten sposób biorę odwrotność:
X = (A)\(b);
Szukałem rozwiązania tego problemu i znalazłemten link (ostatnie rozwiązanie) do ulepszenia matrycy. Rozwiązanie sugeruje użycie tego:
A_new = A_old + c*eye(size(A_old));
Gdziec > 0
. Do tej pory zastosowanie tej techniki działa w tworzeniu matrycyA
lepiej kondycjonowany, a uzyskane rozwiązanie wygląda lepiej. Jednak zbadałem przy użyciu różnych wartościc
a wynikowe rozwiązanie zależy od wartości wybranychc
.
Inne niż ręczne badanie wartościc
, czy istnieje automatyczny sposób, dzięki któremu mogę znaleźć wartośćc
za co otrzymuję najlepsze rozwiązanie?