Seite 1 von 1

Lineare Abbildung

Verfasst: 28. Jan 2018, 16:48
von positronium
Hallo allerseits,

ich mache mir Gedanken über eine Aufgabe, die zwar ganz leicht lösbar ist, aber ich frage mich, ob das auch mit einer linearen Abbildung, mit Tensorrechnung oder anderem eleganter lösbar ist.

Es sind drei Punkte A, B und C gegeben. Diese bilden eine Seite eines Drachenvierecks - A und C liegen auf der Symmetrieachse. Zu berechnen ist entweder der vierte Eckpunkt D, der Mittelpunkt M oder ein Vektor AM, BM oder BD - ist ja dann alles leicht umrechenbar.

Den Vektor AM kann man einfach errechnen:


Wenn ich jetzt einen Vektor V=(Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz) habe, gibt es dann eine einfache Möglichkeit (so, dass aus V nicht "per Hand" die einzelnen Vektoren extrahiert werden müssen, und ich nicht für jede Variable eine Matrix brauche etc.), das Dreieck ABC des Drachenvierecks in das Dreieck ADC abzubilden?

Gruß

positronium

Re: Lineare Abbildung

Verfasst: 28. Jan 2018, 23:58
von tomS
Ich verstehe nicht genau, wo dein Problem liegt.

D resultiert aus B mittels einer Spiegelung ab AC. Schau' dir doch mal die sogenannte Spiegelungsmatrix an.

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 09:34
von ralfkannenberg
Hallo positronium,

alternativ könntest Du auch eine Koordinaten-Tranformation vornehmen, so dass die Achsen Deines Drachenvierecks gerade auf den Koordinatenachsen zu liegen kommen. Welche der beiden Du der x-Achse und der y-Achse zuordnest ist dabei egal. Den vierten Punkt findest Du nun trivial. Danach führst Du die Inversion der Koordinatentransformation durch.

Und die Koordinatentransformation ist auch einfach, da das Bild des ersten Einheitsvektors die eine Drachenachse ist und das Bild des zweiten Einheitsvektors die andere Drachenachse ist, d.h. die beiden Bilder stehen gerade in den Spalten der Koordinatentransformationsmatrix.


Freundliche Grüsse, Ralf

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 12:35
von positronium
Vielen Dank für Euere Antworten!
tomS hat geschrieben:
28. Jan 2018, 23:58
Ich verstehe nicht genau, wo dein Problem liegt.
Eigentlich ist das Problem ja nicht schwierig. Ich möchte aber gerne eine möglichst einfache Berechnung. Idealerweise mit nur einer Matrix.
tomS hat geschrieben:
28. Jan 2018, 23:58
D resultiert aus B mittels einer Spiegelung ab AC. Schau' dir doch mal die sogenannte Spiegelungsmatrix an.
Ich glaube, Du übersiehst hier etwas: Für eine Spiegelungsmatrix brauche ich nicht AC, sondern einen zu AC senkrecht stehenden Vektor in der Ebene ABC (ist ja nicht 2D).

ralfkannenberg hat geschrieben:
29. Jan 2018, 09:34
alternativ könntest Du auch eine Koordinaten-Tranformation vornehmen, so dass die Achsen Deines Drachenvierecks gerade auf den Koordinatenachsen zu liegen kommen. Welche der beiden Du der x-Achse und der y-Achse zuordnest ist dabei egal. Den vierten Punkt findest Du nun trivial. Danach führst Du die Inversion der Koordinatentransformation durch.
Das ist zwar richtig, aber ich halte das für eine recht komplizierte mehrstufige Rechnung: Erst die Drehung von AC auf z.B. die X-Achse, dann eine Drehung von B in die XY-Ebene, danach invertieren von By und schließlich für die beiden Drehmatrizen die Inversen ermitteln und in umgekehrter Reihenfolge anwenden.


Ideal fände ich, wenn ich auf V=(Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz) eine Matrix M anwenden könnte, und so V'=(Ax,Ay,Az,Dx,Dy,Dz,Cx,Cy,Cz) erhalten würde: V'=M V.
In 3D wäre eine Drehung von AB um AC um pi recht kompakt darstellbar, jedoch verkompliziert sich das deutlich, weil ich AC normieren (und mit pi multiplizieren) müsste. Auch kommen dann etliche quadratische Terme vor, was keine lineare Abbildung mehr ist:

Das in Abhängigkeit von nur V schreiben, erfordert etliche Verrenkungen: Die Vektoren aus V extrahieren, obige Matrix in einen Pseudovektor für jede Koordinate zerlegen, den Normierungsfaktor aus einem komponentenweisen Produkt V*V oder einem Tensorprodukt V x V extrahieren...
Da bin ich mit meinem Ansatz von ganz oben im Thread noch besser dran.

