Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Schnittmenge beliebig vieler Kreise

Schnittmenge beliebig vieler Kreise

Universität / Fachhochschule

angewandte lineare Algebra

Tags: Angewandte Lineare Algebra, Kreis, Schnittmenge

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
ckohrt

ckohrt aktiv_icon

00:27 Uhr, 15.04.2010

Antworten
Hallo,

ich benötige eher eine Idee als eine Lösung, wobei letzteres auch schön wäre.

Gegeben:

K1:(x-a1)2+(y-b1)2=1
K2:(x-a2)2+(y-b2)2=1
...
Kn:(x-an)2+(y-bn)2=1
...

Ich möchte zunächst die Kreise K1 und K2 betrachten und berechne die Schnittmenge, zB durch Gleichsetzen. Wenn nun ein 3. Kreis K3 dazu kommt könnte ich 3 Gleichungen Gleichsetzen. Nun weiß ich aber vorher nicht wieviele Kreise kommen und ich möchte bei jedem neuen Kreis nicht alle anderes Kreise anschauen müssen, da ich das auf dem Computer in einem Algorithmus anwenden möchte. Die Laufzeit spielt eine große Rolle.

Hintergrund:
Ich möchte bei gegebenen Kugeln im 3D herausfinden, ob diese mit einer Toleranz 1 hintereinander liegen auf einer Geraden. Dabei gibt es den Punkt P0, der fix und ohne Toleranz ist. Die Gerade geht also von P0 durch alle Kugeln bzw. ich möchte wissen, ob es eine Gerade gibt, die durch alle Kugeln geht und natürlich durch P0.
Ich muß sicherstellen, dass alle Kugelmittelpunkte die maximale Entfernung 1 zur Gerade haben und für letztere muß mit jeder Kugel eine neue Lage berechnet werden.

Oben versuche ich das Problem auf den 2D Fall zu reduzieren indem ich erstmal einen erlaubten Bereich (=Schnittmenge aller Kreise) berechne und eine Ebene definiere, die orthogonal zu meiner Geraden liegt.Dort können dann die Kugeln als Kreise abgebildet werden.

Ideen sind nun gefragt!

Gruß
Christian





Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Hierzu passend bei OnlineMathe:
Kreiszahl (Mathematischer Grundbegriff)
Kreis (Mathematischer Grundbegriff)
Elementare Kreisteile (Mathematischer Grundbegriff)

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
arrow30

arrow30

01:07 Uhr, 15.04.2010

Antworten
moin

Meine Idee ist simpel . du nimmst i-einen Kugel von denen mit MittelPunkt M1(m1m2m3). und der Punkt P0 sei (p1p2p3). jetzt kann man eine Gerade zwischen M1 und P0 bilden (2 Punkte bestimmen nur eine Gerade ) . die sieht im Raum so aus :
g=:(m1m2m3)+t(m1-p1m2-p2m3-p3)t es bleibt nur noch zu prüfen ob der Abstand aller Mittelpunkten von dieser Gerade 1 ist . dafür gibt es ja Formel. Abstand Punkt-Gerade
Gruß Arow

ckohrt

ckohrt aktiv_icon

08:35 Uhr, 15.04.2010

Antworten
Hallo Arow,

daran habe ich auch schon gedacht. Damit würde aber die erste Kugel schon meine gerade g1 festlegen. Damit würde ich den Lösungsraum verkleinern, da es sein könnte, dass die Gerade auch in der ersten Kugel schon den Abstand 1 hat, weil folgende Kugeln nicht auf g1 liegen. weil ich die gerade nicht festlegen kann wollte ich von Kugel zu Kugel berechnen was der Lösungsraum ist. Daher müßte die Gerade von Kugel zu Kugel neu berechnet werden und ich muß für diese dann prüfen, ob sie im erlaubten (=bisherigen) Lösungsraum liegt. Wenn nicht, dann gibt es keine Gerade mehr und ich kann den Algorithmus stoppen, sonst mache ich weiter bis ich eine Kugel finde die nicht mehr auf der Geraden liegt:

1. setze n=1
2. berechne erlaubten Bereich Bn für die Gerade gn von P0 nach Mn aus der Tangentenschar tn(P0 mit allen Tangenten von Mn die durch P0 laufen - für die Toleranz)
3. Addiere neue Kugel Mn+1 und berechne neuen erlaubten Bereich Bn+1 aus der Tangentenschar tn+1(P0 mit allen Tangenten von Mn+1 die durch P0 laufen - für die Toleranz)
4. Berechne gn+1, so dass sie innerhalb des erlaubten Bereiches Bn+1 liegt
5. prüfe, ob gn+1 existiert
wenn ja: n=n+1, goto 2.
wenn nein goto 4.
4. Beginne von neuem mit neuen Kugeln

Hier ergeben sich die folgenden Schwierigkeiten:
a) die erlaubten Bereiche sind Schnittmengen sehr schwer zu berechnen
b) die Gerade gn+1 innerhalb des erlaubten Bereiches Bn+1 ist schwer zu berechnen

Ich dachte schon an Regressionsgeraden, aber da bin ich nicht wirklich weiter gekommen.

Christian
ckohrt

ckohrt aktiv_icon

09:07 Uhr, 15.04.2010

Antworten
Evtl. ginge auch so eine Lösung:

Eine Gerade gn durch P0 im 3D kann durch Punkt, Richtung und Abstand r dargestellt werden, wobei die Richtung aus 2 Winkel α und β besteht (Kugelkoordinaten):

Umrechnung von kart. nach Kugelkoordinaten (mit Kn seien die Kugelmittelpunkte):

zur Vereinfachung, da P0 nicht im Ursprung liegt:
Dn_x=Kn_x-P0_x
Dn_y=Kn_y-P0_y
Dn_z=Kn_z-P0_z

r=Dn_x2+Dn_y2+Dn_z2

α= arccos (Dn_zr)
β= arctan2 (Dn_yDn_x)

(arctan2 siehe en.wikipedia.org/wiki/Atan2

Nun könnte ich für jeden Richtungswinkel folgende Formel anwenden:

α=αK{min}+αK{max}-αK{min}2

β=βK{min}+βK{max}-βK{min}2

wobei z.B. βK{min} das kleinste β aller bisheriger Kugeln K ist.

Anschaulich:
Ich möchte jeweils immer die Winkelhalbierende der Punkte nehmen, die am weitesten entfernt liegen, jeweils für die Komponente α und β.

Pseudo-code:
0. n=n+1
1. Berechne neue Kugel Kn die Geradenwinkel αn und βn
2. Prüfe ob αn und βn die Winkel αK{min} oder αK{max} ändert
3. Falls nein, goto 4. Falls ja, goto 5.
4. Prüfe, ob Kn die Gerade berührt
5. Falls ja goto 0., sonst goto 8.
6. Prüfe ob alle K die Gerade berühren
7. Falls ja, goto 0., falls nein goto 8.
8. Beende Berechnung der Geraden und beginne komplett neu

Problem:
a) Von der Rechenzeit ist es unschön jedesmal alle Punkte prüfen zu müssen, ob sie die Gerade berühren.

Ist das ein gangbarer Weg?

Christian
Antwort
arrow30

arrow30

14:59 Uhr, 15.04.2010

Antworten
hallo
Zitat 1.
"Damit würde aber die erste Kugel schon meine gerade g1 festlegen. Damit würde ich den Lösungsraum verkleinern, da es sein könnte, dass die Gerade auch in der ersten Kugel schon den Abstand 1 hat, weil folgende Kugeln nicht auf g1 liegen."

ich fürchte ich verstehe dich nicht gut. was meinst du mit "Lösungsraum verkleinern "?

2.
" es könnte sein, dass die Gerade auch in der ersten Kugel schon den Abstand 1 hat, weil folgende Kugeln nicht auf g1 liegen"

ist doch prima wenn die nächste Kugel den Abstand d>1 hat ,wäre ja optimal .dann muss man nicht weiter prüfen .

3. deine 2. Lösung ist nach dem Verfahren ->" Warum einfach , wenn es auch schwerer geht ? "
ckohrt

ckohrt aktiv_icon

15:24 Uhr, 15.04.2010

Antworten
Hallo Arrow,

du hast Recht, bisher ist alles sehr kompliziert. Ich finde keine andere Lösung. Vielen Dank für deine Hilfe! Ich versuche auf deine Fragen zu antworten (bin in der Arbeit, daher heute Abend evtl. mit Zeichnung):

Zitat 1.
"Damit würde aber die erste Kugel schon meine gerade g1 festlegen. Damit würde ich den Lösungsraum verkleinern, da es sein könnte, dass die Gerade auch in der ersten Kugel schon den Abstand 1 hat, weil folgende Kugeln nicht auf g1 liegen."

ich fürchte ich verstehe dich nicht gut. was meinst du mit "Lösungsraum verkleinern "?

