Wann ist eine Matrix krank konditioniert ? Es kommt auf die Genauigkeit der gesuchten Lösung an, ebenso wie "Schönheit im Auge des Betrachters" ...
Vielleicht sollte Ihre Frage besser umformuliert werden, da es günstige und robuste Schätzer für Zustandszahlen gibt, die auf der L U -Faktorisierung basieren .LU
Angenommen, Sie interessieren sich für das reale allgemeine (dichte, nicht symmetrische) Problem der Doppelgenauigkeitsarithmetik, dann würde ich Ihnen die Verwendung des LAPACK-Expertenlösers DGESVX vorschlagen, der eine Bedingungsschätzung in Form seines Reziprokwerts liefert . Als Bonus haben Sie auch andere Extras wie Gleichungsausgleich / -ausgleich, iterative Verfeinerung, Vorwärts- und Rückwärtsfehlergrenzen. Eine krankhafte Konditionierung ( κ ( A ) > 1 / ϵ ) wird übrigens durch als Fehler signalisiert .RCOND≈1/κ(A)κ(A)>1/ϵINFO>0
Gehen mehr ins Detail, schätzt LAPACK die Konditionszahl in der 1-Norm (oder -Norm , wenn Sie die Lösung A T x = b ) über DGECON . Der zugrunde liegende Algorithmus wird in Abschnitt 36 beschrieben: "Robuste dreieckige Lösungen zur Verwendung bei der Zustandsschätzung" .∞ATx=b
Ich muss gestehen, dass ich kein Experte auf diesem Gebiet bin, aber meine Philosophie lautet: "Wenn es für LAPACK gut genug ist, ist es für mich".
Es ist fast unmöglich zu sagen, ob Ihr System von nur einem Ergebnis schlecht konditioniert ist. Solange Sie keine genauen Einblicke in das Verhalten Ihres Systems haben (dh wissen, welche Lösung es sein SOLLTE), können Sie nicht viel zu einer einzelnen Lösung sagen.
Allerdings können Sie mehr Informationen erhalten, wenn Sie mehr als ein System mit demselben lösen . Angenommen, Sie haben ein System der Form A x = b . Für ein bestimmtes A, dessen Konditionierung Sie noch nicht kennen, können Sie den folgenden Test durchführen:A Ax=b
quelle