Ich dachte, da muss es irgend etwas einfaches geben.

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 13:26
von ralfkannenberg
positronium hat geschrieben:
29. Jan 2018, 12:35
Ich glaube, Du übersiehst hier etwas: Für eine Spiegelungsmatrix brauche ich nicht AC, sondern einen zu AC senkrecht stehenden Vektor in der Ebene ABC (ist ja nicht 2D).
Hallo positronium,

ein "Drachenviereck" ist per definitionem in einer Ebene und somit 2D. Wenn Du es in 3D einbettest ist es dort singulär.

Senkrechte kannst Du übrigens mit Hilfe von Skalarprodukt und Vektorprodukt ermitteln.

positronium hat geschrieben:
29. Jan 2018, 12:35
Erst die Drehung von AC auf z.B. die X-Achse, dann eine Drehung von B in die XY-Ebene
Vorsicht, das wird im Allgemeinen keine Drehung sein, es sei den, dass Dein Drachenviereck über senkrechte Querachsen verfügt. Davon hast Du aber nichts geschrieben. Somit werden Deine beiden Basisvektoren bei der Koordinatentransformation unterschiedlich stark gedreht.

Ob das wirklich schwieriger ist ? Die Drehmatrix hast Du ja bereits, d.h. Du brauchst nur noch die Inverse dazu ermitteln. Das sollte aber nicht zu schwierig sein, denn die eine Achse wird dann wieder auf den ersten Einheitsvektor abgebildet und die andere Achse wird dann wieder auf den zweiten Einheitsvektor.

Wenn Du das ganze in 3D einbettest wird es aber unschön, weil es dort singulär ist und Du keine Inverse bilden kannst, da das Inverse einer Projektion auf einen (n-1)-dimesnionalen Vektorraum bekanntlich einen Lösungsraum der Dimension 1 zur Folge hat, also unendlich viele Lösungen. Dadurch, dass die 3.Dimension aussen vor ist, kannst Du die Singularität zwar umgehen, aber das bedeutet extra Arbeit, da die Basisvektoren des Drachenvierecks irgendwie schief im 3D liegen könnten.

Ich würde an Deiner Stelle versuchen, mich auf 2D zu beschränken.


Freundliche Grüsse, Ralf

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 13:51
von positronium
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
positronium hat geschrieben:
29. Jan 2018, 12:35
Ich glaube, Du übersiehst hier etwas: Für eine Spiegelungsmatrix brauche ich nicht AC, sondern einen zu AC senkrecht stehenden Vektor in der Ebene ABC (ist ja nicht 2D).
ein "Drachenviereck" ist per definitionem in einer Ebene und somit 2D.
Ja. Das "ist ja nicht 2D" bezog sich darauf, dass dieser Vektor in der Ebene ABC und nicht in XY liegen muss.
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
Senkrechte kannst Du übrigens mit Hilfe von Skalarprodukt und Vektorprodukt ermitteln.
Ja. Ich könnte natürlich mit dem Kreuzprodukt rechnen: normiert[(AB x AC) x AC]
Jedoch ist auch das wieder eine unschöne Operation - es wird nicht irgendetwas auf meinen Vektor V angewandt, sondern ich habe für jedes Kreuzprodukt V k V mit k einem Pseudovektor der Kreuzproduktmatrix je Komponente des Vektors.

Am Ende soll diese Rechnung ein Term neben anderen sein, und idealerweise eine Form aufweisen, wie:
a) ...V
b) ...VxV
c) ...V+ ...VxV
Vermeiden würde ich gerne etwas wie:
d) V...V
e) ((V...V)...V)
Gruslig wäre, wenn ich einzelne Elemente "adressieren" müsste, wie z.B.:
f) (V2-V1)...
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
positronium hat geschrieben:
29. Jan 2018, 12:35
Erst die Drehung von AC auf z.B. die X-Achse, dann eine Drehung von B in die XY-Ebene
Vorsicht, das wird im Allgemeinen keine Drehung sein, es sei den, dass Dein Drachenviereck über senkrechte Querachsen verfügt. Davon hast Du aber nichts geschrieben. Somit werden Deine beiden Basisvektoren bei der Koordinatentransformation unterschiedlich stark gedreht.
Dass AC senkrecht auf BD steht (und AC BD halbiert), ist doch die Definition eines Drachenvierecks, oder verstehe ich Dich falsch?
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
Ich würde an Deiner Stelle versuchen, mich auf 2D zu beschränken.
Das geht leider nicht.

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 15:13
von ralfkannenberg
positronium hat geschrieben:
29. Jan 2018, 13:51
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
Vorsicht, das wird im Allgemeinen keine Drehung sein, es sei den, dass Dein Drachenviereck über senkrechte Querachsen verfügt. Davon hast Du aber nichts geschrieben. Somit werden Deine beiden Basisvektoren bei der Koordinatentransformation unterschiedlich stark gedreht.
Dass AC senkrecht auf BD steht (und AC BD halbiert), ist doch die Definition eines Drachenvierecks, oder verstehe ich Dich falsch?
Hallo positronium,

