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

Punkte auf Kreisgleichung

 

mathphys
Forum-Century

Forum-Century


Beiträge: 130
Anmeldedatum: 03.06.11
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 17.07.2011, 22:14     Titel: Punkte auf Kreisgleichung
  Antworten mit Zitat      
Hallo

Bitte helft mir. Ich will noch einen ganz anderen Zugang zu meinem Problem angehen. Der könnte besser sein, wenn auch weniger systematisch, sprich eher "dummes brute force"

Dank der vielen Hilfe von euch habe ich auch schon Ansätze, doch der letzte Schritt wie es nun laufen soll fehlt mir. Ich will im Matrix Kalkül arbeiten. Es ist wirklich einfacher, wie ihr sagtet. Folgendes:

Ich habe eine mx3 Matrix, wobei die Koeffizienten vom Typ double sind.

Nun soll in einer Schleife per Zufall sechs Zeilen ausgewählt werden, was sechs Punkten im Raum entspricht, und getestet werden, ob diese auf einem Kreis liegen. Für die jeweiligen Kreise ist das Koordinatensystem immer im Ursprung betrachtet. Dies kann ich machen, da ich das zentrum des Kreises mit dem Befehl origin erhalte. Der Radius ist dann der Abstand vom Ursprung zu einem beliebigen der sechs Punkte.

In einer if-Abfrage soll dann eben getestet werden ob alle Sechs Punkte auf dem Kreis liegen oder nicht. Tun sie es nicht, dann werden sechs neue Punkte zufällig gewählt und das Spiel von vorne, solange bis die Kreisgleichung wahr ist.

Ist dies passiert, dann soll in einem 6-dimensionalem Vektor (egal ob Zeile oder Spalte) gespeichert werden, welche Punkte das waren. Die Indizierung der Zeilen reicht dabei ja aus.

Nun zu der ersten Hürde. Ich will eine 6x3 Matrix erstellen, bei der die sechs Zeilen zufällig aus der m3x3 Matric gewählt werden sollen.

Eine zufällige Zeile erhalte ich durch

Code:

n  = ceil(rand(1).*6);
row1=data_final(n,:)
 


Doch wie bekomme ich sechs? Meine Idee:

Dies sechs mal hinter einander durchführen. Irgendwie mit einer Bedingung sagen, dass es nicht die selben sechs Zeilen sein dürfen und dann diese in eine Matrix erstellen lassen.

Geht es besser? Wenn nein, wie sage ich die Bedingung, dass er nicht sechs mal die selbe Zeile nimmt?

Danke
Grüße
_________________

Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2011, 22:45     Titel:
  Antworten mit Zitat      
Hallo,

möglich wäre das mit
Code:
p = randperm(1:n)
row1=data_final(p(1:6),:)


Die andere Frage ist, ob es zweckmäßig wäre. Bei 100 Punkten hättest du immerhin 1 Milliarde Kombinationen, die du durchprobieren musst. Eine systematische Suche dürfte Vorteile haben.

Idee z.B.:
Wähle Punkt 1
- Suche zwei Punkte mit ähnlichem Abstand von Punkt 1.
- Wenn es zwei solche Punkte gibt, suche jeweils nach weiteren Punkten mit ähnlichem Abstand wie zu Punkt 1.
-- Falls fündig geworden, mache weiter.
-- Falls nicht, suche andere solche Punkte.
- Wenn nicht fündig geworden, den nächsten Punkt als Ausgangspunkt versuchen.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
mathphys
Themenstarter

Forum-Century

Forum-Century


Beiträge: 130
Anmeldedatum: 03.06.11
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 17.07.2011, 23:01     Titel:
  Antworten mit Zitat      
Hi,

danke für den neuen input. Werde ich gleich morgen versuchen zu verstehen.

Dein systematischer Vorschlag führt mich, denke ich, an eine Wand. Mit der Matrix die als Koeffizienten Längen von Differenzenvektoren enthielt, hatte ich ähnliche Überlegungen. Das Problem ist das Rauschen. Es ist leider nicht so, dass das Sechseck alleine für sich da liegt und dann eine Weile nichts, bis die anderen Punkte kommen, sondern das ist total verrauscht. In der Norm Matrix aus dem anderen Thread sieht man an den Werten ganz deutlich, wie beinahe unmöglich es ist, ein Kriterium zu wählen, das sinnvoll weiter arbeitet. Sad

Gruß und gute Nacht.
_________________

Besser ne Taube auf'm Dach als nen Stuhl inner Kiste
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 17.07.2011, 23:29     Titel:
  Antworten mit Zitat      
Hallo,

das wäre meines Erachtens immer noch besser als ganz zufällig zu suchen, da man so zumindest etwas vorfiltert. Von wievielen Punkten größenordnungsmäßig sprechen wir eigtl? Und: wenn die Daten so verrauscht sind, wer sagt dann, dass das gefundene Sechseck das "gewünschte" ist?

Grüße (und ebenfalls eine gute Nacht)
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
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 - 2025 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.