Positiv definite Matrix konstruieren...



  • Hi.

    Ich habe n Vektoren a_i (1<=i<=n) in einem (hochdimensionalen) Raum. Ich weiß von diesen Vektoren allerdings nur die Orientierung, nicht aber das Vorzeichen. Das ist im Folgenden also veränderbar. Jetzt möchte ich aus diesen Vektoren eine Matrix konstruieren, bei der die einzelnen Elemente die Skalarprodukte der Vektoren sind. Also praktisch die Matrix <a_i|a_j>. Es ist für mich wichtig, dass diese Matrix positiv definit ist, aber da das Vorzeichen der Vektoren nicht klar ist, zeigt immer irgendeiner in die falsche Richtung.

    Die Frage ist, wie man möglichst effizient herauskriegt, welche Vektoren Probleme machen bzw. wie man aus den vorgegebenen Vektoren und deren Negationen eine entsprechende Matrix konstruiert.

    Hat da jemand eine gute Idee? Es kommt für mich nicht in Frage, andauernd Determinanten von Teilmatrizen zu bestimmen. Das dauert viel zu lange. Aber es muss doch eine geschickte Möglichkeit geben, einen Vektor nach dem anderen zur Matrix hinzuzufügen und sehr schnell zu sehen, wie er sich ausgewirkt hat.

    Vielen Dank schonmal für alle guten Ideen und Denkanstöße! 😋



  • Gregor schrieb:

    Also praktisch die Matrix <a_i|a_j>

    Ist das nicht Physiker-Notation für aiTaj? Dann ist deine Matrix doch ATA, wobei A = (a1 ... an), oder nicht? Die ist, falls A nichtsingulär ist, immer positiv definit. Falls nicht, wird sie es auch nicht mit Vorzeichenumdrehen.

    edit: Voraussetzung ist natürlich, dass die ai linear unabhängig sind, sonst wird die Matrix nur positiv semidefinit. Daran kannst du aber durch Vorzeichenwechsel nichts ändern.



  • Oh, ups. Danke, das hilft mir schon. Dann ist da wohl ein Fehler in meinem Code.



  • Ich hätte im ersten Moment genauso wie bashar geantwortet. Aber:

    nach der Konstruktion <a_i|a_j> ist das Ergebnis eine n x n matrix. Das Ding hat also nur vollen Rang, wenn a_i mindestens n-dimensional ist.



  • otze, siehe mein Edit.


Anmelden zum Antworten