ja Du hast recht, das Drachenviereck ist gemäss Wikipedia so definiert. Es gibt aber auch noch den schiefen Drachen und da hast Du keine senkrechten Diagnoalen. Ich möchte einfach frühzeitig Missverständnisse vermeiden, deswegen mein Hinweis.

positronium hat geschrieben:
29. Jan 2018, 13:51
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
Ich würde an Deiner Stelle versuchen, mich auf 2D zu beschränken.
Das geht leider nicht.
Warum: was nutzt Dir eine singuläre Figur im 3D ?


Freundliche Grüsse, Ralf

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 15:43
von positronium
ralfkannenberg hat geschrieben:
29. Jan 2018, 15:13
Es gibt aber auch noch den schiefen Drachen und da hast Du keine senkrechten Diagnoalen. Ich möchte einfach frühzeitig Missverständnisse vermeiden, deswegen mein Hinweis.
Gut, Danke, den schiefen Drachen kannte ich noch nicht.
ralfkannenberg hat geschrieben:
29. Jan 2018, 15:13
positronium hat geschrieben:
29. Jan 2018, 13:51
ralfkannenberg hat geschrieben:
29. Jan 2018, 13:26
Ich würde an Deiner Stelle versuchen, mich auf 2D zu beschränken.
Das geht leider nicht.
Warum: was nutzt Dir eine singuläre Figur im 3D ?
Meine Parameter für die Aufgabe sind (in einer vereinfachten Form) die Punkte A, B und C, und jeder der Punkte ist ein Vektor mit drei Komponenten. Das ganze habe ich als V=(Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz) vorliegen.
Um in 2D rechnen zu können, könnte ich natürlich hingehen, und eine zweidimensionale Basis einführen, sagen wir die 3er-Vektoren V und W. V liege auf AC, und W senkrecht dazu in der Ebene ABC. Dann kann ich AB auf V und W projizieren, und erhalte den Punkt D durch (AB V)V-(AB W)W. Bleibt aber noch das Problem der Normierung von V=normiert[AC], und W=normiert[(AB x AC) x AC].
Das läuft vom Prinzip her wieder auf meinen allerersten Ansatz hinaus, ist aber wegen der Kreuzprodukte sogar noch komplizierter. :(

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 16:13
von ralfkannenberg
positronium hat geschrieben:
29. Jan 2018, 15:43
Meine Parameter für die Aufgabe sind (in einer vereinfachten Form) die Punkte A, B und C, und jeder der Punkte ist ein Vektor mit drei Komponenten.
Hallo positronium.

Du hast ja 3 Punkte. Damit hast Du auch eine der Diagonalen. Dank dem, dass die beiden Diagonalen senkrecht stehen müssen, kannst Du die Gerade der zweiten Diagonalen einfach über das Standard-Skalarprodukt bestimmen, das gilt ja auch im 3D.

Damit hast Du auch den Mittelpunkt.

Der 4.Punkt ergibt sich dann aus der gleichlangen Verlängerung vom Startpunkt der zweiten Diagonalen, den Du aus der Voraussetzung hast, und dem soeben berechneten Mittelpunkt.


Freundliche Grüsse, Ralf

Re: Lineare Abbildung

Verfasst: 29. Jan 2018, 16:53
von positronium
ralfkannenberg hat geschrieben:
29. Jan 2018, 16:13
Du hast ja 3 Punkte. Damit hast Du auch eine der Diagonalen. Dank dem, dass die beiden Diagonalen senkrecht stehen müssen, kannst Du die Gerade der zweiten Diagonalen einfach über das Standard-Skalarprodukt bestimmen, das gilt ja auch im 3D.
Das mache ich ja bisher, allerdings ohne Gleichungssystem:
AC ist die eine Diagonale, AB eine Außenkante. Das Skalarprodukt AB AC/norm(AC) ergibt die Entfernung von A zum Mittelpunkt. Diese Entfernung multipliziert mit dem normierten Vektor AC, also AC/norm(AC), ergibt den Vektor AM=AB AC/norm(AC) * AC/norm(AC)=
Schöner wäre für mich der Vektor BM=-AB+AM.

Perfekt wäre es - und nach so etwas suche ich - wenn es eine Abbildung (mit Tensoren? evtl. angewandt auf ein Tensorprodukt von V=(Ax,Ay,Az,Bx,By,Bz,Cx,Cy,Cz)) gäbe, die das macht:


oder derartig: