www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Uniforme Verteilung v. Punkten
Uniforme Verteilung v. Punkten < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Uniforme Verteilung v. Punkten: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 16:18 Di 15.02.2011
Autor: Leucram

Aufgabe
Generieren von gleichverteilten Punkten, die ein bestimmtes Abstandsintervall zueinander einhalten.



Hi,

ich moechte eine uniforme Punktverteilung (x,y) in einem Gebiet G erstellen. Jedoch sollen die erstellten Punkte den gegebenen maximale, minimale und mittlere Abstand zwei benachbarter Punkte besitzen. Die Anzahl der Punkte für die uniforme Punktverteilung kann dabei variiert werden um den gewünschten Abstand zu erzielen.

gegeben ist:

Eckpunkte in UTM Koordinaten, das Gebiet G ist rechteckig, daher:

x-Achse:    von 298350 [m] bis 299300 [m]
y-Achse:    von 3541900 [m] bis 3543000 [m]

relativ einzuhaltendes Abstandsintervall der einzelnen Punkte zueinander,
es kann also Abweichungen von jeweils +/- 0.2 [m] geben

min = 2.3 [m]
mean = 5.16 [m]
max = 9.55 [m]

mein Ansatz:

maxSurX = 299300  % Eckpunkte: maximal surface x-Achse
minSurX = 298350
maxSurY = 3543000
minSurY = 3541900
rand('seed',0)      % uniforme Punktemenge erzeugen, 4525 ist variable
dataNewSurfaceX = maxSurX + (minSurX -maxSurX)*rand(4525,1)
dataNewSurfaceY = maxSurY + (minSurY-maxSurY)*rand(4525,1)
figure(52)
plot(dataNewSurfaceX,dataNewSurfaceY,'o'),grid
xlabel('Easting [m]');
ylabel('Northing [m]');


Die Abstaende der einzelnen Punkte habe ich mittles "nearest neighbor" ermittelt, damit bin ich aber unzufrieden, da mir die anzahl der generierten Punkte (hier: 4525) zu stark variiert, d.h. 3000 bis 5000 Punkte haben aehliche Abstaende.

dataNewSurface = [dataNewSurfaceX ,dataNewSurfaceY]
distancesNewSurface = pdist(dataNewSurface,'Euclidean');
distmatrixNew = squareform(distancesNewSurface);


for i = 1 : 5
    distmatrixNew(i,i) = NaN;
    k = find(distmatrixNew(i,:) == min(distmatrixNew(i,:)));
    nearest(i) = distmatrixNew(i,k(1));
end
    
observednearestNew = mean(nearest)
max(nearest)
min(nearest)


meine Frage:

gibt es eine bessere alternative um gleichverteilte Punkte mit diesen Abstandsintervall zueinander zu generien, oder soll ich mich allein durch variieren der Anzahl der Punkte (hier 4525) grob "rantasten" ?

Vielen Dank im Vorraus.



        
Bezug
Uniforme Verteilung v. Punkten: nicht alles klar
Status: (Antwort) fertig Status 
Datum: 16:47 Di 15.02.2011
Autor: Al-Chwarizmi


> Generieren von gleichverteilten Punkten, die ein bestimmtes
> Abstandsintervall zueinander einhalten.
>  
> Hi,
>
> ich moechte eine uniforme Punktverteilung (x,y) in einem
> Gebiet G erstellen. Jedoch sollen die erstellten Punkte den
> gegebenen maximale, minimale und mittlere Abstand zwei
> benachbarter Punkte besitzen. Die Anzahl der Punkte für
> die uniforme Punktverteilung kann dabei variiert werden um
> den gewünschten Abstand zu erzielen.
>  
> gegeben ist:
>  
> Eckpunkte in UTM Koordinaten, das Gebiet G ist rechteckig,
> daher:
>  
> x-Achse:    von 298350 [m]bis 299300 [m]
> y-Achse:    von 3541900 [m]bis 354300 [m]    [haee]

(bei der ersten y-Koordinate eine Null zuviel ?)

> relativ einzuhaltendes Abstandsintervall der einzelnen Punkte zueinander,
>  es kann also Abweichungen von jeweils +/- 0.2 [m]geben
>  
> min = 2.3 [m]
> mean = 5.16 [m]
> max = 9.55 [m]


Hallo Leucram,

