Vektor-Bündel aus den eingeschlossenen Winkeln berechnen

Neue Frage »

Lampe16 Auf diesen Beitrag antworten »
Vektor-Bündel aus den eingeschlossenen Winkeln berechnen
Zu 6 gegebenen Winkeln sollen 4 Vektoren ermittelt werden, die paarweise die 6 Winkel einschließen, a) in R3, b) in R4.

Ich habe mich davon überzeugt, dass die Aufgabe in beiden Dimensionen nicht für jedes Winkelsextett lösbar ist. Kann man Bedingungen für die Winkel angeben, bei denen die Aufgabe lösbar ist, ohne die Vektoren tatsächlich numerisch zu suchen?

Grüße
Lampe16
URL Auf diesen Beitrag antworten »
RE: Vektor-Bündel aus den eingeschlossenen Winkeln berechnen
Man kann für den Einstieg den Fall betrachten, dass vier Einheitsvektoren gesucht sind. Zusammen mit den Winkeln ist dann die Gramsche-Matrix der vier Vektoren vorgegeben.
Man kommt also zu der Frage, wann eine gegebene Matrix eine Gramsche ist und wie man dazu passende Vektoren finden kann. Positive Semidefinitheit ist eine notwendige Bedingung. Siehe auch hier
Lampe16 Auf diesen Beitrag antworten »

Die Gramsche-Matrix motiviert dazu, aus vorgegebenen Vektoren die Winkel zwischen den Vektorpaaren auszurechnen. Wenn ich die Winkel dann vorgebe, habe ich ein lösbares Problem. Meines ist das Umkehrproblem. Mit vorgegebenen Vektoren habe ich schon ohne Gramsche-Matrix geübt. Die Winkel finde ich dann auch wieder.
URL Auf diesen Beitrag antworten »

Unter dem angegebenen Link steht doch, wie man von der Gramschen zu passenden Vektoren kommen kann. verwirrt
Lampe16 Auf diesen Beitrag antworten »

Danke URL für den Link auf "Finding a vector realization". Jetzt kann ich meine dubiosen numerischen Rechnungen (mehr Unbekannte als Gleichungen) durch simple Matrixoperationen ersetzen.
HAL 9000 Auf diesen Beitrag antworten »

Sind eigentlich nicht nur die sechs Winkel bekannt, sondern auch noch deren genaue Zuordnung zu den Vektorpaaren? Ansonsten ist nämlich auch noch eine hässliche Permutations-Probiererei fällig (nach Abzug aller Symmetrien immerhin 60 Varianten), bis man eine positiv semidefinite 4x4-Matrix gefunden hat, die in Fall a) zudem auch noch maximal Rang 3 haben darf.
 
 
Lampe16 Auf diesen Beitrag antworten »

Nur das Winkelsexett ist bekannt.

Was ich mache, zeigt folgender Scilab-Code
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
v=0;    
alf_=[.. //Gegebene symm. Winkelmatrix/°
     0 10 14  9; 
    10  0  9 15;
    14  9  0 16;
     9 15 16  0.];
 alf_(3,4)=alf_(3,4)+v;  // v für Varianten
 alf_(4,3)=alf_(4,3)+v 
 alf=alf_*%pi/180;   
               
 G=cos(alf) //Kandidat für Gramsche Matrix
 B=sqrtm(G) // Vektorrealisierung, falls M gramsch ist 

 Grek=B'*B // etwaige Rekonstruktion von G
 alf_rek=acos(Grek)*180/%pi //
 realalf_rek=real(alf_rek)

Das Ganze hat den Hintergrund, dass es in der Elektrotechnik eine Definition der Blindleistung gibt, die Produktmittelwerte von periodischen Zeitfunktionen auf Skalarprodukte von n-dimensionalen Vektoren abbildet. In das Thema arbeite ich mich gerade ein.
HAL 9000 Auf diesen Beitrag antworten »

Ich denke nicht, dass "sqrtm" die beste Idee ist, zumindest nicht für Teilaufgabe a):

Du bekommst damit ebenfalls wieder eine positive semidefinite Matrix , dabei benötigst du die Symmetrie der Matrix gar nicht. Dafür taucht ein anderes Problem auf, eben in a):

Selbst wenn es tatsächlich vier Vektoren aus gibt mit dieser Winkelmatrix, so liefert dein Verfahren lediglich Vektoren aus . Wird wohl so sein, dass die vier Vektoren dann in einer dreidimensionalen Hyperebene des liegen, d.h., die müsste man dann noch geeignet drehen, dass eine Komponente identisch 0 wird.

M.E. kann man sich diesen Zusatzaufwand ersparen, wenn man für statt sqrtm die transponierte Cholesky-Zerlegung von nimmt, für die gilt ja ebenfalls . Dann ist zwar nicht symmetrisch (was wir ohnehin nicht brauchen), hat dafür aber folgende Gestalt:



Die vier Spaltenvektoren (die Einheitsvektoren sind) erfüllen dann die geforderte Winkeleigenschaft. Waren die Ausgangsvektoren nun aus dem , dann haben wir hier garantiert und können die vierte Vektorkomponente damit weglassen.


P.S.: Zu beachten ist noch, dass man eine numerisch "robuste" Implementierung der Cholesky-Zerlegung benötigt. Durch numerische Effekte kann es in a) nämlich durchaus passieren, dass ein Eigenwert der Gramschen Matrix negativ ist (zwar betragsmäßig winzig klein, aber dennoch). Die Implementierung sollte in diesem Fall dann dort Eigenwert 0 annehmen.
Lampe16 Auf diesen Beitrag antworten »

Danke HAL 9000,
du hast Recht, die Cholesky-Zerlegung ist der bessere Weg. chol() in Scilab benötigt Positiv-Definitheit von . Ohne die gibt es vermutlich keine Lösung. Und die Teilaufgabe a) ist damit auch elegant gelöst.

Bei dem Zahlenbeispiel existieren Lösungen im Bereich -3<<5.
HAL 9000 Auf diesen Beitrag antworten »

Mich erinnert das Problem an folgendes:

Zitat:
Wie simuliert man einen -dimensional normalverteilten Vektor mit vorgegebenen Mittelwertvektor sowie Kovarianzmatrix , wenn einem nur unabhängige standardnormalverteilte zur Verfügung stehen?

Eine Möglichkeit ist schlicht mit Cholesky-Zerlegung .

Für die o.g. Normalverteilung muss man positive Definitheit von fordern. Hat man hingegen nur positive Semidefinitheit der Kovarianzmatrix , d.h. mit dann für Rang , so kann man dennoch die Cholesky-Zerlegung aufstellen, die enthält dann ganz rechts Nullspalten. Was letztlich bedeutet, dass für nur noch herangezogen werden, d.h., der "Rest" nicht mehr. Der Vektor ist in diesem Fall aber nicht mehr als -dimensional normalverteilt zu bezeichnen, sondern stattdessen als -dimensional normalverteilt in einer -dimensionalen Hyperebene des .

Ok, kleine Abschweifung, wollte ich an der Stelle loswerden.
Lampe16 Auf diesen Beitrag antworten »

Das ist mindestens eine Liga höher.
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »