Einführung
Heute kümmern wir uns um den Fluch der Linearalgebra-Studenten im ersten Jahr: Matrix-Bestimmtheit! Anscheinend hat dies noch keine Herausforderung. Also los geht's:
Eingang
- A symmetrische Matrix in jedem geeigneten Format (Sie können natürlich auch nur den oberen oder unteren Teil der Matrix nehmen) A
- Optional: die Größe der Matrix
Was ist zu tun?
Die Herausforderung ist einfach: Bei einer reellen Matrix entscheidet die Matrix, ob sie positiv und definitiv ist, indem sie einen Wahrheitswert ausgibt, wenn ja, und einen Falschwert, wenn nicht.
Sie können davon ausgehen, dass Ihre eingebauten Funktionen tatsächlich präzise funktionieren, und müssen daher keine numerischen Probleme berücksichtigen, die zu einem falschen Verhalten führen könnten, wenn die Strategie / der Code "nachweislich" das richtige Ergebnis liefern sollte.
Wer gewinnt?
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes (pro Sprache)!
Was ist überhaupt eine positiv-definite Matrix?
Es gibt anscheinend 6 äquivalente Formulierungen, wenn eine symmetrische Matrix positiv definit ist. Ich werde die drei einfacheren reproduzieren und Sie für die komplexeren auf Wikipedia verweisen .
- Wenn dann ist positiv-definit. Dies kann wie folgt : Wenn für jeden Nicht-Null-Vektor das (Standard-) Punktprodukt von und positiv ist, dann ist positiv bestimmt.
- Sei die Eigenwerte von , wenn jetzt (das ist alles Eigenwerte sind positiv) dann ist positiv-definit. Wenn Sie nicht wissen, um welche Eigenwerte es sich handelt, sollten Sie dies mit Ihrer bevorzugten Suchmaschine herausfinden, da die Erklärung (und die erforderlichen Berechnungsstrategien) zu lang ist, um in diesem Beitrag enthalten zu sein.A ∀ i ∈ { 1 , … , n } : λ i > 0 A
- Wenn die Cholesky-Zerlegung von existiert, dh es existiert eine untere Dreiecksmatrix , so daß , dann ist positiv definit. Beachten Sie, dass dies einer vorzeitigen Rückgabe von "false" entspricht, wenn die Berechnung der Wurzel während des Algorithmus an einem beliebigen Punkt aufgrund eines negativen Arguments fehlschlägt.
Beispiele
Für wahrheitsgemäße Ausgabe
Für Falschgeldausgabe
(mindestens ein Eigenwert ist 0 / positives Semi-Definit)
(Eigenwerte haben unterschiedliche Vorzeichen / unbestimmt)
(alle Eigenwerte kleiner als 0 / negativ definitiv)
(alle Eigenwerte kleiner als 0 / negativ definitiv)
(alle Eigenwerte kleiner als 0 / negativ definitiv)
(drei positive, ein negativer Eigenwert / unbestimmt)