WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Aus Entfernungsmatrix Koordinaten d. einzelnen Punkte bestim

 

bertin11
Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2009, 12:42     Titel: Aus Entfernungsmatrix Koordinaten d. einzelnen Punkte bestim
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen


Thomas84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2009, 13:46     Titel:
  Antworten mit Zitat      
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

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2009, 15:17     Titel:
  Antworten mit Zitat      
Hallo Thomas!

Vielen Dank für Deine Hilfe!
Hab jetzt folgendes ausprobiert, was noch nicht funktioniert:

Code:

C = [0, 2, 3; 2, 0, 1; 3, 2, 0]

A=[0,0]
b1=0;
b2=sym('b2');

c1=sym('c1');
c2=sym('c2');

s=[(b1 - 0)^2 + (b2 - 0)^2 -4; (c1 - 0)^2 + (c2 - 0)^2 -9; (c1 - b1)^2 + (c2 - b2)^2 - 1]

[b2,c1,c2]=solve(s)


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.. Sad [/code]
Private Nachricht senden Benutzer-Profile anzeigen
 
tompie
Forum-Guru

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 02.12.2009, 17:46     Titel:
  Antworten mit Zitat      
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
Private Nachricht senden Benutzer-Profile anzeigen
 
bertin11
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.12.2009, 18:42     Titel:
  Antworten mit Zitat      
ok, Vielen Dank für die Antworten!
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2009, 07:22     Titel:
  Antworten mit Zitat      
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

Forum-Guru


Beiträge: 260
Anmeldedatum: 19.09.07
Wohnort: München
Version: immer alles
     Beitrag Verfasst am: 03.12.2009, 10:00     Titel:
  Antworten mit Zitat      
Ja stimmt, darauf hatte ich gar nicht geachtet, das gilt nur im 3D.
Private Nachricht senden Benutzer-Profile anzeigen
 
bertin11
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 8
Anmeldedatum: 01.12.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2009, 13:29     Titel:
  Antworten mit Zitat      
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?
Private Nachricht senden Benutzer-Profile anzeigen
 
Thomas84

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.12.2009, 18:33     Titel:
  Antworten mit Zitat      
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?
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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 | goMatlab RSS Button 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.