ein Stück weit scheint mir die Aufgabe in sich selbst wider-
sprüchlich zu sein. Soll die Verteilung wirklich "uniform"
sein, kann man nicht zusätzliche Bedingungen bezüglich
Minimalabstände etc. stellen.

Einmal davon abgesehen:
Die Einhaltung eines Minimalabstandes könnte man z.B.
so erreichen, dass man um jeden (per Zufallszahlen) erzeugten
Punkt eine Kreisscheibe mit diesem Radius legt, welche dann
für folgende Punkte als "verbotenes Gebiet" gilt.

Was aber mit dem "max" und dem "mean" genau gemeint
sein soll, ist mir nicht klar. Soll "max" etwa bedeuten, dass
jeder Punkt der Menge einen "nächsten Nachbarn" haben soll,
dessen Abstand "max" nicht übersteigt ?
Noch schwieriger scheint es mir, einen vorgeschriebenen
Mittelwert der Minimalabstände zu erzielen ...

Vielleicht verrätst du uns ja noch den Sinn der Aufgabe.
Da scheint ja ein praktisches Ziel im Rahmen einer
Anwendung vorzuliegen.

LG    Al-Chw.  

Bezug
                
Bezug
Uniforme Verteilung v. Punkten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:50 Di 15.02.2011
Autor: Leucram

Hi Al-Chwarizmi,

vorweg, einen Dank für die schnelle Antwort.

Es stimmt, ich arbeite an einem Projekt. Ich habe 28 geologische Objekte gemessen und sie statistisch ausgewertet. Diese liegen entlang einer Linie und haben mind. 2.3m und maximal 9.55m Abstand von einander, im Mittel 5.16m. Nun möchte ich diese Objekte, mit diesen Abstandseigenschaften, auf eine große Fläche plotten. Uniform verteilt sind und sollen sie sein.

a) y-Achse:    von 3541900 [m]bis 3543000 [m]
da hatte ich eine Null vergessen, hab sie hier nun angefügt.
Das entspricht einem Flächeninhalt von rund 1000000m²

b) ja, die Verteilung muss uniform sein. Es handelt sich hier über geologische Objekte, die in einem kleineren gemessenen Bereich gleichverteilt sind. Diese möchte ich nun über ein größeres Gebiet modellieren. Und dabei sollten diese Objekte auch im ganzen Gebiet,  dieses Abstandsintervall besitzen.

c) Minimalabstände könnten auch definiert sein, wenns geht auch gleich die Maximalabstände. Die angegebenen Abstände sind aus, vor Ort gemessenen, Daten entsprungen. Die Idee mit den Kreisen um die erzeugten Daten klingt gut, ebenfalls mit dem verbotenen Bereichen.

d) Alle orginal gemessenen Abstände der Objekte bewegten sich in dem Intervall: [min < Abstände <max] mit einem Mittelwert von 5.16m. Wenn es geht, sollten die erzeugten neuen uniformen Daten auch in diesem Bereich liegen. Abweichungen sind wohl nicht zu vermeiden, aber diese sollten ca. +/- 0.2m nicht überschreiten.

Bloß wie erstellt man diese Kreise und "verbotenen Gebiete"? Deinen Ansatz finde gut.

Bezug
                        
Bezug
Uniforme Verteilung v. Punkten: Antwort
Status: (Antwort) fertig Status 
Datum: 22:18 Di 15.02.2011
Autor: Al-Chwarizmi


> Es stimmt, ich arbeite an einem Projekt. Ich habe 28
> geologische Objekte gemessen und sie statistisch
> ausgewertet. Diese liegen entlang einer Linie und haben
> mind. 2.3m und maximal 9.55m Abstand von einander, im
> Mittel 5.16m. Nun möchte ich diese Objekte, mit diesen
> Abstandseigenschaften, auf eine große Fläche plotten.


Verstehe ich das jetzt richtig:

1.) du hattest zuerst 28 Punkte, die entlang einer (geraden)
    Linie verteilt waren, und du hast die Abstände zwischen
    ihnen betrachtet (also insgesamt 27 Abstände)

2.) jetzt möchtest du eine Anzahl Punkte (gleich viele wie
    vorher ?) in der x-y-Ebene verteilen, mit den gleichen
    Abstandseigenschaften wie vorher entlang der Linie ?

