- Hauptachsentransformation
-
Die Hauptachsentransformation (HAT) ist ein Verfahren aus der linearen Algebra, um Gleichungen für sogenannte Hyperflächen zweiter Ordnung in einer Normalform darstellen und so klassifizieren zu können. In der theoretischen Physik werden Hauptachsentransformationen hauptsächlich zur Diagonalisierung einer Matrix verwendet, wie im Abschnitt „Anwendung“ näher beschrieben.
Als Hyperfläche werden allgemein geometrische Objekte bezeichnet, deren Dimension um genau eins geringer ist als die Dimension des Raumes, in dem sie dargestellt werden. So ist eine Ebene, deren mathematische Dimension 2 ist, im dreidimensionalen („euklidischen“) Raum unserer Anschauung eine Hyperfläche, ebenso wie eine Kurve mit Dimension 1 in einem zweidimensionalen Raum (beispielsweise auf einem Blatt Papier). Eine Hyperfläche zweiter Ordnung (oder zweiten Grades) ist eine Hyperfläche, in deren Bestimmungsgleichung die Variablen höchstens in der zweiten Potenz auftreten. Im zweidimensionalen Raum entsprechen die Hyperflächen zweiter Ordnung den Kegelschnitten.
Inhaltsverzeichnis
Vorgehen
Die allgemeine Gleichung einer Hyperfläche lautet in euklidischen Räumen:
- im ,
- im
- sowie im
Theoretisch können Hauptachsentransformationen auch in unitären Räumen mit hermiteschen Matrizen über dem Körper der komplexen Zahlen durchgeführt werden, doch zur Vereinfachung und aus Gründen der Anschaulichkeit wird im Folgenden auf die analogen Vorgänge nicht eingegangen werden.
Um die Hyperflächen, die durch die obigen Gleichungen dargestellt werden, alleine anhand ihrer Bestimmungsgleichungen klassifizieren zu können (eine graphische Darstellung ist nur bis in die dritte Dimension sinnvoll möglich), müssen die Gleichungen in eine der drei folgenden Normalformen überführt werden:
- , jeweils mit
zi sind dabei die Koordinaten des gewählten Koordinatensystems, βi allgemeine reelle Koeffizienten und αi reelle Koeffizienten ungleich Null. n ist die Dimension des Raums, in dem die Fläche dargestellt wird.
Die Umrechnung in Normalform erfolgt durch Verschieben und Drehen der Koordinatenachsen, also eine Transformation des Koordinatensystems.
Zur Vereinfachung der allgemeinen Gleichungen werden diese häufig zunächst mit Hilfe der symmetrischen Matrix in eine Matrizengleichung umgeschrieben:
- mit
Ausmultipliziert in Summenschreibweise lautet die vorhergehende Gleichung:
Je nach den Werten der Elemente aij der Matrix A treten die Koordinaten also in quadratischer, einfacher sowie in untereinander gemischter Form auf. Da A per definitionem eine symmetrische Matrix ist, gilt: aij = aji, jedes Koordinatenpaar tritt in der Summe der gemischten Terme also nur einmal auf.
Anhand der Elemente von A können an dieser Stelle bereits gewisse Aussagen über das Ergebnis der Klassifizierung getroffen werden: Sind diese so beschaffen, dass A nicht den vollen Rang n hat, so kann die Gleichung nur auf die Normalformen (2) oder (3) zurückgeführt werden, ist rg(A) jedoch gleich n, so ist die vorliegende Gleichung eine Variation von Gleichung (1).
Drehung
Zunächst muss die Drehung des Objekts zum gewöhnlichen (Ziel-)Koordinatensystem, die durch die gemischten Terme aijxixj mit beschrieben wird, eliminiert werden, also alle aij für gleich 0 sein. Die Matrix A muss dazu mit einer geeigneten Transformation in eine Diagonalmatrix umgewandelt werden, das heißt, alle Werte, die nicht auf der Hauptdiagonale der neuen Matrix liegen, müssen gleich 0 sein.
Da A eine symmetrische Matrix ist, existiert ein voller Satz von Eigenvektoren und damit eine orthogonale Matrix Q, deren Spalten die normierten Eigenvektoren von A sind. Es gilt mit Q − 1 = QT aus dem Spektralsatz:
Die Matrix ist dabei eine Diagonalmatrix mit den Eigenwerten von A auf der Hauptdiagonale.
Zunächst müssen also die Eigenwerte λi sowie die zugehörigen Eigenvektoren vi von A bestimmt und aus diesen die Matrizen D und Q zusammengesetzt werden. Wenn in der Bestimmungsgleichung keine einfachen Potenzen von xi existieren, also die letzte Summe in der ausmultiplizierten Matrixgleichung (und damit die Verschiebung des Objekts) gleich 0 ist, wird die Matrix Q nicht benötigt und die Berechnung der Eigenvektoren kann ausgelassen werden.
Setzt man nun in obiger Matrixgleichung A = QDQT ein und definiert y: = QTx und cT: = bTQ, erhält man
Damit kommen die (neuen) Koordinaten yi nur noch in einfacher und quadratischer, aber nicht mehr in gemischter Form vor, die Hyperfläche wurde gedreht.
Verschiebung
Nun muss noch eine mögliche Parallelverschiebung des Objekts zum Ursprung des Koordinatensystems beseitigt werden. Dazu wird zunächst die Gleichung der gedrehten Hyperfläche ausmultipliziert:
Sind einer oder mehrere Eigenwerte λi gleich null, fallen die entsprechenden Terme von aus der Gleichung heraus. Im Folgenden ist also .
Anschließend gruppiert man nach den Basisvektoren yi und bringt die einzelnen Klammern durch affine Substitution (z. B. quadratische Ergänzung) in quadratische Form. Die Klammern sind die Basisvektoren zi des neuen, verschobenen Koordinatensystems:
wobei wegen der quadratischen Ergänzung ist.
ist die sogenannte Signumfunktion, die das Vorzeichen von x ausgibt.
Für den Fall, dass der Summand ν ungleich 0 ist, wird dieser nun auf 1 normiert, das heißt, die ganze Gleichung wird durch den Betrag von ν geteilt. Diese ist nun – je nach Rang der Matrix A – auf eine der drei oben genannten Normalformen zurückgeführt.
Klassifizierung
Anhand der Normalform kann nun eine Klassifizierung der Hyperfläche vorgenommen werden: Jede beliebige Quadrik kann durch Wahl eines kartesischen Koordinatensystems im zwei- bzw. dreidimensionalen Raum auf genau eine der genannten Formen, ihre euklidische Normalform gebracht werden. Lässt man ein beliebiges affines Koordinatensystem zu, dann lassen sich zwei Quadriken, die zum selben Typ gehören – bezüglich eines jeweils für die Quadrik gewählten affinen Koordinatensystems – sogar durch dieselbe Gleichung beschreiben. Man spricht dann von der affinen Normalform der Quadrik und kann in den euklidischen Normalformen, die in den folgenden Tabellen genannt sind, α = β = γ = δ = 1 wählen. Zwei verschiedene Quadriken lassen sich allerdings im allgemeinen nicht bezüglich desselben kartesischen bzw. affinen Koordinatensystems auf ihre jeweilige euklidische bzw. affine Normalform bringen.
Eine einfache Folgerung dieses Sachverhalts:
- Zwei Quadriken können als Punktmengen durch eine Affinität der Ebene bzw. des dreidimensionalen Raumes bijektiv aufeinander abgebildet werden, wenn sie zum gleichen Typ gehören.
Diese Folgerung ist insofern schwächer als die Aussagen über affine Normalformen, als die unterschiedlichen Typen von „leeren“ Quadriken durch jede bijektive Abbildung des Raumes als Punktmengen ineinander überführt werden.
Im R²
Im zweidimensionalen Raum gibt es zehn verschiedene Typen von Hyperflächen zweiter Ordnung (beziehungsweise von Kegelschnitten). Zwei von ihnen sind leere Mengen, die zugehörigen Gleichungen können im Bereich der reellen Zahlen nicht gelöst werden. Eine Lösung in den komplexen Zahlen ist möglich, aber nicht bildlich darstellbar.
Normalform Kurventyp rg(A) Bild Normalform Kurventyp rg(A) Bild Ellipse (mit Halbachsen α und β) 2 zwei parallele Geraden 1 Hyperbel (mit Halbachsen α und β) 2 leere Menge 1 leere Menge 2 Parabel 1 Punkt (0,0) 2 Doppelgerade (y-Achse) 1 zwei sich schneidende Geraden 2 allgemeine Gerade 0 Im R³
Im dreidimensionalen Raum gibt es 18 Typen von Hyperflächen zweiten Grades, wobei den Flächen mit rg(A)<3 deutlich die „Verwandtschaft“ mit den entsprechenden Flächen im zweidimensionalen Raum angesehen werden kann. Hier gibt es drei Formen der Gleichung, die nur in den komplexen Zahlen gelöst werden können, darunter die beiden Gleichungen, die bereits im R² leere Mengen darstellen.
Normalform Flächentyp rg(A) Bild Normalform Flächentyp rg(A) Bild Ellipsoid (mit Halbachsen α, β und γ) 3 hyperbolischer Zylinder 2 leere Menge 3 leere Menge 2 einschaliges Hyperboloid 3 Gerade (z-Achse) 2 zweischaliges Hyperboloid 3 Ebenenpaar mit Schnittgerade (z-Achse) 2 Punkt (0,0,0) 3 x2 − α2 = 0 paralleles Ebenenpaar 1 elliptischer Kegel 3 x2 + α2 = 0 leere Menge 1 elliptisches Paraboloid 2 x2 − δz = 0 parabolischer Zylinder 1 hyperbolisches Paraboloid 2 x2 = 0 Ebene (y-z-Ebene) 1 elliptischer Zylinder 2 κx + λy + μz + ν = 0 allgemeine Ebene 0 Siehe #Code zur Visualisierung zur Visualisierung.
Anwendung
Neben der rein mathematisch-geometrischen Bedeutung der Hauptachsentransformation zur Bestimmung des Typs von Hyperflächen zweiter Ordnung wird sie in zahlreichen Disziplinen der theoretischen Physik sowie in der Informatik und den Geowissenschaften eingesetzt.
In der theoretischen Physik in der klassischen Mechanik wird die Hauptachsentransformation zur Beschreibung der Kinematik starrer Körper verwendet: Hier können über eine Hauptachsentransformation des Trägheitstensors, der die Trägheiten des Körpers bezüglich Drehungen um verschiedene Achsen angibt, eventuell – zum Beispiel bei einem Kreisel – vorhandene Deviationsmomente zum Verschwinden gebracht werden.
Ein Deviationsmoment ist ein Maß für das Bestreben eines starren Körpers, seine Drehachse zu verändern. Deviationsmomente werden mit den Trägheitsmomenten in Trägheitstensoren zusammengefasst, wobei die Trägheitsmomente sich auf der Hauptdiagonalen des Tensors, die Deviationsmomente auf den Nebendiagonalen befinden. Wie oben gezeigt, kann der symmetrische Trägheitstensor auf eine Diagonalform gebracht werden. Die durch die Hauptachsentransformation festgelegten Achsen des neuen, angepassten Koordinatensystems bezeichnet man als Hauptträgheitsachsen, das neue Koordinatensystem als Hauptachsensystem. Die Diagonalelemente des transformierten Tensors werden konsequent Hauptträgheitsmomente genannt.
Anschaulich fallen nach einer Hauptachsentransformation bei symmetrisch gebauten Körpern die Koordinatenachsen des Hauptachsensystems mit dem Symmetrieachsen des starren Körpers zusammen, gemischte Terme verschwinden also aus der Gleichung.
Auch in weiteren Teilgebieten der klassischen Mechanik wird die Hauptachsentransformation eingesetzt, so zum Beispiel in der Festigkeitslehre zur Berechnung der Hauptspannungen, die auf einen Körper einwirken. Häufig angewandt werden Hauptachsentransformationen weiterhin in der relativistischen Mechanik zur Basisdarstellung der Raumzeit im vierdimensionalen Minkowski-Raum.
Außerdem ist die Hauptachsentransformation ein Teil der Karhunen-Loève-Transformation, die vor allem in der Bildverarbeitung auch als Hauptkomponentenanalyse bezeichnet wird. Manchmal werden die Begriffe synonym gebraucht, doch sind beide Transformationen nicht identisch.[1]
Praktisch wird die Hauptachsentransformation als Teil der Hauptkomponentenanalyse dazu verwendet, die Größe umfangreicher Datensätze ohne wesentlichen Datenverlust zu vermindern. Dabei werden vorhandene Beziehungen zwischen einzelnen statistischen Variablen durch Überführung in ein neues, linear unabhängiges problemangepasstes Koordinatensystem so weit wie möglich reduziert. Beispielsweise kann die Anzahl der benötigten Signalkanäle verringert werden, indem diese nach Varianz geordnet und die Kanäle geringster Varianz gegebenenfalls ohne relevanten Datenverlust aus dem Datensatz entfernt werden. Dadurch können Effizienz und Ergebnis einer späteren Analyse der Daten verbessert werden.[2]
In der elektronischen Bildverarbeitung wird die Reduktion der Datensatzgröße durch Hauptkomponentenanalysen besonders in der Fernerkundung durch Satellitenbilder sowie den zugehörigen naturwissenschaftlichen Disziplinen der Geodäsie, Geographie, Kartografie und Klimatologie eingesetzt. Hier kann die Qualität der Satellitenaufnahmen durch Unterdrückung des Rauschens mittels Hauptkomponentenanalyse deutlich verbessert werden.[3]
In der Informatik wird die Hauptachsentransformation vor allem bei der Mustererkennung und in der neuronalen Netztheorie, also der Schaffung künstlicher neuronaler Netze, einem Teilgebiet der künstlichen Intelligenz, zur Datenreduktion angewandt.[3][4]
Beispiel
Gegeben sei die Gleichung
Mittels Hauptachsentransformation soll diese Gleichung nun in eine Normalform überführt werden und der Typ der durch die Gleichung dargestellten Hyperfläche bestimmt werden.
In Matrizenschreibweise lautet die Gleichung:
Der Rang von A ist gleich 3, das heißt, die Matrix hat vollen Rang und die diskutierte Gleichung ist eine Variation von Gleichung (1). Die Eigenwerte von A sind λ1 = − 1 mit algebraischer Vielfachheit 1 und λ2,3 = 2 mit algebraischer Vielfachheit 2; die zugehörigen Eigenvektoren lauten:
Noch stellen v1, v2 und v3 keine Orthonormalbasis des Vektorraums dar, da nur Eigenvektoren zu verschiedenen Eigenwerten senkrecht aufeinander stehen, v2 und v3 sind jedoch Eigenvektoren zum gleichen Eigenwert. Wir müssen daher die Vektoren mittels eines geeigneten Verfahrens – beispielsweise des Gram-Schmidtschen Orthogonalisierungsverfahrens – zunächst orthogonalisieren und anschließend ihre Beträge auf 1 normieren. Wir erhalten dann:
Nun werden die Matrizen Q und D aus den Eigenvektoren und Eigenwerten von A zusammengesetzt:
Es ergibt sich für die gedrehte Hyperfläche mit Gruppierung nach den Basisvektoren x', y' und z’ sowie quadratischer Ergänzung:
Oder transformiert in Basisvektoren x″, y″ und z″:
Die Gleichung beschreibt also einen elliptischen Kegel. In diesem speziellen Fall sind die beiden Halbachsen der Kegelgrundfläche (beschrieben durch die Vorfaktoren zu y''2 und z''2) gleich groß, es handelt sich also um einen Kreiskegel.
Code zur Visualisierung
MATLAB
%p = impl3('x^2+y^2/2+z^2/3-1=0'); %p = impl3('x^2+y^2-z^2-1=0',20); %p = impl3('x^2+y^2-z^2+1=0',20); %p = impl3('x^2+y^2-z^2=0',20); %p = impl3('x^2+y^2/2-z=0',20); %p = impl3('x^2-y^2/2-z=0',20); %p = impl3('x^2+y^2/2-1=0',30); %p = impl3('x^2-y^2-1=0',20); %p = impl3('x^2-y^2=0'); %p = impl3('x^2-1=0',20); %p = impl3('x^2-z=0',30); p = impl3('x-y+z+1=0',20); [n,m] = size(get(p, 'Vertice')); set(p, 'FaceColor', 'flat'); set(p, 'CData', linspace(0,255,n)); %print -dpng ellipsoid.png; %print -dpng einsch_hyp.png; %print -dpng zweisch_hyp.png; %print -dpng ell_keg.png; %print -dpng ell_par.png; %print -dpng hyp_par.png; %print -dpng ell_zyl.png; %print -dpng hyp_zyl.png; %print -dpng ebenenp_ger.png; %print -dpng ebenenp_par.png; %print -dpng par_zyl.png; print -dpng allg_ebene.png;
%IMPL3 3-D plot of implicit defined functions. % IMPL3(FUN_STR) plots the function FUN_STR as patched isosurface. % % IMPL3(FUN_STR, N) plots the function over the default domain using % an N-by-N grid. The default value is 60. % % IMPL3(FUN) plots the function FUN(X,Y,Z)=0 as patched isosurface. % % IMPL3(FUN, C) plots the function FUN(X,Y,Z)=C as patched isosurface. % % An implicit function is defined this way: % FUN_STR(X,Y,Z) = C, where C is a constant % FUN(X,Y,Z) = C % % IMPL3 returns the patch object (handle to surface plot object?). % % Notes: % A way to improve speed is to use 'pcode impl3' once. % One programming technique is to vectorize the string expression, look % at EZSURF for more information. In EZSURF this is optional but here it % is needed, thus the operators are converted. % % Example: % impl3('X.^2+Y.^2-Z.^2-5=0'); % impl3('x^2+y^2-z^2-5=0'); % % See also quadr, patch, isosurface, isonormals, view, ndgrid, pcode. % % (implemented by usoler@student.ethz.ch - 20080530 - with special % thanks to Michael!) function [p] = impl3(fun_str, varargin) ip = inputParser; % Create an instance of the class. if ischar(fun_str) ip.addRequired('fun_str', @ischar); % validated by 'ischar' ip.addOptional('n', 60); % no validator ip.parse(fun_str, varargin{:}); n = ip.Results.n; fun_str = regexprep(fun_str, 'x', 'X'); fun_str = regexprep(fun_str, 'y', 'Y'); fun_str = regexprep(fun_str, 'z', 'Z'); fun_str = regexprep(fun_str, '\.\*', '\*'); fun_str = regexprep(fun_str, '\.\/', '\/'); fun_str = regexprep(fun_str, '\.\^', '\^'); fun_name = fun_str; fun_str = regexprep(fun_str, '\*', '\.\*'); fun_str = regexprep(fun_str, '\/', '\.\/'); fun_str = regexprep(fun_str, '\^', '\.\^'); i = strfind(fun_str,'='); c = eval(fun_str((i+1):end)); fun = fun_str(1:(i-1)); fun = inline(fun, 'X', 'Y', 'Z'); else ip.addRequired('fun'); % no validator ip.addOptional('c', 0); % no validator ip.parse(fun_str, varargin{:}); c = ip.Results.c; fun = fun_str; fun_name = func2str(fun); n = 60; end [Y,X,Z] = ndgrid(linspace(-5,5,n),linspace(-5,5,n),linspace(-5,5,n)); V = fun(X,Y,Z); p = patch(isosurface(X,Y,Z,V,c)); isonormals(X,Y,Z,V,p); set(p,'FaceColor','b','EdgeColor','k','FaceAlpha',0.5); grid on; view(3); title(fun_name); end
Octave
Eine mit MATLAB vergleichbare Qualität liefert die Verwendung von Octaviz. Durch die Einbindung von VTK ist eine professionelle Darstellung von Oberflächen möglich.
Maple
Im Computeralgebrasystem Maple können implizit gegebene Hyperflächen zweiter Ordnung folgendermaßen graphisch dargestellt werden:
plots[implicitplot3d](-x^2+2*y^2+2*z^2=0,x=-20..20,y=-15..15,z=-15..15,axes=boxed,grid=[40,40,40],orientation=[-45,60],shading=z);
Die Flächen sind dabei etwas unüblich aus unterschiedlich geformten Teilflächen zusammengesetzt und erreichen (je nach Einstellung des Grid) dieselbe Qualität wie Matlab oder Octave.
Literatur
- W. Nolting: Grundkurs Theoretische Physik 1: Klassische Mechanik. 7. Auflage. Springer, Berlin 2004, ISBN 3-540-21474-7
- T. Fließbach: Mechanik. 2. Auflage. Spektrum, Heidelberg 1996, ISBN 3-86025-686-6
- W. Greiner: Theoretische Physik Band 2. Mechanik Teil 2. 5. Auflage. Harri Deutsch, Thun / Frankfurt am Main,1989, ISBN 3-8171-1136-3
Einzelnachweise
- ↑ vgl. Skript Mustererkennung, Kap. 5.2: Karhunen-Loeve-Transformation. (PDF) Laboratorium für Nachrichtenverarbeitung, Universität Hannover
- ↑ Gesellschaft für Datenanalyse und Fernerkundung Hannover
- ↑ a b Probabilistische Hauptachsentransformation zur generischen Objekterkennung. (Postscript) Diplomarbeit im Fach Informatik, Friedrich-Alexander-Universitat Erlangen-Nürnberg
- ↑ Neuronale Netze. (PDF) Heinrich-Heine-Universität Düsseldorf
Wikimedia Foundation.