|
|
Aus Entfernungsmatrix Koordinaten d. einzelnen Punkte bestim |
|
bertin11 |
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 01.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.12.2009, 11:42
Titel: Aus Entfernungsmatrix Koordinaten d. einzelnen Punkte bestim
|
|
|
|
|
Hallo zusammen!
Ich habe eine symmetrische Matrix gegeben, in der alle Entfernungen zwischen allen Punkten drinstehen.
Ich habe also nur alle Abstände zwischen allen Punkten gegeben, nicht aber die Koordinaten der Punkte. nur einen Startpunkt in (0,0).
Bei 7 Punkten ergibt das ja eine 7x7-Matrix. ( Matrix(i,j) entspricht dem Abstand von i und j , Matrix(i,i)=0 )
Kann man jetzt über irgendeine Funktion in Matlab aus den Entfernungen die Koordinaten der Punkte errechnen, damit man sie in einem Graphen darstellen kann?
Wenn ich über die Formel vom euklidischen Abstand ausgehe und die Koordinaten als Variablen einsetze, bekomme ich bei einer 7x7-Matrix ja 21 Gleichungen mit 12 Unbekannten, die ungefähr so aussehen: (a=(a1,a2)=(0,0))
(b1 - a1)^2 +(b2 - a2)^2 = 9
(c1 - a1)^2 + (c2 - a2)^2 = 49
.
. (bis g1,2)
(c1 - b1)^2 + (c2 - b2)^2 =25
(d1 - b1)^2 + (d2 - b2)^2 =25
.
.
dann dasselbe mit c,d,e,f,g
Wie kann ich auch z.B. das in Matlab eingeben und lösen? Das Problem ist auch, dass ich eine allgemeine Lösung bräuchte.. also nxn-Matrix..
Habt ihr da einen Tipp?
Vielen Dank schon mal und viele Grüße!
Claudia
|
|
|
|
|
Thomas84 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.12.2009, 12:46
Titel:
|
|
Hallo,
Zusätzlich zu dem Startpunkt musst du auf Grund der Rotationsinvarianz des euklidischen Abstandes zumindes noch eine Koordinate eines anderen Punktes fixieren um eine eindeutige Lösung zu erhalten.
Das entstehende nichtlineare Gleichungssytem kann man analytisch mit solve lösen oder numerisch mit Hilfe des Newton Verfahrens.
viele Grüße
Thomas
|
|
|
bertin11 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 01.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.12.2009, 14:17
Titel:
|
|
Hallo Thomas!
Vielen Dank für Deine Hilfe!
Hab jetzt folgendes ausprobiert, was noch nicht funktioniert:
ich denke das Problem ist, dass es für b2, c1, c2 jeweils zwei Lösungen gibt, das Positive und Negative der Zahl.. Aber wie kann ich das ändern? Dass er nur das positive nimmt? Steh glaub ich grad auf dem Schlauch.. [/code]
|
|
|
tompie |
Forum-Guru
|
|
Beiträge: 260
|
|
|
|
Anmeldedatum: 19.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: immer alles
|
|
|
|
|
|
Verfasst am: 02.12.2009, 16:46
Titel:
|
|
Hallo,
man muß m.E. mindestens 4 Punkte fixieren, um hier überhaupt weiterzukommen. Bei nur einem Fixpunkt hat man ja weiterhin die Rotationsinvarianz um beide Eulerwinkel, bei 2 Fixpunkten immer noch die Rotationsinvarianz um die Verbindungsachse dieser beiden Punkte. Der 4.Punkt kann dann entweder auf der einen Seite der Ebene aus den 3 anderen Punkten liegen oder - spiegelsymmetrisch - auf der anderen Seite bei gleichen Abständen.Wenn dieser 4.Punkt also ausserhalb dieser Ebene liegt, sollte es für die restlichen Punkte eine eindeutige Lösung geben, ausser evtl. in pathologischen Ausnahmefällen.
Gruß tompie
|
|
|
bertin11 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 01.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 02.12.2009, 17:42
Titel:
|
|
ok, Vielen Dank für die Antworten!
|
|
|
Thomas84 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.12.2009, 06:22
Titel:
|
|
Das was tompie geschrieben hat gilt für den 3 dimensionalen Fall. So wie ich es bis jetzt verstanden habe willst du aber vorerst nur 2 Dimensionen betrachten. Für 3 Punkte gibt es noch keine eindeutige Lösung ab 4 Punkten dann hoffentlich schon.
viele Grüße
Thomas
|
|
|
tompie |
Forum-Guru
|
|
Beiträge: 260
|
|
|
|
Anmeldedatum: 19.09.07
|
|
|
|
Wohnort: München
|
|
|
|
Version: immer alles
|
|
|
|
|
|
Verfasst am: 03.12.2009, 09:00
Titel:
|
|
Ja stimmt, darauf hatte ich gar nicht geachtet, das gilt nur im 3D.
|
|
|
bertin11 |
Themenstarter
Forum-Newbie
|
|
Beiträge: 8
|
|
|
|
Anmeldedatum: 01.12.09
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.12.2009, 12:29
Titel:
|
|
Mit drei Punkten gibt es schon eine eindeutige Lösung, aber ab 4 Punkte gibts keine mehr.. das sind zuviele Gleichungen. gibts irgendein Verfahren, das man anwenden könnte? wenn ja, wie in Matlab? gibts da ne Funktion zum Beispiel fürs Newton-Verfahren?
|
|
|
Thomas84 |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.12.2009, 17:33
Titel:
|
|
Wenn das Gleichungssystem nicht lösbar ist, dann ist es nicht lösbar. Es gibt nicht zu jeder "Abstandsmatrix" Punkte im 2 dimensionalen Raum.
Es können z.B. keine Punkte existieren mit: d(1,3) > d(1,2) + d(2,3). Vielleicht willst du dann aber die Punkte finden, die die Bedingungen noch möglichst gut erfüllen. Dann wäre das ein Optimierungsproblem. Wie sieht denn die Aufgabenstellung genau aus?
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2024
goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.
|
|