Cva,Svd < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Betrachten Sie eine Punktwolke [mm] (x_i, y_i), [/mm] i = 1,...,n im [mm] \IR^2, [/mm] wobei n die Anzahl der Punkte beschreibt. Schreiben Sie ein Matlab-Programm zur Bestimmung von Vektoren s und c in [mm] \IR^2 [/mm] mittels der Hauptkomponentenanalyse so, dass die Menge c + span(s)
die Punktewolke bestmöglichst repräsentiert.
Die Matlab-Routine soll zunächst die Punktewolke mittels Mittelwertbildung (c := [mm] \bruch{1}{n} \summe_{i=1}^{n}\vektor{x_i \\ y_i}
[/mm]
in den Nullpunkt verschieben und dann die Singulärwertzerlegung (svd) durchführen. Gestalten Sie den Funktionsaufruf wie folgt:
function [c,s,A_center] = pca(A)
Hierbei beschreibt A die originale Punktewolke und A_center die gemittelte Punktwolke,
also
A = [mm] \pmat{ x_1 & · · · & x_n \\ y_1 & · · · & y_n }, [/mm] Acenter = [mm] \pmat{ x_1-c_1 & · · · & x_n-c_1 \\ y_1-c_2 & · · · & y_n-c_2 }
[/mm]
Binden Sie diese Routine (extern oder als subroutine) in ein Matlab-Programm ein. |
hi,
hab leider wenig punkte in programmieren, die ich jetzt nachholen muss -.-
also hab das problem wie ich span(s) berechne, nach def is S=span(s), also das S von [mm] A=USV^T [/mm] (SVD)
so jetzt versteh ich nicht wofür A_center brauche
muss ich vll dies für die zerlegung benutzen?
[U,S,V] = svd(A_center)
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 18:20 Do 04.06.2009 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|