Zufällige orthonormale Matrix < Matrizen < Lineare Algebra < Hochschule < Mathe < Vorhilfe
|
Hallo zusammen,
ich möchte mir eine zufällige orthonormale Basis erzeugen. Wie würdet ihr das machen? Ich gehe bisher wie folgt vor:
Ich gehe davon aus, dass mir eine Matrix A mit vollem Rang vorgelegt wird. Auf diese wende ich eine QR-Zerelegung an. Dann sollte doch die Spalten der Matrix Q eine orthonormale Basis für die A sein, oder?
Dabei erhalte ich allerdings auch Basisvektoren mit negativen Einträgen. Wie lässt sich aus Q eine Basis formen, welche nur aus Spaltenvektoren mit pos. Elementen besteht?
|
|
|
|
>Was heißt "zufällig" bei dir? Gleichverteilt in der Menge der betreffenden Matrizen?
Mit zufällig meine ich, dass die Elemente der Matrix sich auf der Basis von Zufallszahlen ergeben, wenn man das Vorgehen so einrichtet das dabei eine Gleichverteilung auf der Menge der betreffenden Matrizen entsteht wäre das noch besser.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 18:43 Sa 04.05.2013 | Autor: | luis52 |
Moin
> Dabei erhalte ich allerdings auch Basisvektoren mit
> negativen Einträgen. Wie lässt sich aus Q eine Basis
> formen, welche nur aus Spaltenvektoren mit pos. Elementen
> besteht?
Wie soll das gehen? Wenn die Spalten orthogonal sind, *muss* es positive und negative Eintraege geben.
vg Luis
|
|
|
|
|
Warum, (1,0) und (0,1) sind doch auch orthogonal zueinander.
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 19:38 Sa 04.05.2013 | Autor: | luis52 |
> Warum, (1,0) und (0,1) sind doch auch orthogonal
> zueinander.
Du sprachst von *positiven* Elementen.
vg luis
|
|
|
|
|
Stimmt du hast recht, jetzt sehe ich es auch. Dann möchte ich die Frage so formulieren:
Wie wähle ich eine orthogonale Basis V, so dass zu einer gegebenen diagonalen Matrix D eine Matrix [mm] A=VDV^T [/mm] entsteht, wobei alle Elmente von A pos. sind?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 11:21 So 05.05.2013 | Autor: | fred97 |
> Stimmt du hast recht, jetzt sehe ich es auch. Dann möchte
> ich die Frage so formulieren:
>
> Wie wähle ich eine orthogonale Basis V, so dass zu einer
> gegebenen diagonalen Matrix D eine Matrix [mm]A=VDV^T[/mm] entsteht,
> wobei alle Elmente von A pos. sind?
Das wird i.a. nicht funktionieren ! Ist z.B. D=-E (E = Einheitsmatrix), so ist mit orthogonalem V:
[mm] A=-VV^T=-E
[/mm]
FRED
|
|
|
|
|
Falls D nur positive Werte enthält, dann sollte es funktionieren, trotzdem weiß ich nicht wie?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:20 So 05.05.2013 | Autor: | luis52 |
Moin, hier eine trial-and-error-Loesung in R:
1: | D <- diag(1:5) # 5x5 Diagonalmatrix mit 1,2,3,4,5
| 2: | A <- -1 # Initialisierung
| 3: | while (any(A<=0)){ # Suche bis alle Elemente von A >0
| 4: | X <- matrix(rnorm(500),100,5) # Eine 100x5 Zufallsdatenmatrix mit N(0,1)-Zahlen
| 5: | R <- cor(X) # Die zugehoerige Korrelationsmatrix
| 6: | sd <- eigen(R)$vector # V-Matrix aus der Spektraldarstellung von R
| 7: | A <- t(sd)%*%D%*%sd # Berechne A
| 8: | }
| 9: |
| 10: | A
| 11: | [,1] [,2] [,3] [,4] [,5]
| 12: | [1,] 2.62987987 0.5109455 0.08651464 0.01159786 1.4398459
| 13: | [2,] 0.51094546 2.6856593 0.63081064 0.82853431 0.1120414
| 14: | [3,] 0.08651464 0.6308106 4.29382897 0.05367481 0.3553041
| 15: | [4,] 0.01159786 0.8285343 0.05367481 2.37875998 0.5330633
| 16: | [5,] 1.43984595 0.1120414 0.35530405 0.53306327 3.0118719
|
vg Luis
|
|
|
|
|
Hi Luis,
diese Möglichkeit wollte ich umgehen, trotzdem danke. Weißt du evtl. was weniger rechenaufwendig ist. eigen(R) oder qr(R)?
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 15:20 Di 07.05.2013 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|