Falls du das so meinst, dann muss ich dich wohl enttäuschen,
außer wenn du den simplen Ratschlag befolgst: Lass die
Objekte nach wie vor entlang einer geraden Linie aufgereiht,
so wie sie es vorher waren. Du brauchst dazu die Ebene gar
nicht, und die Abstandsgeometrie in der Ebene ist eben eine
andere als die längs einer Geraden ...

(den praktischen Sinn deines Vorhabens durchschaue ich
leider nach wie vor nicht)

LG
Al-Chw.

Bezug
                                
Bezug
Uniforme Verteilung v. Punkten: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 11:46 Mi 16.02.2011
Autor: Leucram

Hi,

ich soll aus den 28 gesehenen Objekten entlang einer "Linie" eine zu erwartende Fläche erstellen.
Die Anzahl der zu erzeugenden Objekte ist dabei ersteinmal egal, hauptsache sie erfüllen das Abstandsintervall der 28 Objekte. Sodass ich sagen kann, diese x-Objekte die gleichen Eigenschaften besitzen, wie die orginal gemessenen 28 Objekte.
Auf ca. 66m Länge befanden sich 14 Objekte, dass würde grob gesagt, rund 200 Objekten auf 66x66m² bedeuten, und rund überschlagen 48000 auf den gesamten 1000000m². Aber die Zahl der Objekten sollte nicht so stark varrieren, wie bei der "nearest neighbor methode", sodass ich aus der vorraussichtlichen Anzahl der Objekte auch Rückschlüsse ziehen kann.

a) die 28 Objekte waren auf zwei abbiegenen Kurven mit unterschiedlichen Kompass-Gradzahlen, sodass man annehmen kann, das die Abstände auch 360° in der Fläche zum Nachbarobjekt gelten. Daher möchte ich die Abstände in der Fläche unbedingt nahezu gleich beibehalten.

PS: Mein weiterer Arbeitsweg würde so aussehen, das ich auf diese uniform verteilten Punkte, Halbkugeln plotte. Die z.B. eine maximale Größe von 2.3m im Radius besitzen, daher wäre es nicht schlecht, wenn es einen "Kreis" geben würde, der um diese erzeugten uniformen Punkten verboten wäre, sodass sich 2 Halbkugeln nicht schneiden.

gruß Leucram



Bezug
                                        
Bezug
Uniforme Verteilung v. Punkten: Idee
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:33 Mi 16.02.2011
Autor: wieschoo

Kannst du dir nicht ein Raster vorgeben. Und verteilst die Punkte vorerst exakt mit dem konstanten Abstand.
Du gibst dir eine erste Reihe vor.
Der Raum um so einen Punkt ist meinetwegen [mm] $B_\delta [/mm] (x)$. Jetzt kannst du die zweite Reihe der Punkte leicht verschoben platzieren, damit auch dort der konstante Abstand exakt eingehalten wird. Und erst am Ende störst du die Koordinaten der einzelnen Punkte ein bisschen zufällig, indem du die x,y Werte ein wenig veränderst.

Hoffentlich habe ich wenigsten ein bisschen das Problem verstanden.


Bezug
                                                
Bezug
Uniforme Verteilung v. Punkten: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:34 Mi 16.02.2011
Autor: Leucram

Hi wieschoo,

das wäre auch überlegenswert. Da die Abstände zw. 9.55m und 2.3m variieren sollen, leg ich ein Raster aus den Maximalabständen von 9.55m fest, und plotte dann uniform-verteilte Punkte hinnnein, wodurch sich ja eventuell auch der Minimalabstand von 2.3m einstellt.

Kennst du eine Möglichkeit die Abstände von benachbarten Punkten zu messen?

Oder würde auch das gehen, wenn man die "Nearest Neighbor Methode" von i= 1:2 laufen lässt, anstatt von i= 1:5 ?

dataNewSurface = [dataNewSurfaceX ,dataNewSurfaceY]
distancesNewSurface = pdist(dataNewSurface,'Euclidean');
distmatrixNew = squareform(distancesNewSurface);


for i = 1 : 5
    distmatrixNew(i,i) = NaN;
    k = find(distmatrixNew(i,:) == min(distmatrixNew(i,:)));
    nearest(i) = distmatrixNew(i,k(1));
end
    
observednearestNew = mean(nearest)
max(nearest)
min(nearest)