Antwort:
Nun, wenn ich bei der ersten Kugel schon die Linie festlege, obwohl sie eine Toleranz haben darf, dann schränke ich mögliche Lösungen ein. Wenn ich mir vorstelle, dass ich irgendweine Gerade finden muss die duch P0 und die Kugeln geht, dann kann ich diese Gerade zu jedem Zeitpunkt neu festlegen. Wenn ich mir also 2 Kugeln vorstelle, die sich gerade berühren, und die Gerade läuft von P0 durch Mittelpunkt der 1. Kugel, dann gibt es Fälle, wo die Gerade nicht durch die 2. Kugel läuft. Wenn ich die Gerade neu berechne schon. Wenn dem so ist schränke ich mir den Lösungsraum ein.


2.
" es könnte sein, dass die Gerade auch in der ersten Kugel schon den Abstand 1 hat, weil folgende Kugeln nicht auf g1 liegen"

ist doch prima wenn die nächste Kugel den Abstand d>1 hat ,wäre ja optimal .dann muss man nicht weiter prüfen .

Antwort:
Schon, allerdings versuche ich ja eine Gerade durch zu legen, und nicht Fälle zu finden, wo dies nicht möglich ist. Obiger Fall könnte eintreten, wenn ich die Gerade mit Kugel 2... neu berechne und am Ende sich herasustellt, dass alle Kugeln nacheinander liegen, is auf die erste. Die erste könnte eine Position immernoch im Abstand 1 zur Geraden einnehmen, während die anderen alle auf bzw. nahe der neu berechneten Geraden liegen.

3. deine 2. Lösung ist nach dem Verfahren ->" Warum einfach , wenn es auch schwerer geht ? "

Antwort:
Deshalb versuche ich eine möglichst einfache Lösung zu finden.....

Ich bin für jede Idee dankbar und gehe alle Möglichkeiten nach!

Christian

Antwort
arrow30

arrow30

16:00 Uhr, 15.04.2010

Antworten
hallo Christian

wenn ich die Aufgabe gut verstehe , du sollst einen Alg. schreiben ,der prüft ,ob die Kugel auf einer Linie liegen (mit Toleranz 1) .Die Rückgabe dieses Alg. ist Ja die sind auf einer Gerade oder nein sind sie nicht.

"wenn ich bei der ersten Kugel schon die Linie festlege, obwohl sie eine Toleranz haben darf, dann schränke ich mögliche Lösungen ein. " das musst du dir noch mal überlegen. Toleranz hat mit P nichts zu tun. siehe Bild mag sein verstehst du mich dann besser.

snapshot325
ckohrt

ckohrt aktiv_icon

23:12 Uhr, 15.04.2010

Antworten
Hallo Arrow,

nicht ganz aber ich versuche die Aufgabe zu beschreiben:

Aufgabe:
Ich bekomme eine Liste von Punkten im 3D Raum.
Die Punkte beschreiben entweder eine Linie, einen Kreis oder keines von beiden also unbestimmt.
Nun können es 1000 Punkte und mehr sein.

Anforderungen:
1. Kurze Laufzeit
2. der erste Punkt muß auf der Linie liegen
3. alle anderen Punkte dürfen einen maximalen Abstand von 1 haben

Den Kreis konnte ich schon lösen. die vermeintlich einfache Aufgabe Linie nicht.

Hier habe ich eine Zeichnung, die ich glaube, dass sie nach deinem Ansatz zu einem "Nein, nicht auf der Linie" führt und bei meinem finde ich eine Lösung.

...Bild gezeichnet... und mir ist aufgefallen, dass mein obiger Ansatz auch icht funktioniert... da ich die 2 Kugeln, die den größten und kleinsten Winkel aufweisen als Winkelhalbierende verwende.

Daher habe ich hier vielleicht auch gleich eine zweite Zeichnung. Hier müßte man die Abstände zu der Geraden ermitteln (kein Problem) und die Gerade y=mx+t so berechnen, dass der Abstand eben 1 ist.

Im 2D und Punkt P0=(0;0) und t=(0;0)

dn=|g×(Kn-t)||g|

dn=|g×Kn||g|

g sei die Richtung der Geraden.

Also

|g×Kn||g|1

|g||Kn|sin(αn)|g|1

mit αn= Winkel zwischen g und Kn.

Mit |g|=1

|Kn|sin(αn)1

Also mit

εn= arcsin (1|Kn|)
-εnαnεn


Christian


1
2
ckohrt

ckohrt aktiv_icon

11:33 Uhr, 16.04.2010

Antworten
Hallo Arrow,

du würdest einfach die Linie mit dem neuen Mittelpunkt verbinden und prüfen, ob die anderen Kugelmittelpunkte in der Toleranz liegen. Richtig?

Gruß
Christian
ckohrt

ckohrt aktiv_icon

13:23 Uhr, 17.04.2010

Antworten
Vielen Dank Arrow, deine Fragen haben mich auf die richtige Lösung gebracht.

Anbei Bilder mit Lösung!

Christian

image1
image2