gruß



Bezug
                                                        
Bezug
Uniforme Verteilung v. Punkten: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 15:24 Do 17.02.2011
Autor: Leucram

Hi, ich hab es jetzt folgendermaßen gemacht:

- ein Raster mit jeweils 10x10m Maschenweite erstellt
- Uniforme Daten erstellt und mittels Nearest Neighbor den minimalsten Abstand eines uniformen Punktes zum Nächsten ermittelt und leider doch grob an die Anzahl der uniformen Punkte rangetastet
- mit dem Raster kann ich graphisch zeigen, wie groß in etwa die größten Abstände der Punkte sind


eine Frage bleibt aber trotzdem noch:

Kann man, und wenns geht bitte in Matlab-Befehlen und nicht mathematisch geschrieben, einen "verbotenden Kreis" um die Punkte ziehen, und weiterhin uniforme Punkte plotten lassen, damit sich die Punktwolke weiter verdichtet?

Bezug
                                                                
Bezug
Uniforme Verteilung v. Punkten: Antwort
Status: (Antwort) fertig Status 
Datum: 17:01 Do 17.02.2011
Autor: wieschoo

Ich kann dir ne Bedingung angeben mit der du Testen kannst ob du dich im "verbotenen Bereich" aufhälst.
Koord von einem gesetzten Punkt [mm] p_0: [/mm] x0,y0
zu testende Koord des nächsten Punktes [mm] p_1: [/mm] x1,y1

Jetzt schaust du ob, der Abstand r (befinden wir uns eigentlich in der Ebene?) kleiner als dein Radius r_geg ist
[mm]r=\sqrt{{(y_0-y_1)^2}+{(x_0-x_1)^2}}=\left \| \vec{p_0}-\vec{p_1} \right \|[/mm]

Dann if( r < r_geg) then .... "neu suchen"

Aber die kennst du wahrscheinlich selbst schon. Wenn du deinen kompletten Code inklusive ein paar Daten (müssen ja nicht Original-Daten sein) postet, dann kann man sich das mal anschauen und mit herum experimentieren.


Bezug
                                                                        
Bezug
Uniforme Verteilung v. Punkten: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:45 Do 17.02.2011
Autor: Leucram

hi wieschoo,

mein kompletter Code steht eigentlich schon bei meiner ersten Frage zu dem Thema.
Die Punkt sind alle auf einer Ebene quasi z=0.
Deine Suche und Bedingung nach den Abständen p1 zu p2 etc. macht eigentlich schon die nearest neighbor methode (der untere Code in meiner ersten Frage), so kann ich gleich nach dem "min(nearest)" suchen, welcher mir den kleinsten aller Abstände zeigt. Daraufhin habe ich die Anzahl der uniformen Punkte so variiert, das der "min(nearest)" ungefähr 2.3m entspricht.

Gibt es nicht die Möglichkeit, weil ich bin ja eigentlich nur ein Matlab-Newbie deshalb weiß ich das nicht so genau,Kreise (mit dem Radius 2.3m) auf einer begrenzten Fläche punkten zu lassen,  mit der Bedingung, das sie sich nicht berühren. Aber es möglichst ein zufälliges (am besten uniformes ) Muster ergeben (also kein Raster). Und die Mittelpunkte der Kreise sollen dann auch noch in x-y Koordinaten ausgegeben werden ;)

gruß

Bezug
                                                                                
Bezug
Uniforme Verteilung v. Punkten: Antwort
Status: (Antwort) fertig Status 
Datum: 08:20 Fr 18.02.2011
Autor: Al-Chwarizmi


> hi wieschoo,
>  
> mein kompletter Code steht eigentlich schon bei meiner
> ersten Frage zu dem Thema.
>  Die Punkt sind alle auf einer Ebene quasi z=0.
>  Deine Suche und Bedingung nach den Abständen p1 zu p2
> etc. macht eigentlich schon die nearest neighbor methode
> (der untere Code in meiner ersten Frage), so kann ich
> gleich nach dem "min(nearest)" suchen, welcher mir den
> kleinsten aller Abstände zeigt. Daraufhin habe ich die
> Anzahl der uniformen Punkte so variiert, das der
> "min(nearest)" ungefähr 2.3m entspricht.
>
> Gibt es nicht die Möglichkeit, weil ich bin ja eigentlich
> nur ein Matlab-Newbie deshalb weiß ich das nicht so
> genau,Kreise (mit dem Radius 2.3m) auf einer begrenzten
> Fläche punkten zu lassen,  mit der Bedingung, das sie sich
> nicht berühren. Aber es möglichst ein zufälliges (am
> besten uniformes ) Muster ergeben (also kein Raster). Und
> die Mittelpunkte der Kreise sollen dann auch noch in x-y
> Koordinaten ausgegeben werden ;)
>  
> gruß


Hallo Leucram,

falls es so einen pfannenfertigen Matlab-Befehl gäbe, woran
doch sehr zu zweifeln ist, müsste der doch exakt dies leisten,
was man sich mittels Satz von Pythagoras (Abstandsformel)
selber zurechtlegen kann. Nachdem ich nun das Ziel einiger-
maßen begriffen habe, würde ich folgendes Vorgehen vor-
schlagen:

1.) Wähle einen provisorischen Radius r , der den später
    gewünschten Minimalabstand [mm] r_{min} [/mm] etwas übersteigt und eine
    Anzahl N [mm] \approx \frac{ \mbox{Gesamtflaeche} }{k*\pi*r^2} [/mm] ,
    wobei k ein Faktor in der Größenordnung 2 bis 10 ist.

2.) Verteile nun nach der Reihe N Zufallspunkte im Rechteck,
    wobei aber für jeden einzelnen neuen Punkt so lange neue
    Zufallskoordinaten erwürfelt werden, bis er keinem der
    schon gesetzten Punkte zu nahe (also näher als r) kommt.

3.) Setze den "Wackelparameter" [mm] w:=r-r_{min} [/mm] ,
    der angibt, wie weit nun an jedem einzelnen der N Punkte
    noch (maximal) herumgeruckelt werden darf. Jeder Punkt
    wird nun in einer beliebigen Richtung um einen auch
    zufällig bestimmten Vektor der Maximallänge w verschoben.
    Alternativ könnte man jeden Punkt in x-Richtung und in
    y-Richtung um je maximal [mm] w/\sqrt{2} [/mm] verschieben.

Nun spielt man mit diesem Programm und lässt jeweils die
zu kontrollierenden Abstandsparameter (min(nearest),
mean(nearest), max(nearest) ) berechnen. Durch Variation
der Werte von r und k kann man sich dann an das gewünschte
Ergebnis herantasten.

Ich würde mir gerne von der verfolgten inhaltlichen Absicht
noch ein etwas klareres Bild machen können. Könntest du uns
(oder ev. einfach mir, per PN) noch verraten, um welche Art
"geologischer Objekte" es denn geht, bei welchen offenbar die
gegenseitigen Minimalabstände eine wichtige Rolle spielen ?


LG    Al-Chwarizmi


Bezug
                                                                                
Bezug
Uniforme Verteilung v. Punkten: Bilder
Status: (Antwort) fertig Status 
Datum: 23:18 Fr 18.02.2011
Autor: Al-Chwarizmi

Hallo Leucram,

ich habe nun mittels eines Programms die Idee der
in einem Rechteck "uniform" , aber ohne Muster verteilten
Punkte mit einem vorgegebenen Minimalabstand realisiert.
Hier zwei der entstandenen Bilder. Eines zeigt nur die
Punkte, beim anderen deuten Kreise vom Radius $\ r\ =\ [mm] \frac{d_{min}}{2}$ [/mm]
die Größe der "Intimsphäre" jedes Punktes an.

[Dateianhang nicht öffentlich]

[Dateianhang nicht öffentlich]

LG   Al-Chwarizmi

Dateianhänge:
Anhang Nr. 1 (Typ: png) [nicht öffentlich]
Anhang Nr. 2 (Typ: png) [nicht öffentlich]
Bezug
                                                                                        
Bezug
Uniforme Verteilung v. Punkten: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 00:39 Sa 19.02.2011
Autor: Leucram

Hi,

einen Großen Dank an User Al-Chwarizmi,

meine Problemstellung wurde perfekt gelöst.



gruß Leucram

Bezug
                                                                
Bezug
Uniforme Verteilung v. Punkten: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:22 So 20.02.2011
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                                        
Bezug
Uniforme Verteilung v. Punkten: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:20 Fr 18.02.2011
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]