Tach, im Rahmen eines kleinen Bastelprojekts knobel ich gerade an einem Geometrie-Problem, komme aber nicht so recht weiter. Vielleicht hat ja hier jemand einen Tipp für mich? Der Aufbau: - Drei Empfänger A, B und C stehen auf einer Ebene und bilden ein gleichseitiges Dreieck - Die Postionen/Abstände der Empfänger sind bekannt - Innerhalb des Dreiecks bewegt sich ein Sender - Jeder der drei Empfänger meldet die aktuelle Signalstärke, die er misst Die Frage: - Wie bekomme ich am besten die Position (X,Y) des Senders in der Ebene heraus? PS: Die Signalstärke des Senders ist nicht konstant. D.h. man kann sich nur auf die relativen Unterschiede an den drei Empfängern stützen.
Da wäre mein Rat, erstmal ein einfacheres Problem zu lösen, nämlich die Entsprechung für den eindimensionalen Fall, also zwei Empfänger an den Koordinaten x = ±1 und der Sender befindet sich irgendwo auf der Verbindungslinie. Mit dem, was Du dabei lernst, wird Dir dann die Lösung der eigentlichen Aufgabenstellung leichter fallen.
Ahja, wieder so ein Salamiding, wo wichtige Randbedingungen fehlen und damit die Sache mehrdeutig wird und die Ratgebenden sich in die haare kriegen.
Hallo Sneef, gehst Du davon aus, dass die empfangene Signalstärke linear mit dem Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang?
Mein Ansatz wäre: Der Mittelpunkt M des Dreiecks ABC ist ja bekannt. Die einzelnen EmpfangspegelPa,Pb und Pc werden gemessen. Im Mittelpunkt gilt: Pa = Pb = Pc oder auch die Relationen Pa:Pb = Pa:Pc = Pb:Pc Vlt. lässt sich so die Position von S errechnen ?
Für zwei Empfänger ist das ganze recht einfach zu lösen. Hier mein Vorschlag:
1 | #include "stdafx.h" |
2 | #include <algorithm> |
3 | #include <iostream> |
4 | |
5 | // Both receivers are 1000mm apart |
6 | // Receiver A marks the origin |
7 | const int PosA = 0; |
8 | const int PosB = 1000; |
9 | const int Distance = PosB - PosA; |
10 | |
11 | double GetPosition(int signalStrengthA, int signalStrengthB) |
12 | { |
13 | // Nomalize the signal strengths |
14 | double normalizedStrengthA = (double)signalStrengthA / std::max(signalStrengthA, signalStrengthB); |
15 | double normalizedStrengthB = (double)signalStrengthB / std::max(signalStrengthA, signalStrengthB); |
16 | |
17 | // Compute the distance from receiver A based on the normalized signal strengths |
18 | double ratio = normalizedStrengthA / (normalizedStrengthA + normalizedStrengthB); |
19 | double distanceFromA = Distance - ratio * Distance; |
20 | |
21 | return distanceFromA; |
22 | } |
23 | |
24 | void main() |
25 | { |
26 | std::cout << GetPosition(100, 100) << std::endl; // Equal signal strength should yield exact center position (500) |
27 | std::cout << GetPosition(200, 200) << std::endl; // Same as before => 500 |
28 | std::cout << GetPosition(500, 0) << std::endl; // Now we are located at receiver A => position 0 |
29 | std::cout << GetPosition( 0, 500) << std::endl; // Now we are located at receiver B => position 1000 |
30 | std::cout << GetPosition( 66, 33) << std::endl; // We are 1/3rd of the way => postion 333 |
31 | } |
Bei drei Empfängern komme ich aber wie gesagt nicht weiter... WR schrieb: > gehst Du davon aus, dass die empfangene Signalstärke linear mit dem > Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang? Erst mal ja. Verkomplizieren kann ich es dann ja immernoch ;-)
Sneef schrieb: > - Innerhalb des Dreiecks bewegt sich ein Sender > - Jeder der drei Empfänger meldet die aktuelle Signalstärke, die er > misst Da kann man viel rechnen, funktionieren kann das nur im Freifeld, wo keine Reflektionen vorkommen können. Ein würfelförmiger Raum darum herum macht jede Berechnung sinnlos, man könnte höchstens an vielen Punkten Messungen durchführen und danach Näherungen berechnen. Aber nur wenn sich an der Umgebung nichts ändert, Menschen wären da das reine Gift. Georg
Wäre es nicht eine Möglichkeit um ab jeder Ecke(Station) des Dreiecks einen Kreis zu zeichnen und den Durchmesser des Kreises je Empfangsstärke zu verkleinern? Dort wo die Schnittpunkte der Kreise liegen könnte sich der Empfänger aufhalten? Oder ist die Idee falsch gedacht?
Alternativ Das Feld wie bei der Wettervorhersage in Quadrate zerlegen und für jedes Quadrat der Größe x eine Messung zu allen Empfangsstationen abspeichern. Anschließend muss nur der Wert der aktuellen Position mit den abgespeicherten verglichen werden und der Wert, der dem am nächsten kommt spiegelt die Position wieder.
Sneef schrieb: > Die Frage: > - Wie bekomme ich am besten die Position (X,Y) des Senders in der Ebene > heraus? 1. Schritt: die Signalstärke auf eine lineare Skala projezieren (=> Abstand zu einem Sender) 2. Schritt: je Empfänger erhält man einen Kreis (mit Radius Abstand Sender-Empfänger), auf dem der Sender liegt, d.h. je zwei Empfänger erhält man als Schnitt zwei mögliche Punkt, d.h. für alle 3 Empfänger erhält man so sechs Punkte. 3. Schritt: von den sechs Punkten sind 3 Punkte in etwa "gleich". Der Durchschnitt davon ist dann in etwa die Position des Senders (im numerisch möglichen Rahmen) (Voraussetzung: homogenes Feld, keine Reflexionen etc.)
Sigi schrieb: > 2. Schritt: je Empfänger erhält man einen Kreis (mit Radius > Abstand Sender-Empfänger) Das wird nicht funktionieren. Die Sendestärke des Senders schwankt ja beliebig (siehe oben). Daher ist eine direkte Zuordnung von Signalstärke zu Entfernung nicht möglich.
Du kannst die Signalstärke als baryzentrische Koordinaten im Dreieck ansehen. Du musst sie nur auf 0..1 normalisieren. Die Umrechnung auf kartesische (xy) Koordinaten ist in dem Wikipedia Artikel zu den baryzentrischen Koordinaten aufgeschrieben: https://de.wikipedia.org/wiki/Baryzentrische_Koordinaten Das funktioniert übrigens mit allen Dreiecken. Es muss nicht gleichschenklig sein.
Sneef schrieb: > Sigi schrieb: >> 2. Schritt: je Empfänger erhält man einen Kreis (mit Radius >> Abstand Sender-Empfänger) > > Das wird nicht funktionieren. Die Sendestärke des Senders schwankt ja > beliebig (siehe oben). Daher ist eine direkte Zuordnung von Signalstärke > zu Entfernung nicht möglich. Deswegen wird ja im Schritt 1 die Projektion auf eine Skala ausgeführt (sozusagen eine Art Vorbereitung). Dabei muss natürlich die relativen Unterschiede einfliessen, d.h. die schwankende Signalstärke.
Elektor hat in Heft 9/2018 ein interessante Artikel für dich. https://www.elektormagazine.de/magazine/elektor-59/41887 Finder kann radio Abstand messen, ziemlich genau: ~0,3m
pA,pB und pC sind die Empfangsstärken an A,B und C und sind normierte Skalare Die Punkte A,B,C und S sind als Ortsvektoren zu betrachten. Meine Vermutung und nur exemplarisch getestet: S = pA*A + pB*B + pC*C
:
Bearbeitet durch User
Geert H. schrieb: > Finder kann radio Abstand messen, ziemlich genau: ~0,3m Das funktioniert mit Messung von Zeitverzögerung auf Lichtgeschwindigkeit. Also nicht mit Signalstärke.
Sneef schrieb: > Sigi schrieb: >> 2. Schritt: je Empfänger erhält man einen Kreis (mit Radius >> Abstand Sender-Empfänger) > > Das wird nicht funktionieren. Die Sendestärke des Senders schwankt ja > beliebig (siehe oben). Daher ist eine direkte Zuordnung von Signalstärke > zu Entfernung nicht möglich. Wenn das Signal sich während der Messung der drei Empfänger ändert, ist das Problem nicht zu lösen, da es nicht klar ist, ob die beliebige Schwankung oder die Entfernung die Signalstärke bestimmt.
Bernd schrieb: > Wenn das Signal sich während der Messung der drei Empfänger ändert, ist > das Problem nicht zu lösen, da es nicht klar ist, ob die beliebige > Schwankung oder die Entfernung die Signalstärke bestimmt. So schlimm ist es nicht :-) Alle drei Empfänger messen exakt gleichzeitig, die Signalstärke des Senders ändert sich während dessen also nicht.
Bernd schrieb: > Wenn das Signal sich während der Messung der drei Empfänger ändert, ist > das Problem nicht zu lösen, da es nicht klar ist, ob die beliebige > Schwankung oder die Entfernung die Signalstärke bestimmt. Danke Bernd, sehr interessanter Einwand: Aber, wenn sich die Sendeleistung ändert, dann für alle 3 Empfänger gleichzeitig. Eine Positionsänderung hingegen führt zu einer nicht gleichgrossen Änderung, d.h. beide Effekte lassen sich mathematisch (im Rahmen der Numerik bla..) voneinander trennen.
Ein paar Beispiele für meine obige Lösungsformel: %% Gleichseitiges Dreieck in der Ebene octave:51> A=[-0.5;0];B=[0.5;0];C=[0;0.87]; %% Fall 1: Alle signale sind gleich stark und normiert octave:52> PA=1/3;PB=1/3;PC=1/3; octave:53> S=PA*A + PB*B + PC*C S = 0.00000 0.29000 %% Das sind die Koordinaten des Mittelpunkts von obigem Dreieck %% Fall 2: octave:54> PA=0;PB=0;PC=1; octave:55> S=PA*A + PB*B + PC*C S = 0.00000 0.87000 %% Das sind die Koordinaten von C Die Sendeposition ist die mit der normierten Signalstärke gewichtete Summe der Ortsvektoren.
Nils schrieb: > Du kannst die Signalstärke als baryzentrische Koordinaten im Dreieck > ansehen. Du musst sie nur auf 0..1 normalisieren. > > Die Umrechnung auf kartesische (xy) Koordinaten ist in dem Wikipedia > Artikel zu den baryzentrischen Koordinaten aufgeschrieben: > > https://de.wikipedia.org/wiki/Baryzentrische_Koordinaten > > Das funktioniert übrigens mit allen Dreiecken. Es muss nicht > gleichschenklig sein. Meine erste Vermutung war, dass das so nicht geht. Ich habe mir mal kurz ein Gegenbeispiel ausgedacht, hoffentlich nicht falsch: Gegeben sei ein Quadrat, von dem 3 Punkte die Punkte A,B,C bilden. Der Sender befinde sich in der Mitte des Quadrats, d.h. Abstand zu allen 3 Empfängern exakt gleich. Die baryzentische Kombination liefet aber die Mitte von A,B,C, d.h. nicht den Sender. Man kann sich das auch mathematisch klar machen: Die Sendeleistung impliziert projektivgeometrisch 3 Kegel mit den zugehörigen Schnitten (Kegelschnitte!). Diese sind iA aber gebrochenquadratisch und nicht gebrochenlinear, d.h. können iA niemals baryzenrtrisch erfasst werden. Es kann aber im Spezialfall sein, dass man eine "gute" Näherung bekommt (z.B. im Fall von 2 Punkten, da ist die Entfernungsgeschichte und die baryzentrische Geschichte identisch, siehe Bernsteinpolynome etc.)
Mit der Annahme das es sich ums Freifeld handelt und es keine Reflexionen usw. gibt nimmt ist die empfangene Leistung indirekt proportional vom Quadrat des Abstandes zum Sender. D.h. Pe = (1/r^2) * Ps Damit kannst Du Dir Deine Gleichungen aufstellen: Ps = a^2 * Pa = b^2 * Pb = c^2 Pc wenn a, b, c die jeweiligen Abstände zu den Eckpunkten des Dreiecks zum Sender sind Pa, Pb und Pc die Empfangenen Leistungen an den Eckpunkten A,B,C Ps die Sendeleistung Mit a,b,c und den Abständen zwischen den Eckpunkten kannst Dir die Position ausrechnen da es hier wieder kleinere Dreiecke in Deinem großen Dreieck gibt und mit Zuhilfenahme von z.B. b^2 / a^2 = Pa / Pb usw. kannst Du in den Gleichungen a, b, c ausrechnen/ersetzen.
Sneef schrieb: > Bernd schrieb: >> Wenn das Signal sich während der Messung der drei Empfänger ändert, ist >> das Problem nicht zu lösen, da es nicht klar ist, ob die beliebige >> Schwankung oder die Entfernung die Signalstärke bestimmt. > > So schlimm ist es nicht :-) > Alle drei Empfänger messen exakt gleichzeitig, die Signalstärke des > Senders ändert sich während dessen also nicht. Das wäre geklärt :)
Wenn die Signalstärke wirklich linear von der Entfernung abhängen würde und es keine Reflektionen gäbe, wäre es relativ einfach: Empfänger auf den Punkten A,B,C (Koordinaten sind bekannt) Sender auf Punkt S (Koordinaten unbekannt) A= (xA,yA), B= (xB,yB), etc. EA ... Signalstärke bei A EB ... Signalstärke bei B EC ... Signalstärke bei C S ... Sendestärke dA ... Abstand Sender zu Empfänger A dB ... Abstand Sender zu Empfänger B dC ... Abstand Sender zu Empfänger C EA= S*dA EB= S*dB EC= S*dC (xS-xA)^2+(yS-yA)^2 = dA^2 (xS-xB)^2+(yS-yB)^2 = dB^2 (xS-xC)^2+(yS-yC)^2 = dC^2 Unbekannt sind S,dA,dB,dC,xS,yS. Macht also 6 Gleichungen und 6 Unbekannte -> kann man lösen.
Vielleicht kann man auch die Empfänger Modifizieren. Wenn man die Empfänger zum Beispiel mit Richtfunkantennen oder äquivalenten ausstattet und die Antennen sich im Kreis (halbkreis, whatever) drehen lässt, dann ist die Signalstärke egal, jede Antenne hat einen kleinen bekannten Winkel in dem Sie den Sender Ortet. Dann kann man einfach den Schnittpunkt bestimmen auf den die drei Empfänger Kontakt haben.
in C++ (ohne spezielle Vector Lib) :
1 | #include <iostream> |
2 | using namespace std; |
3 | |
4 | // xy Koordinaten A B C
|
5 | double Ax=-0.5; |
6 | double Ay=0; |
7 | |
8 | double Bx=0.5; |
9 | double By=0; |
10 | |
11 | double Cx=0; |
12 | double Cy=0.87; |
13 | |
14 | void showSendePosition(double PegelA, double PegelB, double PegelC) |
15 | {
|
16 | double sum = PegelA + PegelB + PegelC; |
17 | double pA = PegelA/sum; |
18 | double pB = PegelB/sum; |
19 | double pC = PegelC/sum; |
20 | |
21 | double Sx = pA * Ax + pB * Bx + pC * Cx; |
22 | double Sy = pA * Ay + pB * By + pC * Cy; |
23 | |
24 | cout << Sx << " " << Sy << endl; |
25 | }
|
26 | |
27 | int main () |
28 | {
|
29 | showSendePosition(100,100,100); //Sender im Mittelpunkt |
30 | showSendePosition(0,100,0); // Sender bei B |
31 | showSendePosition(2500,10,20); // Sender ganz nah bei A |
32 | |
33 | return 0; |
34 | }
|
R. M. schrieb: > in C++ (ohne spezielle Vector Lib) : > ... Und woher weißt du jetzt, dass das angezeigte Ergebnis richtig ist?
mh schrieb: > Und woher weißt du jetzt, dass das angezeigte Ergebnis richtig ist? 1. Weil ich es mit GeoGebra, das ist ein Konstuktionsprogramm für Geometrie, auf Plausibilität überprüft habe. 2. Weil das die elementare Vektorgeometrie (Klasse 10 oder 11) aussagt.
WR schrieb: > gehst Du davon aus, dass die empfangene Signalstärke linear mit dem > Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang? Komische Frage - der Fachkräftemangel ist real. Allein schon die Physik sorgt dafür, dass die Signalstärke mit dem Quadrat der Entfernung abnimmt. Ein linearer Zusammenhang ergibt sich, wenn man den Logarithmus zu Hilfe nimmt.
Im 1dimensionalen Fall sei A = 0 und B = 1. pA sei 0.5 und pB sei 0.5. Somit beschränkt sich "meine" Formel auf Skalare S = pA * A + pB * B = 0.5 * 0 + 0.5 * 1 = 0.5 Das ist die Mitte zwischen A und B. Natürlich ist der Empfangspegel nicht linear mit der Distanz, aber wenn man genau hinschaut kommen nur relative Abhängigkeiten vor.
Max M. schrieb: >> Signalstärke wirklich linear von der Entfernung abhängen > > OMG!! Mir ist schon klar, dass das wahrscheinlich falsch ist, aber der OP hat es nun mal so postuliert. Außerdem gibt es sehr wohl Spezialfälle, wo es stimmt, nämlich wenn nur 2D-Ausbreitung möglich ist. Sender und Empfänger zwischen zwei Metallflächen mit Abstand kleiner Lambda, zum Beispiel.
Ulrich schrieb: > EA= S*dA > EB= S*dB > EC= S*dC Hoppla, das war natürlich falsch. Richtig wäre: EA= S/dA EB= S/dB EC= S/dC (xS-xA)^2+(yS-yA)^2 = dA^2 (xS-xB)^2+(yS-yB)^2 = dB^2 (xS-xC)^2+(yS-yC)^2 = dC^2
Sneef schrieb: > Vielleicht hat ja hier jemand einen Tipp für mich? Betrachte jeweils die Signale zweier Empfänger. Das ergibt jeweils eine Standlinie. Der Sender befindet sich dann am Schnittpunkt der Standlinien.
mh schrieb: > R. M. schrieb: >> in C++ (ohne spezielle Vector Lib) : >> ... > > Und woher weißt du jetzt, dass das angezeigte Ergebnis richtig ist? Aus dem Oben schon gesagten ist das natürlich falsch. (alternativer Beweis: Der Sender bewegt sich auf einer der 3 Schenkel. Die Signalstärke verschwindet nicht (!), aber eine Komponente der baryzentrische Koordinate müsste 0 sein.. den Rest spare ich mir hier..) R. M. schrieb: > 2. Weil das die elementare Vektorgeometrie (Klasse 10 oder 11) aussagt. Ulrich hat Oben schon das Gleichungssystem aufgestellt. Ein Schüler der 10./11. Klasse kann das iA niemals lösen, selbst ein Mathestudent kriegt das zT so nicht raus. (Aber: die Gleichungen sind zT quadratisch, d.h. haben je Zeile zT 2 Lösungen, d.h. 6 Gleichungen reichen nicht aus, es braucht evtl. 9 Gleichungen. Es wird aber das ausgedrückt, was ich Oben in meiner Lösung beschreiben wollte) my2ct schrieb: > Allein schon die Physik sorgt dafür, dass die Signalstärke mit dem > Quadrat der Entfernung abnimmt. Ein linearer Zusammenhang ergibt sich, > wenn man den Logarithmus zu Hilfe nimmt. Nackt aufgeschrieben hat man quadratische Gleichungen (Ulrich) der Form a*x^2+b*y^2+.., d.h. der Logarithmus bring hier nichts, hier helfen wie im eindim. Fall nur quadratische Ergänzungen, im zweidim. Fall natürlich komplexer (gute Übung, sollte jeder mal versucht haben, z.B. der zweidim Fall). Als brauchbare Lösung hilft hier nur Max M. schrieb: > https://de.wikipedia.org/wiki/Abstandsgesetz (war auch meine Ansatz, es kommt aber noch die Einwirkung der realen Umgebung hinzu, d.h. es muss eine Messkurve aufgenommen werden) und die Schnittpunktbetrachtung der 3 "Empfangs"-Kreise in betracht.
Sigi schrieb: > Der Sender bewegt sich auf einer der > 3 Schenkel. Die Signalstärke verschwindet nicht (!), aber > eine Komponente der baryzentrische Koordinate müsste 0 sein.. Das ist richtig. Um das zu korrigieren sollte man wirklich den realen Testaufbau kennen. Handelt es sich um eine theoretische Aufgabe oder steckt ein physikalisches System dahinter. Im zweiten Fall muss eine Schwelle eingeführt werden, die einen "kleinen" Messwert gleich Null setzt. Wenn es sich um eine Hausaufgabe handelt, kann ich postuliern eine Empfangsleistung sei Null und dann lande ich korrekterweise auf einem Schenkel.
:
Bearbeitet durch User
Und das es erlaubt ist eine Komponente gleich null zu setzen, entnahm ich diesem Beitrag des TO. Sneef schrieb: > std::cout << GetPosition(500, 0) << std::endl; // Now we are located > at receiver A => position 0 > std::cout << GetPosition( 0, 500) << std::endl; // Now we are located > at receiver B => position 1000
R. M. schrieb: > Im zweiten Fall muss eine Schwelle > eingeführt werden, > die einen "kleinen" Messwert gleich Null setzt. Ich hatte gerade esrt Zeit, den Wikiartikel zu Baryzentrik durchzulesen. Im Prinzip kann man sich das folgendermassen vorstellen: Man zeichnet zwischen jedem Punkt und der gegenüberliegenden Linie z.B. 11 Parallele ein, so erhält man ein Raster (ich nenne es mal baryzentrisches Raster RB, einfach vorstellbar). In einer zweiten Zeichnung mit den selben 3 Punkten (am Besten gleichschenkliges Dreieick) zeichnet man zu jedem Punkt 11 Kreise derart, das Kreis 0 r=0 hat und Kreis 10 die anderen Punkte berührt (dieses System von "Dreiecken nenne ich mal zirkulares Raster RZ). Für RZ kann man zu einem Sender (bzw. dessen Leistungen) sehr einfach die Koordinaten bestimmen. Eine Übertragung in RB liefert aber iA andere Punkte. Das liegt daran, dass RB "linear" aufgebaut ist, RZ dagegen einen gekrümmte Raumaufteilung ist. R. M. schrieb: > Wenn es sich um eine Hausaufgabe handelt ja, habe ich auch schon gedacht, bzw. der Lehrer hat sich dann wohl zu wenig gedacht..
Sigi schrieb: > ja, habe ich auch schon gedacht, bzw. der Lehrer > hat sich dann wohl zu wenig gedacht.. Nein, da kann ich Entwarnung geben. Es handelt sich nicht um eine Hausaufgabe :-) Vielmehr ist das ganze Teil einer kleinen Simulation/Visualisierung, die ich gerade aus Spaß an der Freude am PC implementiere.
Sneef schrieb: > Vielmehr ist das ganze Teil einer kleinen Simulation/Visualisierung, die > ich gerade aus Spaß an der Freude am PC implementiere. Hast du dabei auch mal einen kleinen Blick in den kleinen Aktenordner "Von Sternennavigation bis GPS" oder in das kleine Handbuch zur Ortsbestimmung geschaut - oder ein kleines, leicht visualisiertes Gedankenexperiment gemacht?
Positionsbestimmungen sind ja für viele Probleme interessant, deshalb habe ich das ganze mal in SW gefasst und ausrechnen lassen. Das Erste Bild zeigt den Aufbau, Sender plus drei Empfänger sowie die berechnete Senderposition. Die beiden letzen zeigen je 1000 Berechnungen, jede Linie stellt den Unterschied zwischen baryzentrischer und meiner Berechnung da. Es ist gut zu sehen, wie die baryzentrische Lösung stark in das Zentrum des Dreiecks zieht. Nur Sender im Zentrum führen zu anärend gleichen Punkten. rbx schrieb: > Hast du dabei auch mal einen kleinen Blick in den kleinen Aktenordner > "Von Sternennavigation bis GPS" oder in das kleine Handbuch zur > Ortsbestimmung geschaut - oder ein kleines, leicht visualisiertes > Gedankenexperiment gemacht? Dieses "Gedankenexperiment" ist hier überflüssig, da die Aufgabenstellung zwar ähnlich, in den wesentlichen Details aber grundlegend anders sind. Die Berechnung der Senderposition unter der Aufgabenstellung ist jedenfalls einfach, im Gegensatz zu GPS, wo komplexe Differentialgleichungen gelöst werden müssen.
Sigi schrieb: > Die Berechnung > der Senderposition unter der Aufgabenstellung ist jedenfalls > einfach, im Gegensatz zu GPS, wo komplexe Differentialgleichungen > gelöst werden müssen. Ja, die gestellte Aufgabe sollte auch einfacher sein. Unsere Hörfähigkeit kommt sogar mit zwei Empfängern aus. Manchmal auch mehr, aber das ist nicht unbedingt ein Vorteil, bzw. die Signalstärke als solche trägt nicht unbedingt zur besseren Ortung bei. Wenn z.B. bei einem Braunkohletagebau die Großgeräte nah am Dorf sind, dann vibrieren sogar die Hauswände und der Sound ist so laut, da weißt du nicht sofort, wo der Lärm eigentlich genau herkommt. Handy verlegt und selbst anrufen funktioniert dagegen sehr gut, -> es braucht noch noch nichteinmal ein "Gedankenexperiment". (Oder bei einem Gewitter (wo ist es?) könnte man Freunde fragen, aber man würde sie kaum fragen, wie laut + sich auf Windrichtungen stützen.) Die Programmbilder oben sagen auch nur grob "irgendwo in der Mitte" oder "irgendwo drumherum". Damit hätte man aber zumindest ein Muster/Erfahrungswerte, welche zur zusätzlichen Orientierung dienen können.
Sigi schrieb: > Positionsbestimmungen sind ja für viele Probleme > interessant, ... Ok, schrittweise. Erkläre erstmal, wie du von einer gegebenen Senderposition auf die Signalstärke an den Empfängerpositionen kommst (Hinweis, der OP hat dir bis jetzt keine Infos dazu geliefert). Ohne diesen Schritt, kannst du micht testen, wie gut deine Methode ist. Es ist gut möglich, dass es sich beim Problem des OP um ein "ill-posed, ill-conditioned nonlinear inverse problem" handelt. Um soetwas zu lösen, braucht man etwas mehr als: R. M. schrieb: > 1. Weil ich es mit GeoGebra, das ist ein Konstuktionsprogramm für > Geometrie, auf Plausibilität überprüft habe. > > 2. Weil das die elementare Vektorgeometrie (Klasse 10 oder 11) aussagt.
Ich glaube ja eher, dass der OP eine Lösung für ein kommerzielles Problem sucht oder noch üblere Absichten hat ^^ Aber wenn es doch so sein sollte, dann braucht es einen vierten Kanal von einer der drei Quellen, die als Referenz fungiert. Wenn der Messwert 11,5 ist, in welches Einheit auch immer, und die Referenz bei 1,01 liegt, kann man den Messwert entsprechend korrigieren. Ansonsten helfen die Theorien in Fehler- und Störungsrechnung weiter.
>Erkläre erstmal, wie du von einer gegebenen >Senderposition auf die Signalstärke an den Empfängerpositionen kommst Besteht daran irgendein Zweifel? Die Stärke P des Sendersignals am Ort des Empfängers ist umgekehrt proportional zum Quadrat des Sender-Empfänger-Abstands r, also P ~ 1/r^2. Alles andere wäre vom physikalischen Standpunkt her Nonsens. >Es ist gut möglich, dass es sich beim Problem des OP um ein "ill-posed, >ill-conditioned nonlinear inverse problem" handelt. Unter der (einzigen realistischen) Annahme P ~ 1/r^2 ist das Problem klar und eindeutig definiert. Nichtlinear ist es allerdings, da hast Du recht. >Um soetwas zu lösen, braucht man etwas mehr als: [...] Das Problem des TO zu lösen, ist rechentechnisch etwas knifflig, aber machbar. Letztlich braucht man dazu nichts weiter als elementare Mathematik (pq-Formel).
LostInMusic schrieb: > Besteht daran irgendein Zweifel? Die Stärke P des Sendersignals am Ort > des Empfängers ist umgekehrt proportional zum Quadrat des > Sender-Empfänger-Abstands r, also P ~ 1/r^2. Alles andere wäre vom > physikalischen Standpunkt her Nonsens. Es wird implizit davon ausgegangen, dass es sich um Sender und Empfänger für Funkwellen handelt. Das hat der OP aber nie explizit geschrieben. LostInMusic schrieb: > Unter der (einzigen realistischen) Annahme P ~ 1/r^2 ist das Problem > klar und eindeutig definiert. Nichtlinear ist es allerdings, da hast Du > recht. ill-posed und ill-conditioned hat wenig mit "klar definiert" zu tun. Es hat eher etwas damit zu tun, dass es drei Gleichungen (drei Messwerte) und 6 Unbekannte gibt (Position des Senders, Signalstärke des Senders, Fehler der 3 Messungen). Dazu kommen nahezu beliebige Korrelationen zwischen den Unbekannten und potenziell nicht normalverteile Messfehler. LostInMusic schrieb: > Das Problem des TO zu lösen, ist rechentechnisch etwas knifflig, aber > machbar. Letztlich braucht man dazu nichts weiter als elementare > Mathematik (pq-Formel). Ich bin auf eine Lösung gespannt, die Messfehler beinhaltet und mit pq-Formel auskommt.
mh schrieb: > dass es sich um Sender und Empfänger > für Funkwellen handelt. Das hat der OP aber nie explizit geschrieben. Na und, die quadratische Abhängigkeit ist eine geometrische Eigenschaft des dreidimensionalen Raums und gilt für jede Wellenausbreitung - auch für Schallwellen, Gravitationswellen ... Georg
Sneef schrieb: > Für zwei Empfänger ist das ganze recht einfach zu lösen. Hier mein > Vorschlag: > #include "stdafx.h" > #include <algorithm> > #include <iostream> > > // Both receivers are 1000mm apart > // Receiver A marks the origin > const int PosA = 0; > const int PosB = 1000; > const int Distance = PosB - PosA; > > double GetPosition(int signalStrengthA, int signalStrengthB) > { > // Nomalize the signal strengths > double normalizedStrengthA = (double)signalStrengthA / > std::max(signalStrengthA, signalStrengthB); > double normalizedStrengthB = (double)signalStrengthB / > std::max(signalStrengthA, signalStrengthB); > > // Compute the distance from receiver A based on the normalized signal > strengths > double ratio = normalizedStrengthA / (normalizedStrengthA + > normalizedStrengthB); > double distanceFromA = Distance - ratio * Distance; > > return distanceFromA; > } > > void main() > { > std::cout << GetPosition(100, 100) << std::endl; // Equal signal > strength should yield exact center position (500) > std::cout << GetPosition(200, 200) << std::endl; // Same as before => > 500 > std::cout << GetPosition(500, 0) << std::endl; // Now we are located > at receiver A => position 0 > std::cout << GetPosition( 0, 500) << std::endl; // Now we are located > at receiver B => position 1000 > std::cout << GetPosition( 66, 33) << std::endl; // We are 1/3rd of > the way => postion 333 > } > > Bei drei Empfängern komme ich aber wie gesagt nicht weiter... > > WR schrieb: >> gehst Du davon aus, dass die empfangene Signalstärke linear mit dem >> Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang? > > Erst mal ja. Verkomplizieren kann ich es dann ja immernoch ;-) Der TO hat selbst einen Lösungsvorschlag gemacht. Und zwar für den Eindimensionalen Fall mit 2 Empfängern auf der x-Achse. Er kam aber mit 3 Empfängern, die in einer Ebene liegen nicht klar. Außerdem schreibt er das in seiner Simulation ein linearer Zusammenhang gelten soll. Unter diesen Voraussetzungen habe ich ihm einen Vorschlag mit 3 Empfängern gemacht.
1 | #include <iostream> |
2 | using namespace std; |
3 | |
4 | // xy Koordinaten A B C
|
5 | double Ax=-0.5; |
6 | double Ay=0; |
7 | |
8 | double Bx=0.5; |
9 | double By=0; |
10 | |
11 | double Cx=0; |
12 | double Cy=0.87; |
13 | |
14 | void showSendePosition(double PegelA, double PegelB, double PegelC) |
15 | {
|
16 | double sum = PegelA + PegelB + PegelC; |
17 | double pA = PegelA/sum; |
18 | double pB = PegelB/sum; |
19 | double pC = PegelC/sum; |
20 | |
21 | double Sx = pA * Ax + pB * Bx + pC * Cx; |
22 | double Sy = pA * Ay + pB * By + pC * Cy; |
23 | |
24 | cout << Sx << " " << Sy << endl; |
25 | }
|
26 | |
27 | int main () |
28 | {
|
29 | showSendePosition(100,100,100); // Sender im Mittelpunkt 2D |
30 | showSendePosition(100,100,0); // Empfaenger C existiert nicht 1D |
31 | |
32 | |
33 | return 0; |
34 | }
|
Nullsetzen der C-Signalstärke, bedeutet C ist nicht vorhanden und es liegt der vom TO beschriebene Eindimenionale Fall vor. Um korrekt zu sein müssen alle y-Koordinaten auf 0 gesetzt werden. Dann sieht man das es der gleiche Algo ist, den der TO verwendet hat. Deshalb verstehe ich nicht, warum folgender Beitrag negativ bewertet wurde. R. M. schrieb: > Im 1dimensionalen Fall sei A = 0 und B = 1. > > pA sei 0.5 und pB sei 0.5. > > Somit beschränkt sich "meine" Formel auf Skalare > > S = pA * A + pB * B > = 0.5 * 0 + 0.5 * 1 > = 0.5 > Das ist die Mitte zwischen A und B. Ich habe nur die Prämissen seiner Simulation übernommen. Das dies mit elektromagnetischer Wellenausbreitung in unserem Universum nicht funktioniert weis ich auch. Aber der TO hat ja nicht mal geschrieben, das es sich um Elektromagnetische Wellenausbreitung handelt.
:
Bearbeitet durch User
>Es wird implizit davon ausgegangen, dass es sich um Sender und Empfänger >für Funkwellen handelt. Das hat der OP aber nie explizit geschrieben. Gut, dann müssen wir warten, bis der OP das bestätigt oder verneint. Auch wenn eine 1/r²-Abhängigkeit naheliegt, darf man eine solche ja vorher nicht einfach annehmen und irgendetwas damit rechnen. >Es hat eher etwas damit zu tun, dass es drei Gleichungen (drei Messwerte) >und 6 Unbekannte gibt (Position des Senders, Signalstärke des Senders, >Fehler der 3 Messungen). OK. Aus "3 Gleichungen für 6 Unbekannte" würde ich die Unlösbarkeit der Aufgabe folgern. So schnell kann man mit einem Problem fertigwerden. >Dazu kommen nahezu beliebige Korrelationen zwischen den Unbekannten Verstehe ich nicht. Was meinst Du damit? >und potenziell nicht normalverteile Messfehler. Hört sich beängstigend an... >Ich bin auf eine Lösung gespannt, die Messfehler beinhaltet und mit >pq-Formel auskommt. Mit den Messfehlern hast Du mich natürlich kalt erwischt. Allerspätestens wenn diese nicht normalverteilt sind, dürfte die pq-Formel definitiv nicht mehr ausreichen. Der Punkt geht an Dich :-)
LostInMusic schrieb: >>Dazu kommen nahezu beliebige Korrelationen zwischen den Unbekannten > > Verstehe ich nicht. Was meinst Du damit? Die Gleichungen müssen voneinander unabhägig sein. Sonst könntest du ja jede von den 3 Gleichungen 2 mal hinschreiben, ev. auch mit einem Faktor multipliziert, und hättest deine 6 Bestimmungsgleichungen - aber so einfach ist es eben nicht. LostInMusic schrieb: > Auch wenn eine 1/r²-Abhängigkeit naheliegt, darf man eine solche ja > vorher nicht einfach annehmen und irgendetwas damit rechnen Nachdem hier eine endlose Diskussion um elektromagnetische Wellen oder nicht geführt wird, wüsste ich doch mal gern, welche Wellen sich im 3D-Raum NICHT so ausbreiten. Wenn nämlich die Energie nicht mit der Zunahme der Kugeloberfläche mit dem entsprechenden Radius (und damit mit dem Quadrat des Radius) abnimmt, wäre das eine überaus elegante Methode, Energie aus dem Nichts zu erschaffen - unendlicher Reichtum wäre garantiert. Georg
Der Schalldruck (Amplitude) nimmt bei zuneh- mender Entfernung von der Schallquelle mit 1/r ab. Das ist das reziproke Abstandsgesetz 1/r. Die Schallintensität (Energie) nimmt bei zunehmender Entfernung von der Quelle mit 1/r² ab. Das ist das reziproke Quadratgesetz 1/r². https://de.wikipedia.org/wiki/Abstandsgesetz Aber eine Diskussion darüber ist müßig, weil sich der TO nicht über die Physik seiner Simulation/Visualisierung ausläßt. Er nennt die Frage auch kleines Matheproblem und nicht Physikproblem. Er postet auch in PC-Programmierung und nicht in HF,Funk und Felder. Aufgrund des geposteten Programms (und das ist für mich der einzige Fakt) vermute ich, die gemessenen Signalstärken sind ganz einfach Zahlenwerte. (in seinem zweidimensionalen Simulationsuniversum) Aber dazu kann sich der TO gerne äußern.
:
Bearbeitet durch User
georg schrieb: > Wenn nämlich die Energie nicht mit der ... Wenn nicht die Energie gemessen wird. Der OP spricht nur von "Signal". Ich persönlich gehe davon aus, dass er OP nach einer Lösung für 1/r² sucht, sich aber nicht über die komplexität des Problems bewusst ist/war. georg schrieb: > Die Gleichungen müssen voneinander unabhägig sein. Sonst könntest du ja > jede von den 3 Gleichungen 2 mal hinschreiben, ev. auch mit einem Faktor > multipliziert, und hättest deine 6 Bestimmungsgleichungen - aber so > einfach ist es eben nicht. Klar, einfach Gleichungen mehrfach aufschreiben geht nicht. Aber für eins der "Signale" eine weitere unabhängige Messung durchführen liefert eine 4. Gleichung. Aber wie unabhängig sind diese beiden Messungen für das Signal und daraus folgend, wie groß ist die Korrelation der zugehörigen Messfehler? Was ich aber eigentlich meinte bezieht sich auf die anderen Unbekannten. Die x und y Koordinate und die Sendestärke des Senders. Aufgrund der Messfehler weichen diese Größen im Allgemeinen vom ihrem wahren Wert ab. Die Abweichungen von den wahren Werten können allerdings korreliert sein. Soetwas wie: "Immer wenn die bestimmte Signalstärke zu klein ist, ist x zu groß und y zu klein". R. M. schrieb: > Aufgrund des geposteten Programms (und das ist für mich der einzige > Fakt) vermute ich, die gemessenen Signalstärken sind ganz einfach > Zahlenwerte. (in seinem zweidimensionalen Simulationsuniversum) Du hebst ja selbst das gemessen hervor. Eine Messung hat immer einen Fehler. Dieser Messfehler ist das Hauptroblem, weil der Wert der gesuchten Größen nur noch geschätzt (im statistischen Sinn, Erwartungswert) werden kann. R. M. schrieb: > Er nennt die Frage auch kleines Matheproblem und nicht > Physikproblem. Es ist eben kein kleines Matheproblem, zumindest wenn man keine Ahnung von der Materie hat.
mh schrieb: > Dieser Messfehler ist das Hauptroblem, weil der Wert der > gesuchten Größen nur noch geschätzt (im statistischen Sinn, > Erwartungswert) werden kann. Du redest von Messfehler und hast keine Ahnung welches Meßprinzip zu Grunde liegt. Oder hast du eine Glaskugel ? Das gemessen ist ironisch gemeint.
:
Bearbeitet durch User
mh schrieb: > Wenn nicht die Energie gemessen wird. Das ist eine Möglichkeit. Eine andere ist, dass man einen ausgedehnten Sender hat und in dessen Nachbereich misst (meinetwegen eine Schallwelle vor der Membran eines Elektrostaten). Wenn der Elektrostat rechteckig ist, hast du einen Entfernungsbereich, wo die Schallleistung über die Entfernung näherungsweise konstant ist. Dann einen, wo sie näherungsweise mit 1/r abfällt. Und für große Entfernungen zur Quelle fällt sie dann endlich mit 1/r^2. Schon im zitierten Wiki-Artikel zum Abstandsgesetz steht als zweiter Satz: "Voraussetzungen sind eine punktförmige Quelle (näherungsweise: kleine Ausdehnung der Quelle im Vergleich zur Entfernung), die isotrop, also nicht gerichtet emittiert, und ein freies Feld ohne reflektierende Berandung." Ist die Quelle z.B. eine LED mit Linse (die nicht isotrop emittiert), dann fällt die Leistung zwar mit 1/r^2 ab, aber das r zählt nicht als Abstand zur LED sondern als Abstand zu einem hinter der LED liegenden Punkt. Es lohnt sich bei der Sache also tatsächlich, vor der Rechnung zu klären, wie genau "das Signal" vom Abstand abhängt.
R. M. schrieb: > mh schrieb: >> Dieser Messfehler ist das Hauptroblem, weil der Wert der >> gesuchten Größen nur noch geschätzt (im statistischen Sinn, >> Erwartungswert) werden kann. > > Du redest von Messfehler und hast keine Ahnung welches Meßprinzip zu > Grunde liegt. Oder hast du eine Glaskugel ? Nein natürlich habe ich keine Ahnung welches Meßprinzip zu Grunde liegt. Ich habe allerdings einiges an Erfahrung mit dem Prinzip "Messung" und mit inversen Problemen. R. M. schrieb: > Das gemessen ist ironisch gemeint. Tut mir leid, aber ich erkenne in deinem Text die Ironie nicht. R. M. schrieb: > Aufgrund des geposteten Programms (und das ist für mich der einzige > Fakt) vermute ich, die gemessenen Signalstärken sind ganz einfach > Zahlenwerte. (in seinem zweidimensionalen Simulationsuniversum)
Achim S. schrieb: > Es lohnt sich bei der Sache also tatsächlich, vor der Rechnung zu > klären, wie genau "das Signal" vom Abstand abhängt. Ich dachte eigentlich das wäre geklärt. Sneef schrieb: > WR schrieb: >> gehst Du davon aus, dass die empfangene Signalstärke linear mit dem >> Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang? > > Erst mal ja. Verkomplizieren kann ich es dann ja immernoch ;-) Ich kann mich nur wiederholen: R. M. schrieb: > Aber dazu kann sich der TO gerne äußern.
Normalerweise, - und ich halte des für zweckmässig -, trennt man zunächst die prinzipiellen Überlegungen von der realen Anwendung. Man setzt also erst einmal ideale Bedingungen voraus und findet eine Lösung des Problems. Und, erst wenn (und falls) das funktioniert, berücksichtigt man reale Gegebenheiten wie Genauigkeit, Auflösung etc. Egal was sich durchaus ergibt, bleibt das Prinzip dennoch gültig. Es ergeben sich allenfalls Flächen, - und bei stochastischen Einflüssen, solche mit einer Wahrscheinlichkeitsverteilung -, was nicht immer, aber in realen Fällen oft ausreicht. Was die Frage 1/r oder 1/r^2 betrifft, ist die aus zwei Gründen meines Erachtens nach, in diesem Kontext irrelevant. 1. Das Lösungsverfahren (das im wesentlichen auf Pythagoras und den Ähnlichkeitssätzen beruht, wenn man die Verhältnisse der gemessenen Grösse voraussetzt) ist für beide Fälle anwendbar. Es ergibt sich für die Ortskurven eine Parabel 2ter Ordnung bzw. zwei Parabeln und eine Gerade. 2. Der TO hat selbst geschrieben, dass zunächst von einem linearen Zusammenhang ausgegangen werden soll. Siehe Beitrag "Re: Kleines Matheproblem (Positionsbestimmung)"
Klassisch geht es so: Der Bogenschnitt (Bogenschlag) ist eine Methode zur Punktbestimmung in der Geodäsie. https://de.wikipedia.org/wiki/Bogenschnitt
mh schrieb: > Ich habe allerdings einiges an Erfahrung mit dem Prinzip "Messung" und > mit inversen Problemen. Das respektiere ich. Ich bin Softwerkler mit elektrotechnischem Hintergrund. Und wenn mir jemand mit folgender Problematik kommt, ohne weitere Hintergrundinformation zu liefern:
1 | #include "stdafx.h" |
2 | #include <algorithm> |
3 | #include <iostream> |
4 | |
5 | // Both receivers are 1000mm apart
|
6 | // Receiver A marks the origin
|
7 | const int PosA = 0; |
8 | const int PosB = 1000; |
9 | const int Distance = PosB - PosA; |
10 | |
11 | double GetPosition(int signalStrengthA, int signalStrengthB) |
12 | {
|
13 | // Nomalize the signal strengths
|
14 | double normalizedStrengthA = (double)signalStrengthA / std::max(signalStrengthA, signalStrengthB); |
15 | double normalizedStrengthB = (double)signalStrengthB / std::max(signalStrengthA, signalStrengthB); |
16 | |
17 | // Compute the distance from receiver A based on the normalized signal strengths
|
18 | double ratio = normalizedStrengthA / (normalizedStrengthA + normalizedStrengthB); |
19 | double distanceFromA = Distance - ratio * Distance; |
20 | |
21 | return distanceFromA; |
22 | }
|
23 | |
24 | void main() |
25 | {
|
26 | std::cout << GetPosition(100, 100) << std::endl; // Equal signal strength should yield exact center position (500) |
27 | std::cout << GetPosition(200, 200) << std::endl; // Same as before => 500 |
28 | std::cout << GetPosition(500, 0) << std::endl; // Now we are located at receiver A => position 0 |
29 | std::cout << GetPosition( 0, 500) << std::endl; // Now we are located at receiver B => position 1000 |
30 | std::cout << GetPosition( 66, 33) << std::endl; // We are 1/3rd of the way => postion 333 |
31 | }
|
32 | |
33 | |
34 | // Bei drei Empfängern komme ich aber wie gesagt nicht weiter...(!!!!)
|
dann stehe ich mit 100% zu meiner Antwort:
1 | // Erweiterung der obigen Loesung auf 2D
|
2 | |
3 | #include <iostream> |
4 | using namespace std; |
5 | |
6 | // xy Koordinaten A B C
|
7 | double Ax=-0.5; |
8 | double Ay=0; |
9 | |
10 | double Bx=0.5; |
11 | double By=0; |
12 | |
13 | double Cx=0; |
14 | double Cy=0.87; |
15 | |
16 | void showSendePosition(double PegelA, double PegelB, double PegelC) |
17 | {
|
18 | double sum = PegelA + PegelB + PegelC; |
19 | double pA = PegelA/sum; |
20 | double pB = PegelB/sum; |
21 | double pC = PegelC/sum; |
22 | |
23 | double Sx = pA * Ax + pB * Bx + pC * Cx; |
24 | double Sy = pA * Ay + pB * By + pC * Cy; |
25 | |
26 | cout << Sx << " " << Sy << endl; |
27 | }
|
28 | |
29 | int main () |
30 | {
|
31 | showSendePosition(100,100,100); // Sender im Mittelpunkt 2D |
32 | showSendePosition(100,100,0); // Empfaenger C existiert nicht 1D |
33 | |
34 | |
35 | return 0; |
36 | }
|
Alles andere ist Wahrsagerei.
mh schrieb: > Ich bin auf eine Lösung gespannt, die Messfehler beinhaltet und mit > pq-Formel auskommt. Meine Lösung von Gestern basiert quasi auf der pq-Formel (Aufstellen und Umformen der Empfangskreisgleichungen zweier Punkte ergibt eine einfachere pq-Variante). In den Bildern sieht man die berechneten Punkte, wobei bei jeder Berechnung je Messung Gauss-Rauschen mit sigma=0.025 hinzuaddiert wurde. Die Roten Kreise haben r=Sigma bzw. r=2*Sigma, die Abstände aller Treffer zum fixen Sender in [0.5,0.5] haben 1.15*sigma, d.h. sind für mich akzeptabel. (die etwa 20% Abweichung erhalte ich für sigma=0.0..0.3, wobei der Radius der drei Empfänger 0.4 ist, aber ab sigma=0.01..0.02 ist das berechnete Ergebnis eh nicht mehr interessant, da der Abstand zum Sender zu gross wird) Gestern sind mir noch den Dürchläufen Ausreiser aufgefallen, die ich gerade noch behoben habe: Liegt der Sender in etwa auf der Linie und werden die Längen der Empfänger ungünstig gekürzt, dann haben mindestens 2 Empfangskreise keinen Schnittpunkt mehr, d.h. keine Lösung. Ich setze dann den berechneten Punkt gleich der gewichteten Mitte, wobei die Gewichte gleich den verrauschten Distanzen ist (Heuristik, über die man aber sprechen kann..). P.S. Theor und X4U fassen noch mal gut die wesentlichen Lösungsschritte zusammen.
Mir ist Gestern noch eine einfache Anwendung eingefallen: Ende der 90er habe ich mir für 15DM vom Grabbeltisch eine Art 3D-Scanner/3D-Maus gekauft. Am Bildschirm wurde ein rechtwinkliger Rahmen mit 3 Empfängern befestigt, und in der Hand hält man eine Art Maus mit einem Ultraschallsensor. Aus der Signallauflänge ergab sich dann die 3D-Position (Maus und Rahmen waren NICHT mit einem Kabel verbunden, d.h. Impulsstart war nicht bekannt, nur die Ankunftszeitpunkte)
@R. M. Du hast das Programm des TO zwar so auf zwei Dimensionen erweitert, wie man sich denkt, dass es so sein müsste - trotzdem funktioniert die 2D-Variante leider nicht! Deine beiden Testfälle "showSendePosition(100,100,100)" und "showSendePosition(100,100,0)" sind derart speziell, dass sie den Fehler nicht aufdecken. Aber wenn Du den Sender beispielsweise mal an die Position (0, 0) setzt und die Empfangsstärken ausrechnest (tu es!) und mit diesen Werten dann Dein Programm fütterst, dann wirst Du feststellen, dass als Ergebnis nicht (0, 0) herauskommt, sondern (0, 0.1). Als nächstes kannst Du das dann mit ganz vielen Punkte in dem Dreieck machen und Dir anschauen, was für eine Figur die Ergebnispunkte bilden - es ist ein Teil des Dreiecks, aber nicht das ganze Dreieck, wie es sein müsste.
>showSendePosition(100,100,0); // Empfaenger C existiert nicht 1D
Wie kommst Du auf "Empfaenger C existiert nicht"? Bei einer angenommenen
linearen Abhängigkeit der Signalstärke P von der Entfernung r (welche
Deinem Programm bzw. dem des TO zugrundeliegt) bedeutet die Signalstärke
Null, dass der Sender vom Empfänger einen ganz bestimmten Abstand hat,
nämlich jenen Abstand d, wo die lineare Funktion P(r) ihre Nullstelle
hat.
Wenn der Empfänger vom Sender noch weiter als d weg ist, wird P sogar
negativ. All diese schönen Effekte handelt man sich mit der Wahl einer
linearen P(r)-Funktion ein.
LostInMusic schrieb: > Aber wenn Du den > Sender beispielsweise mal an die Position (0, 0) setzt und die > Empfangsstärken ausrechnest (tu es!) und mit diesen Werten dann Dein > Programm fütterst, dann wirst Du feststellen, dass als Ergebnis nicht > (0, 0) herauskommt, sondern (0, 0.1). Das habe ich getan und kann dein Ergebnis bestätigen. Um sinnvolle Werte zu erhalten habe ich das Dreieck vergrössert. Der Abstand des Senders zu A sind 50km, zu B auch 50km und zu C 87km. Auch das ist ein gleichseitiges Dreieck. Als Sendeleistung habe ich 1 KW angenommen. Mit der Formel für die Freiraumdämpfung aus dem Titze - Schenk habe ich mir dann die zu erwarteten Empfangsleistungen ausgerechnet und damit mein Programm gefüttert. Der Fehler liegt in der von dir beschriebenen Grössenordung. Das liegt aber daran das die Formel für die Freiraumdämpfung richtigerweise auf 1/r² beruht. Ich kann nicht einfach eine nichtlineare Formel aus der realen Welt nehmen und dann erwarten das damit eine lineare Simulation funktioniert. Ok, dann kann man natürlich sagen, die Simulation taugt nichts. Aber der TO hat nun einmal geschrieben, das er (vorerst) lineare Abhängigkeiten will. Darum geht es mir. LostInMusic schrieb: >>showSendePosition(100,100,0); // Empfaenger C existiert nicht 1D > > Wie kommst Du auf "Empfaenger C existiert nicht"? Damit wollte ich zeigen das die ursprungliche, eindimensionale Lösung des TO in meinem Programm als Sonderfall enthalten ist. Korrekterweise muss man auch alle y-Koordinaten auf 0 setzen. Aber das habe ich weiter oben schon erwähnt. LostInMusic schrieb: > Wenn der Empfänger vom Sender noch weiter als d weg ist, wird P sogar > negativ. All diese schönen Effekte handelt man sich mit der Wahl einer > linearen P(r)-Funktion ein. Ja sicher, damit bin ich deiner Meinung.
>Ich kann nicht einfach eine nichtlineare Formel aus der realen Welt >nehmen und dann erwarten das damit eine lineare Simulation funktioniert. Da hast Du mich gründlich missverstanden! Ich wollte Dir sagen, dass deine lineare 2D-Simulation nicht mit einer linearen P(r)-Abhängigkeit funktioniert (dass es mit einer 1/r^2-Abhängigkeit schiefgeht, ist sowieso klar). Die Formel im 1D-Fall mit zwei Empfängern lautet: x = (PA*xA + PB*xB)/(PA + PB) Dabei ist nimmt die Signalstärke P mit dem Abstand linear ab: P(r) = 1 - d/r wobei d der Abstand der beiden Empfänger zueinander ist: d := |xB - xA|. Das ist die ganze Mathematik, auf der das Programm des TO basiert (der TO hat darin genau das codiert - allerdings auf eine umständliche Art). Sie stimmt und das Programm berechnet die korrekte Senderposition auf der x-Achse. Du willst das jetzt auf die 2D-Situation "drei Empfänger in den Eckpunkten eines gleichseitigen Dreiecks" erweitern und denkst, dass die Senderposition dann ja wohl gegeben sein müsste durch: x = (PA*xA + PB*xB + PC*xC)/(PA + PB + PC) y = (PA*yA + PB*yB + PC*yC)/(PA + PB + PC) Das ist aber ein Irrtum: Diese Ausdrücke liefern (mit Ausnahme von vier Punkten, nämlich den Dreieck-Eckpunkten sowie dem Dreieck-Mittelpunkt) falsche Senderpositionen! Zum Beweis mache ich ein Rechenbeispiel: Sei (xA|yA) = (+0.5|0) und (xB|yB) = (-0.5|0) und (xC|yC) = (0|0.8660254) Dieses ABC-Empfänger-Dreieck ist gleichseitig mit der Seitenlänge 1 (der krumme Wert 0.8660254 ist eigentlich 1/2*sqrt(3)). Befindet sich der Sender im Punkt (1|0), soll Empfänger A die Signalstärke 1 und Empfänger B die Signalstärke 0 messen. Dadurch ist die P(r)-Funktion schon eindeutig festgelegt; es muss P(r) = 1 - r gelten, weil A und B gerade 1 voneinander entfernt sind. Sitzt der Sender nun im Punkt (0|0), dann sind die Signalstärken wie folgt: Empfänger A misst PA = 1 - 0.5 = 0.5, Empfänger B misst PB = 1 - 0.5 = 0.5 und Empfänger C misst PC = 1 - 0.8660254 = 0.1339746. Damit liefert Deine Formel als Senderposition: x = (0.5*0.5 + 0.5*(-0.5) + 0.1339746*0)/(PA + PB + PC) = 0 y = (0.5*0 + (0.5)*0 + 0.1339746*0.8660254)/(0.5 + 0.5 + 0.1339746) = 0.102317465 Wie Du siehst, ist die y-Koordinate falsch, denn richtig wäre 0. Man muss bei derartigen Verallgemeinerungen von 1D auf 2D (und ebenso von 2D auf 3D) sehr aufpassen, weil dabei manchmal etwas nicht glatt geht, obwohl man es intuitiv für richtig hält. Diese Sache hier ist ein gutes Beispiel dafür.
Ich bin nicht sicher, dass ich den Kern der momentanen Diskussion wirklich verstehe. Ich habe nur den Eindruck, dass nicht ganz klar ist, an welcher Stelle in dem Problem nicht-Linearität auftritt und dass evtl. eine Skizze helfen könnte. In der angehängten Skizze wird angenommen, dass das Verhältnis der Strecken zwischen A und Sender bzw. B und Sender 1 zu 2 ist. Die gestrichelten Kreise haben jeweils A bzw. B als Zentrum. Mit einem roten Kreis sind jeweils die Schnittpunkte zweier Kreise gekennzeichnet. Und zwar jener Kreise, deren Radien im Verhältnis 1 zu 2 stehen. Die rote Linie ist eine (etwas grob hingebogene) Bezier-Linie, die in etwa die Zwischenwerte approximieren soll. Man kann erahnen, dass die Linie eine Parabel beschreibt. Was durch die Gleichungen von u.a. Markus und Ulrich bestätigt wird. Man sieht auch, meine ich, dass die Frage, wenn sie denn eine Rolle in der Diskussion spielt, ob nun ein 1/r oder ein 1/r^2 Ausbreitungsgesetz anzuwenden ist (ich habe keinerlei Zweifel, dass 1/r^2 gilt), irrelevant ist, denn in jedem Fall ist letztlich nur das Verhältnis der Strecken wichtig. Und das ist in dem einen Fall eben lediglich AS/BS oder sqrt(AB/BS) wie übrigens u.a. Ulrichs Gleichungen. Die Schlüsse daraus sind nicht unbedingt trivial. Man mag irrigerweise spontan annehmen, dass die Orte, an denen das Verhältnis zwischen den Entfernungen AS und BS gleich ist, eine Gerade bilden. Aber das ist, wie die Grafik zeigen soll, nicht der Fall. (Unter anderem deswegen ist auch die von X4U vorgeschlagene Methode des Bogenschnittes nicht anwendbar). Die Skizze ist mit DIA erstellt. Neben der Grafik hänge ich noch die Datei an, falls jemand damit spielen will.
LostInMusic schrieb: > Man muss bei derartigen Verallgemeinerungen von 1D auf 2D (und ebenso > von 2D auf 3D) sehr aufpassen, weil dabei manchmal etwas nicht glatt > geht, obwohl man es intuitiv für richtig hält. Diese Sache hier ist ein > gutes Beispiel dafür. Danke für die Aufklärung. Da habe ich mir wirklich einen groben Schnitzer geleistet.
Theor schrieb: > In der angehängten Skizze wird angenommen, dass das Verhältnis der > Strecken zwischen A und Sender bzw. B und Sender 1 zu 2 ist. > Die gestrichelten Kreise haben jeweils A bzw. B als Zentrum. > Mit einem roten Kreis sind jeweils die Schnittpunkte zweier Kreise > gekennzeichnet. Und zwar jener Kreise, deren Radien im Verhältnis 1 zu 2 > stehen. > Die rote Linie ist eine (etwas grob hingebogene) Bezier-Linie, die in > etwa die Zwischenwerte approximieren soll. > > Man kann erahnen, dass die Linie eine Parabel beschreibt. Was durch die > Gleichungen von u.a. Markus und Ulrich bestätigt wird. Alleine schon das Gefühl sollte einem sagen, dass hier wahrscheinlich ein gebrochenpolynomiales Verhältnis vorliegt (wegen der Kreise). Ich hab's gerade mal per Bestapproximation durch ein Polynom von Grad=2 approximiert und starke Abweichungen festgestellt. Erst ab Polynomgrad grösser 4 ergibt visuell akzeptable Übereinstimmung, d.h. ein Indiz für die Rationalität (d.h. p/q, p,q: Polynome). Durch das Aufstellen der Gleichungen wird das auch bestätigt. Theor schrieb: > Man sieht auch, meine ich, dass die Frage, wenn sie denn eine Rolle in > der Diskussion spielt, ob nun ein 1/r oder ein 1/r^2 Ausbreitungsgesetz > anzuwenden ist (ich habe keinerlei Zweifel, dass 1/r^2 gilt), irrelevant > ist, denn in jedem Fall ist letztlich nur das Verhältnis der Strecken > wichtig. Und das ist in dem einen Fall eben lediglich AS/BS oder > sqrt(AB/BS) wie übrigens u.a. Ulrichs Gleichungen. > > Die Schlüsse daraus sind nicht unbedingt trivial. > Man mag irrigerweise spontan annehmen, dass die Orte, an denen das > Verhältnis zwischen den Entfernungen AS und BS gleich ist, eine Gerade > bilden. Aber das ist, wie die Grafik zeigen soll, nicht der Fall. > (Unter anderem deswegen ist auch die von X4U vorgeschlagene Methode des > Bogenschnittes nicht anwendbar). Deinem ersten Beitrag hier entnahm ich, dass du das Problem richtig gelöst hast (bzw. der korrekte Ansatz), hier negierst du aber die Lösung von X4U. Genau mit dessen Ansatz habe ich aber bereits die korrekte Lösung gefunden, siehe Skizze.
Sigi schrieb: > Theor schrieb: >> In der angehängten Skizze ... > > Alleine schon das Gefühl sollte einem sagen, [...] Lassen wir das mit dem Gefühl vielleicht mal vorläufig aussen vor. Siehst Du irgendeinen Fehler oder eine Abweichung von der Problemsituation in meiner Skizze? Das aber hat vielleicht auch Zeit, denn das folgende scheint mir vielversprechender einen evtl. Fehler oder jedenfalls Unterschied zwischen unseren Verfahren festzustellen. > > Theor schrieb: >> Man sieht auch, meine ich, dass [...] > > Deinem ersten Beitrag hier entnahm ich, dass du das > Problem richtig gelöst hast (bzw. der korrekte Ansatz), > hier negierst du aber die Lösung von X4U. Genau mit dessen > Ansatz habe ich aber bereits die korrekte Lösung gefunden, > siehe Skizze. Ich denke zunächst nicht, dass es nur ein einziges korrektes Verfahren gibt. Mag sein, dass meines komplizierter als nötig ist. Mag aber auch sein, dass meines in gewisser Hinsicht allgemeiner ist. Es würde mir, denke ich, helfen, wenn Du Deine Skizze erläuterst. Vermutlich gehen die Einzelheiten aus Deinen bisherigen Beiträgen schon hervor, aber ich wäre Dir dankbar, wenn Du zusammen mit der Erläuterung der Skizze, Dein Verfahren noch einmal konzentriert erläuterst. Konkret würde ich mir eine Erläuterung darüber wünschen, wie Du die Radien der blauen Kreise bestimmst. Und was die Voraussetzungen sind. Ich möchte an dieser Stelle meine eigene, wie ich meine zentrale, Annahme nennen: Es wird von den Empfängern jeweils eine Feldstärke, Leistung oder vergleichbares gemessen. (Die Wahl wirkt sich "nur" auf das anzuwendende Abstandsgesetz aus). Jedoch ist diese Messung nicht absolut. Ich setze nur voraus, dass, bei gleicher Entfernung zum Sender, konstanter Sendeleistung, und perfekter radialer Abstrahlung, alle Empfänger in jeder Richtung, den gleichen Wert messen. Die Leistung des Senders muss nicht bekannt sein. Nur die vom TO genannte Voraussetzung, dass die Sender alle gleichzeitig messen, muss gegeben sein. Wenn ich Deiner Erklärung vorgreifen darf, dann vermute ich, dass Du im Gegensatz zu mir, davon ausgehst, dass Deine Empfänger die Leistung (oder welches dazu proportionale Maß auch immer) absolut messen und die Leistung des Senders bekannt ist. Ich vermute dass, weil ich mir eine andere Methode die Radien Deiner Kreise, skaliert auf absolute Längen, zu bestimmen im Moment nicht vorstellen kann. Vermute ich richtig?
@ Sigi Ah. Ich sehe gerade, dass Du es hier Beitrag "Re: Kleines Matheproblem (Positionsbestimmung)" schon erläutert hast. Ist mir entfallen. Mein Fehler. Unter den Voraussetzungen einer absoluten Messung und bekannter Sendeleistung, funktioniert Dein Verfahren. Und natürlich das von X4U. Lasse ich die absolute Messung fallen, dann funktioniert mein Verfahren immer noch. Wenn ich keine absolute Messung brauche, dann kann ich das Geld für die Referenz stattdessen für mehr Marzipan ausgeben. :-) Nun, ich hoffe Deine Frage ist damit geklärt.
Theor schrieb: > Lassen wir das mit dem Gefühl vielleicht mal vorläufig aussen vor. Das sollte keinesfalls in irgendeiner Form beleidigend sein, ich hatte gedacht, dass das mit der gebrochenrationalen Form iE klar sein sollte. Z.B. lassen sich perspektivischen Projektion in der Form (ax+b)/(cx+d) beschreiben (gebr.rat. vom Grad 1,1), bei Kreisschnitten erhält man schnell Formen wie (ax^2+bx+c)/(dx^2+ex+f) oder je nach Lage höhergradig, soll hier aber auch kein Thema sein. Theor schrieb: > Siehst Du irgendeinen Fehler oder eine Abweichung von der > Problemsituation in meiner Skizze? Nein, eben nicht, die Skizze ist korrekt. Fügst du noch einen 3. Empfänger hinzu, dann sollte sich idR für alle deine Kreiskombinationen ein Sender finden lassen derart, dass er einer der beiden Kreisschnittpunkte ist. Dass die von dir eingezeichneten Kurve keine "exakte" Parabel ist, spielt keine Rolle, wichtig ist ja, dass sie keine Gerade ist, d.h. keine Linearität vorliegt. (Linearität: Du hast die Entfernungen und kannst daraus per linearer Form, z.B. der obigen baryzentrischen Kombination den Sendepunkt bestimmen. Habe ich ja auch weiter Oben versucht, aber bis auf Sender in etwa der Mitte grosse Abweichungen erhalten. Ausserdem hat der baryzentrische Ansatz viele Fehler, wie sie ja zT schon beschrieben wurden) Theor schrieb: > Ich denke zunächst nicht, dass es nur ein einziges korrektes Verfahren > gibt. Mag sein, dass meines komplizierter als nötig ist. Mag aber auch > sein, dass meines in gewisser Hinsicht allgemeiner ist. Da muss ich dir recht geben. Ich war so sehr in einem Teilproblem meiner Lösung verbohrt, dass ich mir über eine Alternativlösung keine Gedanken mehr gemacht hatte. Ich habe gerade noch einen zweiten, einfacheren (je nach Betrachtung) Ansatz umgesetzt, der auf Iteration ähnlich der Newton-Iteration basiert. Dazu berechne ich den aktuellen Abstand eines Punkts zu den Empfängern und versuche diesen dann so zu korrigieren, dass die drei Abstände Richtung Abstände zum Sender konvergieren. Die Konvergenzrate ist in etwa O(log(n)). Theor schrieb: > Es würde mir, denke ich, helfen, wenn Du Deine Skizze erläuterst. > ... > Konkret würde ich mir eine Erläuterung darüber wünschen, wie Du die > Radien der blauen Kreise bestimmst. Und was die Voraussetzungen sind. "Sender" ist klar, "R0".."R2" sind die Empfänger, "Hit" die berechnete Senderposition, die Radien der Kreise sind die Abstände "Ri"-"Sender" (sehr wichtig: hier habe ich mich aus der Diskussion 1/r, 1/r^2 etc. rausgeschlichen, ich haber aber Oben schon geschrieben, dass die Empfangsleistung auf eine Abstandsskala umrehenbar sein muss. Genaueres lässt der TO ja offen.) Zwei Kreise schneiden sich in 0,1 oder 2 Punkten (rot eingezeichnet), die grüne/gelbe und türk. Linie stellen ein lokales Koord.System da, wobei Gelb ins Dreieck, Türkis aus dem Dreieck zeigt. In der Skizze ist "Hit" gleich den zusammenfallenden Endpunkte der gelben Linie, es kann aber auch jede beliebige Kombination aus gelben und türk. Linien sein, je nachdem, ob der Sender im Dreieck oder Ausserhalb liegt (d.h. 8 Suchvorgänge nach den besten Tripel). Theor schrieb: > Wenn ich Deiner Erklärung vorgreifen darf, dann vermute ich, dass Du im > Gegensatz zu mir, davon ausgehst, dass Deine Empfänger die Leistung > (oder welches dazu proportionale Maß auch immer) absolut messen und die > Leistung des Senders bekannt ist. Ich vermute dass, weil ich mir eine > andere Methode die Radien Deiner Kreise, skaliert auf absolute Längen, > zu bestimmen im Moment nicht vorstellen kann. Vermute ich richtig? Genau für diesen (sehr wichtigen!!) Punkt hatte ich am Sonntag auch ein kleines Skript aufgesetzt. In meinen Zeichnungen bzw. der SW dahinter tauchen nur Abstände auf, keine Empfangsleistung oÄ. Du hast aber alle 3 (relativen) Leistungen zu einem Zeitpunkt, und damit kannst du die absoluten Abstände berechnen. Dazu habe ich per Zufall den Sender positioniert, per Zufall die Sendeleistung festgelegt, damit die Abstände berechnet und dann mit den tatsächlichen Abständen zum Sender verglichen (wichtig: hier habe ich die Form 1/R^2 gewählt, 1/R sollte aber auch kein Problem sein). Aber das ist auch genau mein erster Gedanke gewesen, das Sendeleistungsproblem, die geometrische Berechnung und dann das Rauschen möglichst voneinander zu trennen. (uff, am Sonntag hatte ich die Formeln und die SW in 20-30 Minuten runtergeschrieben, für eine ausführliche Erklärung aller Bilder würde ich wesentlich länger brachen, deswegen verzichte ich hier darauf)
Das hat mir nun keine Ruhe gelassen, und ich habe mal geplottet, was dabei herauskommt. Witziger Weise hatten wir beide in gewisser Weise unrecht. Das ist keine Parabel oder wie ich auch dachte eine Hyperbel. Jedenfalls kommt keine gebrochen rationale Funktion mit x im Nenner heraus. Vielmehr unter anderem die vierten Potenzen von Zähler und Nenner des Verhältnisses der Strecken aus der dann noch die Wurzel gezogen wird. Hübsch hässliche Formel - hübsch hässlicher Graph. :-) Das ganze wird an den Rändern komplex und sieht insgesamt eher wie die Abschnitte einer Ellipse aus - nur das die Lücken eine Gerade mit x = irgendwas sind - ab da werden die Lösungen komplex. Hätte ich nicht erwartet. Naja. Muss ich noch gründlich überprüfen ob ich da nicht irgendwo Mist gebaut habe. Aber einmal habe ich schon über Formel drübergeschaut, nachdem ich die Plots gesehen habe. Die Bilder folgen im wesentlichen meiner Skizze. Der Abstand u der Empfänger ist 12 Einheiten. Der Empfänger A ist an der Position x = 0 und y = 10 zu denken. v und w sind das Streckenverhältnis. Der Dateiname gibt jeweils v, w und u an. v und u bleiben konstant. Sieht aber irgendwie interessant aus. :-)
Lapsus! Der Empfänger A ist an der Position x = 0 und y = 12 zu denken - nicht 10. B übrigens an x = 0 und y = 0.
@ Sigi Was mich dann aber doch irritiert: Du schreibst: "In meinen Zeichnungen bzw. der SW dahinter tauchen nur Abstände auf, keine Empfangsleistung oÄ. Du hast aber alle 3 (relativen) Leistungen zu einem Zeitpunkt, und damit kannst du die absoluten Abstände berechnen." Es müssen doch Entfernungen proportional zur Leistung markiert sein. An sich habe ich Dich auch so verstanden, dass das der Fall ist. Und vor allem: Um eine absolute Entfernung auszurechnen, brauchst Du absolute Daten. Relative reichen da nicht, meine ich. Nach welchem Prinzip machst Du das genau?
Ah, da ist eine Lösung einer Wurzel beim umformen unter den Tisch gefallen. Hoppla! Es gibt insgesamt vier Lösungen und nicht nur zwei. Na, jetzt habe ich keine Lust mehr. Ein andermal.
>Um eine absolute Entfernung auszurechnen, brauchst Du absolute Daten. Relative
reichen da nicht
Nicht unbedingt. Das kann man sich leicht am 1D-Fall klarmachen:
Zwei "baugleiche" (*) Empfänger A und B mögen auf der x-Achse an den
Koordinaten +1 bzw. -1 sitzen. Der Sender befindet sich irgendwo
dazwischen an der Position x. Die Empfangsstärken, mit der A und B das
Signal empfangen, seien PA und PB. Um die Senderposition zu bestimmen,
muss man nun nicht die absoluten Werte von PA und PB kennen, sondern es
reicht, zu wissen, wie groß der Quotient PB/PA ist.
Nimmt man P(r) ~ 1/r² an (r = Abstand Sender-Empfänger), dann befindet
sich der Sender an der Position
Herleitung: A ist vom Sender a = 1 - x weit entfernt, B ist vom Sender b = 1 + x weit entfernt. Aus P(r) ~ 1/r² folgt PB/PA = a^2/b^2, also ist a/b = sqrt(PB/PA) = sqrt(theta). a und b eingesetzt führt auf die Gleichung sqrt(theta) = (1 - x)/(1 + x) und die lässt sich leicht nach x auflösen mit obigem Ergebnis. In der 2D-Entsprechung ist es genauso: Man muss nicht die absoluten Werte von PA, PB und PC kennen, sondern es genügt zu wissen, wie groß PA/PC und PB/PC sind. Daraus kann man die Senderposition berechnen, sofern sich der Sender innerhalb des Umkreises des Dreiecks ABC befindet. Wer sich davon überzeugen will, kann ja mal versuchen, das Gleichungssystem a^2 = (x - 1)^2 + y^2 b^2 = (x + 1)^2 + y^2 c^2 = (x - xC)^2 + (y - yC)^2 alpha = c^2/a^2 beta = c^2/b^2 aufzulösen (bekannt sind xC, yC, alpha = PA/PC und beta = PB/PC; unbekannt sind x, y, a, b, c). Mehr muss man ja nicht machen. ___________ (*) "Baugleichheit" der Empfänger bedeutet, dass bei gleicher Entfernung vom Sender auch die Empfangsstärken gleich groß sind, d. h. aus a = b folgt PA = PB und umgekehrt.
LostInMusic schrieb: >>Um eine absolute Entfernung auszurechnen, brauchst Du absolute Daten. Relative > reichen da nicht > > Nicht unbedingt. Das kann man sich leicht am 1D-Fall klarmachen: > > [...] Das ist ein Missverständnis, denke ich. Meine Frage bezog sich auf den ersten Schritt von Sigis Methode. Sie bezog sich nicht auf das Gesamtproblem, dass selbstverständlich darauf hinausläuft, die Entfernung von den Empfängern zu dem Sender zu bestimmen. Was Du da beschreibst, ist von einigen Antwortenden und unter anderem von mir beschrieben worden. Theor schrieb: > [...] > > [...] denn in jedem Fall ist letztlich nur das Verhältnis der Strecken > wichtig. Und das ist in dem einen Fall eben lediglich AS/BS oder > sqrt(AB/BS) wie übrigens u.a. Ulrichs Gleichungen. > [...] Das ist also an sich klar, denke ich, dass es auf diese Weise geht. Ich sah in Sigis Aussage: "In meinen Zeichnungen bzw. der SW dahinter tauchen nur Abstände auf, keine Empfangsleistung oÄ. Du hast aber alle 3 (relativen) Leistungen ..." einen inneren Widerspruch. (Inzwischen habe ich meine Ansicht geändert. Siehe letzter Absatz.) Denn, anders als bei unserem (Ulrichs, Deinem, Meinem) Ansatz, beruht Sigis Methode darauf, dass er im ersten Schritt aus den bekannten absoluten Sende- und Empfangsleistungen eine absolute Entfernung berechnet, damit im zweiten Schritt Kreise mit einem absoluten Radius um die Empfänger zieht und im dritten Schritt deren Schnittpunkte bestimmt. Ich fürchte ich habe Sigis Satz, den ich hinterfragt habe, aus einer falschen Perspektive interpretiert. Meiner jetzigen Ansicht nach, bezog er sich mit "relativ" nicht auf die Relation der Leistungen zwischen zwei Empfängern sondern auf die paarweise Relation der Relationen(!) der Leistungen zw. zwei Empf. - also auf die Schnittpunkte der Kreise. Das wäre konsistent mit seinen restlichen Aussagen. (Vielleicht hätte er das etwas prägnanter ausdrücken können. Aber man [einschliesslich mir] vertut sich da eben manchmal. Meinem eigenen Satz, den ich gerade zitiert habe, finde ich auch nicht mehr prägnant genug.)
>Ich fürchte ich habe Sigis Satz, den ich hinterfragt habe, aus einer >falschen Perspektive interpretiert. Kommt in den besten Familien vor... smile Mathematisch ausgedrückt: Empfänger A misst die Signalstärke PA = f/a^2, Empfänger B misst die Signalstärke PB = f/b^2, Empfänger C misst die Signalstärke PC = f/c^2, wobei a/b/c die Abstände der Empfänger A/B/C zum Sender sind. In der Größe f steckt die Leistung des Senders, welche nicht bekannt ist. Deshalb ist es unmöglich/"verboten", irgendetwas mit f zu rechnen. Danke für Deine Antwort. Ich fange an, zu verstehen, welche Lösungsideen ihr da verfolgt.
@Sigi: >Du hast aber alle 3 (relativen) Leistungen >zu einem Zeitpunkt, und damit kannst du die absoluten Abstände >berechnen. Dazu habe ich per Zufall den Sender positioniert, >per Zufall die Sendeleistung festgelegt, damit die Abstände >berechnet und dann mit den tatsächlichen Abständen zum Sender >verglichen (wichtig: hier habe ich die Form 1/R^2 gewählt, >1/R sollte aber auch kein Problem sein). OK, dazu hast Du in Deinem Skript bestimmte Formeln codiert. Welche? Würde mich echt interessieren.
LostInMusic schrieb: > OK, dazu hast Du in Deinem Skript bestimmte Formeln codiert. Welche? > Würde mich echt interessieren. Einfacher Ansatz: Lege das gleichseitige Dreieck in ein Koordinatensystem so, das der 1. Punkt = (-alpha,0), der 2. Punkt = (alpha,0) und der 3. Punkt = (0,beta) ist. Für die Schnittgleichungen erhält man dann: G1: (x+alpha)^2 + y^2 = r1^2 G2: (x-alpha)^2 + y^2 = r1^2 G3: x^2 + (y-beta)^2 = r3^2 Je Punktepaar kannst du dann die Schnittpunkte per Subtraktion der Gleichungen Gi,Gj bestimmen, inden du zuerst nach x umstellst und dann y ausrechnest (geht auch umgekehrt, zuerst y, dann x). Da du nur 2 Paare betrachten musst (man muss sich mathematiscch klar machen, warum!), erhalte ich durch simple Auswahl G3-G1, G3-G2. Daraus erhalte ich dann ein X und damit EIN Y (warum EIN?, sollte klar sein!). Statt r1,r2,r3 kann man jetzt s*r1,s*r2,s*r3 nehmen. Bei der Auflösung nach z.B. Y wie gerade Beschrieben erhält man eine (wegen der Eindeutigkeit) Gleichung für S. Viel Spass beim Rechnen. P.S. Da ich die beiden Probleme getrennt gelöst habe (zuerst das Schnittpunktproblem und dann das Sendestärkeproblem) ist mir erst im Nachhinein klar geworden, dass man mit den Gleichungen G3-G1 und G3-G2 den Schnittpunkt als auch die Sendestärke gleichzeitig lösen kann.
Thanks for the feedback. >G1: (x+alpha)^2 + y^2 = r1^2 >G2: (x-alpha)^2 + y^2 = r1^2 <-- Korrektur: "= r2^2" >G3: x^2 + (y-beta)^2 = r3^2 >Statt r1,r2,r3 kann man jetzt s*r1,s*r2,s*r3 nehmen. In Ordnung, dann habe ich G1: (x+alpha)^2 + y^2 = s*r1^2 G2: (x-alpha)^2 + y^2 = s*r2^2 G3: x^2 + (y-beta)^2 = s*r3^2 So ich es richtig nachvollzogen habe, läuft es darauf hinaus, damit ein System aus drei Gleichungen für die drei Unbekannten x, y und s zu haben. Das stimmt aber nur, wenn r1, r2 und r3 bekannte Größen sind. Was setzt Du denn dafür ein? Kommen hier die Empfangsstärken ins Spiel, oder bleiben die weiter außen vor (wenn ja: wann und inwiefern treten die dann auf den Plan)? Nein, mehr Fragen sind es im Moment nicht, sorry... ;-) >Viel Spass beim Rechnen. Danke, den hatte ich schon bei meinem Ansatz (siehe Post vom 19.10.).
LostInMusic schrieb: > Das stimmt aber nur, wenn r1, r2 und r3 bekannte Größen sind. Was > setzt Du denn dafür ein? Kommen hier die Empfangsstärken ins Spiel, oder > bleiben die weiter außen vor (wenn ja: wann und inwiefern treten die > dann auf den Plan)? Aus der Differenz von G1 und G2 erhälst du: x = (r1^2-r2^2) / (4*alpha) Das wird dann in G1,G2 und G3 eingesetzt und führt zu drei Gleichungen für y: GG1: y1 = +/- sqrt(r1^2-(x+alhpa)^2) GG2: y2 = +/- sqrt(r1^2-(x-alpha)^2) GG3: y3 = -p/2 +/- sqrt(p^2/4-q) mit p = -2*beta q = beta^2+x^2-r3^2 GG1 und GG2 liefern nur 2 verschiedene Y-Werte (bilden mit x ja nichts anderes als die Schnittpunkte der Kreise um Punkt 1 und Punkt 2), Und jetzt wird's ein wenig komplizierter: GG3 liefert ebenfalls 2 Y-Werte, von denen mindestens einer mit einem der anderen beiden Y-Werte übereinstimmen muss (Grundvoraussetzung war ja, dass sich alle 3 Kreise schneiden). Wenn du jetzt statt ri s*ri (s ist positiv!!) schreibst und dir alle 4 Fälle von möglichen Fällen (Y-Wert aus GG3 mit Y-Wert aus GG1 bzw. GG2) betrachtest, dann erhällst du idR nur einen passenden Wert für S (denn entweder das eine Y ist positiv und das andere negativ etc.). (hm, die Lösung von letzer Woche habe ich leider nicht abgespeichert, ich kann mich nur noch an 2 Fälle erinnert, d.h. iergendwo kann man an den Gleichungen noch kürzen? Ich hab's aber graphisch verifiziert.) Du hast wahrscheinlich eine geschlossene Formel für Y erwartet (x ist ja geschlossen), die habe ich aber nicht gefunden/errechnen können.
>(x ist ja geschlossen) Wenn Du mit der x-Formel diese... >x = (r1^2-r2^2) / (4*alpha) meinst, trifft das "geschlossen" zweifellos zu; allerdings würde ich dann doch noch gerne wissen wollen, welche Werte Du denn für r1 und r2 einsetzt und woraus Du die bestimmst. Die Abstände des Senders von den Empfängern sind ja nicht bekannt (sondern über die Empfangsstärken nur die paarweisen Quotienten der Abstände, womit man über viel weniger Information verfügt). >die habe ich aber nicht gefunden/errechnen können. OK. Zum Glück ist das bei diesem Problem nicht der Weisheit letzter Schluss.
LostInMusic schrieb: > allerdings würde ich > dann doch noch gerne wissen wollen, welche Werte Du denn für r1 und r2 > einsetzt und woraus Du die bestimmst. r1,r2 und r3 sind nur Variablen, die ich später einfach durch s*r1, s*r2 bzw. s*r3 ersetze (r1,r2,r3 schreibe ich nur aus purer Faulheit) und damit in mindestens einem von 4 Fällen s auszurechnen. s wird hier vereinfachend von mir als lineare Komponente vorausgesetzt, kompliziertere Abhängigkeiten bis zu f(s*ri) können so nicht gelöst werden. (btw. jetzt weiss ich auch wieder, warum ich letzte Woche nur 2 Fälle hatte. Ich hatte einfach eine ungültige Annahme gemacht, die Sender ausserhalb des Dreiecks betrafen. Alle 4 Fälle ausformuliert decken alle Senderpositionen ab). Kleines Beispiel für den Fall eines Senders, der im Dreieck liegt: GG1 liefert GGG1: y = +sqrt(r1^2-(x+alpha)^2) (y ist ja positiv), und GG3 liefert GGG2: y = -p/2 - sqrt(p^2/4-q), d.h. GGG2: y = beta - sqrt(r3^3-x^2), somit GGG1=GGG2 einfach quadrieren liefert eine quadratische Gleichung für s (vorausgesetzt, dass diese Gleichung aufgelöst werden kann, ansonsten muss der nächste Fall betrachtet werden). GG1: y1 = +/- sqrt(r1^2-(x+alhpa)^2) GG2: y2 = +/- sqrt(r1^2-(x-alpha)^2) GG3: y3 = -p/2 +/- sqrt(p^2/4-q) mit p = -2*beta q = beta^2+x^2-r3^2
LostInMusic schrieb: > allerdings würde ich > dann doch noch gerne wissen wollen, welche Werte Du denn für r1 und r2 > einsetzt und woraus Du die bestimmst. r1,r2 und r3 sind nur Variablen, die ich später einfach durch s*r1, s*r2 bzw. s*r3 ersetze (r1,r2,r3 schreibe ich nur aus purer Faulheit) und damit in mindestens einem von 4 Fällen s auszurechnen. s wird hier vereinfachend von mir als lineare Komponente vorausgesetzt, kompliziertere Abhängigkeiten bis zu f(s*ri) können so nicht gelöst werden. (btw. jetzt weiss ich auch wieder, warum ich letzte Woche nur 2 Fälle hatte. Ich hatte einfach eine ungültige Annahme gemacht, die Sender ausserhalb des Dreiecks betrafen. Alle 4 Fälle ausformuliert decken alle Senderpositionen ab). Kleines Beispiel für den Fall eines Senders, der im Dreieck liegt: GG1 liefert GGG1: y = +sqrt(r1^2-(x+alpha)^2) (y ist ja positiv), und GG3 liefert GGG2: y = -p/2 - sqrt(p^2/4-q), d.h. GGG2: y = beta - sqrt(r3^3-x^2), somit GGG1=GGG2 einfach quadrieren liefert eine quadratische Gleichung für s (vorausgesetzt, dass diese Gleichung aufgelöst werden kann, ansonsten muss der nächste Fall betrachtet werden).
Noch vergessen: s muss natürlich auch positiv sein. Hat man eine funktionale Beziehung zwischen s und dem Abstand (z.B. f(s*r1) etc.), dann müssen härtere mathematische Ansätze wie z.B. iterative Gleichungslöser eingesetzt werden.
Hat man zwei Empfangssignald, kann man die Differenzzeit messen. Daraus kann man eine Hyperbel zeichnen. Mit dem 1. Oder 2. Signal und dem 3. Signal ist eine weitere Hyperbel zu zeiçhnen. Der Schnittpunkt der beiden Hyperbel ist der gesuchte Ort.
Sneef schrieb: > Tach, > im Rahmen eines kleinen Bastelprojekts knobel ich gerade an einem > Geometrie-Problem, komme aber nicht so recht weiter. Vielleicht hat ja > hier jemand einen Tipp für mich? Entschuldige mal, DAS ist Stoff der 9.Klasse an Gymnasien. Mein Tocher hatte gerade kürzlich diese Aufgabe. Braucht nur die Kreisgleichung und Gauss.
Meckerzeige schrieb: > Mein Tocher > hatte gerade kürzlich diese Aufgabe. Braucht nur die Kreisgleichung und > Gauss. Hoffentlich hast du dem armen Kind nicht bei den Hausaufgaben geholfen. Georg
LostInMusic schrieb: > [...] > So ich es richtig nachvollzogen habe, läuft es darauf hinaus, damit ein > System aus drei Gleichungen für die drei Unbekannten x, y und s zu > haben. Das stimmt aber nur, wenn r1, r2 und r3 bekannte Größen sind. Was > setzt Du denn dafür ein? Kommen hier die Empfangsstärken ins Spiel, oder > bleiben die weiter außen vor (wenn ja: wann und inwiefern treten die > dann auf den Plan)? > [...] Du fragst, meine ich, das selbe wie ich. Theor schrieb: > @ Sigi > > Es müssen doch Entfernungen proportional zur Leistung markiert sein. > An sich habe ich Dich auch so verstanden, dass das der Fall ist. > Um eine absolute Entfernung auszurechnen, brauchst Du absolute Daten. > Relative reichen da nicht, meine ich. > > Nach welchem Prinzip machst Du das genau? Im Prinzip hat er ja darauf nicht ausdrücklich mit Ja oder Nein geantwortet. (Falls Dir das gerade durch den Kopf geht: Ich habe Dir ja auf entsprechende Frage schon geantwortet, dass ich nicht das Ziel des Verfahrens insgesamt sondern einen Schritt davon meine). Und Sigis Antwort (Hervorhebung und hoffentlich richtige Korrektur [Ersatz von "und" durch "um" von mir): "r1,r2 und r3 sind nur Variablen, die ich später einfach durch s*r1, s*r2 bzw. s*r3 ersetze (r1,r2,r3 schreibe ich nur aus purer Faulheit) um damit in mindestens einem von 4 Fällen s auszurechnen. sowie einige andere Beiträge von ihm deuten mir darauf hin, dass er versucht S zu nähern, nicht es auszurechnen. Auch scheint er, anders als vermutet, nicht von einer bekannten Sendeleistung auszugehen. Wenn er (sinngemäß) schreibt, er "rechne" mit relativen Entfernungen bzw. er "zeichne" sie ein, dann meint er, denke ich mittlerweile, dass er mit "Ausdrücken" für die relative Entfernung algebraische Umformungen macht, deren Variablen keine konkreten Werte haben bzw. dass er, sozusagen "unter Vorbehalt", Linien einzeichnet, deren endgültige Länge er erst noch bestimmt. Das ist ein Unterschied: Rechnen ist etwas anderes als algebraische Umformungen auch wenn das, wenn man über so etwas redet, gerne mal gleichgesetzt wird; sozusagen Mathe-Umgangssprache. Es ist ein bisschen unglücklich, dass er sein Verfahren nicht Schritt für Schritt und von Skizzen begleitet beschreibt.
@ Sigi Noch eins: Es geht mir dabei nicht darum, dass es nicht zulässig wäre, sich einmal nicht ganz prägnant auszudrücken. Das passiert mir ja auch. Ist überhaupt nicht schlimm. Es geht um das Thema. Aber es ist auch wahr, dass bei dem Thema Mathematik usw. fast immer sehr wichtig ist, genau zu wissen, was gemeint ist. Man kann sich das eigentlich Gemeinte oft denken und es gehört zum guten Ton in Diskussionen einen nicht ganz treffenden Ausdruck zu übergehen und innerlich durch den treffenden zu ersetzen. Aber ich habe den Eindruck, das Du an mehreren Stellen nicht ganz den richtigen Ausdruck getroffen hat und das die Summe dieser Stellen das Verständnis Deines Gedankenganges stark beeinträchtigt. Ich mag mich irren, oder ich bin unfähig diese Summe an Unklarheiten selbst aufzulösen. Aber vielleicht bist Du so gut, Deine Darstellung nochmal etwas zu überarbeiten. Das fände ich sehr nett.
@Sigi: >Hat man eine funktionale Beziehung zwischen s und >dem Abstand (z.B. f(s*r1) etc.), dann müssen härtere >mathematische Ansätze wie z.B. iterative >Gleichungslöser eingesetzt werden. Hmmm... das lese ich im Umkehrschluss so, dass es einfacher ist, wenn man keine funktionale Beziehung zwischen s und dem Abstand hat. Ist das richtig? (Erscheint mir sehr seltsam...) Ich muss auch mal ganz dumm fragen: Hat Deine Größe s etwas mit der Sendeleistung zu tun oder nicht? Hat s irgendeine sonstige physikalische Bedeutung oder ist es nur ein Parameter, der z. B. mit einem iterativen Verfahren minimiert wird? Und auf die Gefahr hin, dass ich Dich damit schon nerve: Wie und an welcher Stelle fließen die laut Aufgabenstellung gegebenen Werte von PA, PB und PC (die Empfangsstärken) in Deinen Algorithmus ein? Deine bisherige Äußerung dazu "s wird hier vereinfachend von mir als lineare Komponente vorausgesetzt" habe ich nämlich nicht verstanden. Auch nicht, was f(s*r1) bedeuten soll. Ich denke, es wäre echt gut, diesen Punkt mal amtlich zu klären. Die Antwort ist dort zu finden, wo in Deinem Skript die Variablenbezeichner für die drei Empfangsstärken stehen. @Theor: Uneingeschränkte Zustimmung von mir.
@ Sigi @ LostInMusic LostInMusic schrieb: Ich hoffe es ist Dir recht, LostInMusic, wenn ich meinen eigenen Senf zu Deinem Beitrag gebe, obwohl er sich nicht an mich richtet. Ich hoffe Du hast Verständnis dafür, Sigi, dass ich meine Deutungen Deiner Aussagen einfüge. Das geschieht, um den Grund und die Zielrichtung meiner Fragen zu präzisieren. > @Sigi: > >>Hat man eine funktionale Beziehung zwischen s und >>dem Abstand (z.B. f(s*r1) etc.), dann müssen härtere >>mathematische Ansätze wie z.B. iterative >>Gleichungslöser eingesetzt werden. > > Hmmm... das lese ich im Umkehrschluss so, dass es einfacher ist, wenn > man keine funktionale Beziehung zwischen s und dem Abstand hat. Ist > das richtig? (Erscheint mir sehr seltsam...) Ich vermute, dass dies lediglich auf einem Flüchtigkeitsfehler beruht. Und zwar vermute ich das, weil Sigi in anderer Hinsicht gewisse nicht-triviale mathematische Begriffe zu kennen scheint. Etwa die gebrochen rationalen Polynome. Prinzipiell ist etwa f(x): x -> y (die identische Abbildung) auch eine Funktion. Vermutlich wird Sigi das auch wissen. Der Gegensatz wäre eigentlich ein völlig willkürlicher oder stochastischer Zusammenhang; ansonsten ist der Zusammenhang grundsätzlich eine Funktion. Entscheidend ist vielmehr die Art der Funktion . Falls z.B. die Definition der Funktion nicht analytisch sondern durch Wertepaare geschieht, die auf nicht-Stetigkeit hinauslaufen. Oder falls in der Funktion nicht-algebraische Ausdrücke wie sin oder tan erscheinen. Das (jedenfalls mich) etwas Verwirrende daran ist, meiner Meinung nach, dass in dem Problembereich der Frage, die nicht-algebraischen Funktionen ohne Not vermieden werden können. Das Abstandsgesetz ist ein Beispiel dafür. Egal ob nun 1/r oder 1/r^2; die Gleichung(en) bleib(t/en) algebraisch. Warum erwähnt Sigi das dann eigentlich in Bezug auf das Abstandsgesetz? Andererseits, - und das spricht für die Erwähnung durch Sigi; nur nicht in dem Kontext -, ergeben algebraische Ausdrücke nicht immer rationale Zahlen. D.h. falls ich eine Zahl für die Position des Senders haben will, muss ich die Wurzeln in den Ausdrücken nähern um eine gewisse Auflösung bzw. Genauigkeit zu erhalten. Das hängt aber vor allem von der Problemsituation in geometrischer Hinsicht ab. Sie führt auf Figuren wie das pythagoreische Dreieck oder auf gleichschenklige Dreiecke. Das hat mit dem Abstandsgesetz aber nichts zu tun. Warum erwähnt also Sigi eine Näherung? Ich verstehe es nicht. > Ich muss auch mal ganz dumm fragen: Hat Deine Größe s etwas mit der > Sendeleistung zu tun oder nicht? Hat s irgendeine sonstige physikalische > Bedeutung oder ist es nur ein Parameter, der z. B. mit einem iterativen > Verfahren minimiert wird? Ich habe heute darüber nochmal nachgedacht und vermute fast, dass Sigis Verfahren darauf hinausläuft, dass er tatsächlich, ausgehend von der relativen empfangenen Leistung, eine Sendeleistung für eine /angenommene Senderposition/ berechnet und Parameter verändert (die Position des Senders) bis die berechnete Leistung der gemessenen entspricht. Dafür sprechen seine Plots, in denen er Linien von einer berechneten zu der wahren Position plottet. Unglücklicherweise für mich, spricht er in dem selben Zusammenhang auch von Messunsicherheiten und Einflüssen der Numerik, so dass für mich nicht eindeutig klar wird, wie er da rechnet. Dagegen spricht allerdings, dass er, falls ich das nicht übersehen habe, nicht erwähnt wie er die erste angenommene Position des Senders wählt. Dagegen spricht auch die Skizze mit dem Dreieck und dem Bogenschlag sowie die damit zusammenhängende Aufstellung des Gleichungssystem, das eine definitive Lösung in Form eines Wurzelterms erlauben würde. Das erscheint mir paradox, denn das Gleichungssystem zeigt ja, dass mit einer bekannten absoluten Leistung und der gemessenen Leistung eine absolute Entfernung sich ausrechnen lässt. Und nur so lassen sich konkrete Kreise (nicht nur eine Schar von Kreisen) um die Empfänger einzeichnen. Aber das sind keine relativen Entfernungen mehr (in dem Sinn eines Verhältnisses der Entfernungen zwischen je einem Empfänger und dem Sender). Beide Widersprüche sind allerdings nicht sehr scharf. Man kann sie durch Annahmen auflösen. Es mag aber auch sein, dass er eine Schar von Kreisen meint, sonst müsste er S nicht erst ausrechnen. Andererseits erwähnt er nicht, dass er die Radien der Kreise annähert. In diesem Punkt besteht eine zweite Unklarheit, meine ich. > [...] Mein Stand in der Angelegenheit ist im Moment folgender. Es gibt (mindestens) zwei Methoden: 1. Ausgehend von bekannter absoluter Sendeleistung und gemessenen absoluten Empfangsleistungen (oder einer proportionalen Grösse) lassen sich drei vollständig bestimmte Kreise der absoluten Entfernung um die Empfänger ziehen. Die Schnittpunkte von sechs Kreisen ergeben eindeutig die Senderposition. (Extremfälle in denen weniger Schnittpunkte erforderlich sind, einmal unberücksichtigt). 2. Ausgehend von gleichen Empfindlichkeiten der Empfänger und von den dadurch gemessenen relativen Empfängerleistungen (oder einer proportionalen Grösse) lassen sich drei Verhältnisse von je zwei Empfänger-Sender-Entfernungen berechnen. Die Ortskurven desjenigen Punktes für je zwei Empfänger, für welche dieses Streckenverhältnis vorliegt, ergeben Ellipsen. (Mit einem kleinen Vorbehalt; ich habe es noch nicht nach geprüft.) Die Schnittpunkte dreier Ellipsen ergeben eindeutig die Senderpositionen (Extremfälle in denen weniger Schnittpunkte erforderlich sind, einmal unberücksichtigt).
Ich will noch hinzufügen, dass Methode 1, da sie eine bekannte absolute Senderleistung voraussetzt, den Vorgaben des TO widerspricht. Das er das zur Kenntnis genommen hat, hast Du, Sigi an sich auch ziemlich bald nach dem Beitrag des TO bestätigt. Das aber spricht dafür, dass Du eben nicht Methode 1 meinst sondern die Senderleistung überhaupt annäherst. Aber warum? Mit welchen genauen Schritten?
@Theor: >Ich hoffe es ist Dir recht... Immer gerne - ich freue mich über die Aufmerksamkeit :-) >Ich habe heute darüber nochmal nachgedacht und vermute fast, dass Sigis >Verfahren darauf hinausläuft, Statt Vermutungen anzustellen, frag ich lieber nach. Wollen wir hoffen, von Sigi noch die nötigen Erklärungen zu bekommen. >Ich will noch hinzufügen, dass Methode 1, da sie eine bekannte absolute >Senderleistung voraussetzt, den Vorgaben des TO widerspricht. So ist es. Das Problem, das Methode 1 löst, ist schlicht nicht das vom TO gestellte Problem.
@LostInMusic, ich habe inkl. Heute die letzten Tage den Heizungsbauer wegen einer neuen Heizung im Haus, deshalb hatte ich keine Zeit oder konnte nur knapp antworten. Btw, mit LostInMusic schrieb: > Uneingeschränkte Zustimmung von mir. meinst du doch hoffentlich nicht seine Humorlosigkeit, aber sei's drum. Gestern Abend/Nacht habe ich endlich meine finale und knappe Lösung gefunden. Ich nehme zur Einfachheit halber mal ein gebrochenlineares Modell der Sendeleistung (gebr.quadr. lässt sich genauso behandelt, ich möchte es aber so einfach wie möglich halten): pi: gemessene Sendeleistung ri: Entfernung, für dich unbekannt, d.h. darf beim Lösen nicht verwendet werden s : Sendeleistung, ebenfalls unbekannt, steht im Zentrum unseres Problems si: =1/pi, wichtige Hilfsvariable Ich setze s*si = ri pi = s/ri Und jetzt kopiere ich einfach mal einen Skriptausschnitt, für die komplette und sehr lange Herleitung fehlt mir die Zeit: hx = (s1^2-s2^2)/(4*alpha) delta = (s1^2-s3^2-2*alpha*hx)/(2*beta) gamma = (beta^2-alpha^2)/(2*beta) ga4 = hx^2 + delta^2 ga2 = 2*hx*alpha + 2*delta*gamma - s1^2 ga0 = alpha^2 + gamma^2 gb2 = ga4/ga4 gb1 = ga2/ga4 gb0 = ga0/ga4 p = gb1 q = gb0 ht1 = -p/2 + sqrt(p^2/4-q) ht2 = -p/2 - sqrt(p^2/4-q) hs1 = sqrt(ht1) hs2 = sqrt(ht2) x1 = hs1^2*hx y1 = (hs1^2*(s1^2-s3^2-2*alpha*hx)-alpha^2+beta^2)/(2*beta) x2 = hs2^2*hx y2 = (hs2^2*(s1^2-s3^2-2*alpha*hx)-alpha^2+beta^2)/(2*beta) Wegen der quadratischen Gleichung in dieser Sequenz ergeben sich 2 Punkte (x1,y1) und (x2,y2) und die zugehörigen möglichen Sendeleistungen hs1 bzw. hs2. Durch Einsetzen in z.B. G1 von Oben kann sofort festgestellt werden, ob (x1,y1) bzw. (x2,y2) gleich dem Sender ist. D.h. man erhält eine sehr kompakte Lösung, einfacher geht's glaube ich nicht. (ich habe anhand vieler Sim.durchläufe festgestellt, dass für Sender innerhalb des Umlaufkreises immer (x1,y1) und ausserhalb immer (x2,y2) der gesuchte Punkt ist, imo eine interesante Beobachtung) Die Beiden Bilder zeigen für jeden Sender in [-2..2,-2..2] bzw. [-20..20,-20..20] den quadratischen Fehler als Abstand Sender<=>BerechneterSender, jeweils 10000 Durchläufe, d.h. akzeptabel. Ebenso gut/klein sind die Fehler durch Hinzufügen von Rauschen auf pi.
..und, hätte ich fasst vergessen: Ändert man die Position der Empfänger nur leicht, dann steigen die Fehler schnell in nichtakzeptable Bereiche, d.h. diesbezüglich ist mein Ansatz nicht gerade stabil.
>...Heizungsbauer... Kein Problem. Hab Fun mit dem neuen Ofen und allzeit warme Füße. >meinst du doch hoffentlich nicht seine Humorlosigkeit Ich teile seine Meinung inhaltlich. Auch mir ist aufgefallen, dass Du Dich zur Beschreibung mathematischer Sachverhalte nicht immer der zutreffendsten Ausdrucksweise bedienst (Beispiele: Warum sagst Du "gebrochenlineares Modell der Sendeleistung" oder "lineare Komponente", wenn der mathematische Fachterminus dafür "umgekehrt-proportional" lautet? Man kann auch einfach "P(r) ~ 1/r" schreiben (vorausgesetzt die Bedeutungen von P und r als Leistung bzw. Abstand sind klar) und so den Fakt kurz und präzise ausdrücken. Warum wählst Du für die kartesische x-Koordinate des Dreieckpunktes A als Variablenbezeichner "alpha" und für die y-Koordinate des Punktes C "beta"? Statt naheliegend zum Beispiel "xA" und "yC", die ihre Bedeutung selbst erklären? Warum nennst Du eine Größe "gemessene Sendeleistung", wenn es sich dabei um die Empfangsleistung handelt, weil es doch die Leistung ist, die der Empfänger misst? Ein bisschen irritierend ist das manchmal schon...). Selbstverständlich vermute ich dahinter keine böse Absicht von Dir, es ist nur so, dass durch eine Häufung solcher "sprachlicher Suboptimalitäten" das Verständnis eines Textes enorm erschwert bis unmöglich werden kann. Die Folge davon siehst Du ja: Ein Berg von Spekulationen darüber, was Du wie gemeint oder nicht gemeint haben könntest, oder viele Rückfragen, deren Beantwortung dann auch Deine Zeit kostet. Daneben setzt Du Dich noch dem Risiko aus, verdächtigt zu werden, etwas verschleiern zu wollen. Aus diesen Gründen wird in der wissenschaftlichen (mündlichen wie schriftlichen) Kommunikation so viel Wert darauf gelegt, ungenaue Formulierungen zu vermeiden. Das nötigt den Autoren zwar etwas Mühe und Disziplin ab, zahlt sich aber letztlich für alle aus. -- Denkanstoß Ende :-) Zu Deinem Skript: Ich habe es in Maxima (ein CAS) übertragen und mit einem Testfall (*) geprüft. Es hat die Senderposition korrekt berechnet. Deine Grafik legt nahe, dass Du schon sehr viele Testfälle hast durchrechnen lassen, mit dem Ergebnis, dass es im Kern funktioniert (die Sache mit den zwei Ergebnissen und etwaige numerische Fehler hast Du ja schon angesprochen). Fazit: Es löst die Aufgabe des TO schulterklopf (Ich glaube, wir hätten uns ca. 10 Posts sparen können...) Noch eine Anmerkung: Das von Dir gewählte "wirklichkeitsfremde" Abstandsgesetz P(r) ~ 1/r (e.m. Wellen im freien Raum gehorchen ja P(r) ~ 1/r^2) über Bord zu werfen, ist ein Klacks. Man kann es gleich allgemein machen und P(r) ~ 1/r^n setzen mit einem beliebigen Exponenten n (ungleich 0). Das verkompliziert die Sache nur minimal: Man muss die Definition si := 1/pi ändern auf si := 1/pi^(1/n) und das ist auch schon alles. Eine automatische Auswahl des richtigen Ergebnisses aus den beiden, die die PQ-Formel liefert, wäre dann sicher auch noch eine sinnvolle Erweiterung Deines Algorithmus' (musst Du aber nicht für mich machen!). An der Herleitung der Formeln besteht meinerseits kein Bedarf. Ich kann es grob erahnen, wie Du das Gleichungssystem aufgelöst hast. _______________________ (*) Mein Testfall: A(+1, 0) und B(-1, 0) und C(0, sqrt(3)). Das ist ein gleichseitiges, zur y-Achse symmetrisches Dreieck mit der Seitenlänge 2. Dann ist alpha = xB = -1 und beta = yC = sqrt(3) zu setzen. Den Sender habe ich auf (0.3, 0.9) positioniert; das ist halbhoch rechts innerhalb des Dreiecks. Die Abstände sind dann dSA = 1.140175, dSB = 1.581138 und dSC = 0.884482. Als Leistung s des Senders habe ich 14 gewählt. Mit der Formel pi = s/ri resultiert das in diesen Empfangsleistungen: PA = 14/1.140175 = 12.278812, PB = 14/1.581138 = 8.8543774 und PC = 14/0.884482 = 15.828472. Damit hat man alles zusammen, was Dein Skript als Input benötigt.
@ Sigi Ich möchte mich bei Dir bedanken, dass Du die Mühe auf Dich genommen hast, noch eine Antwort zu schreiben und aus Deinem Script-File zu zitieren. Das war freundlich von Dir. :-) Vor allem: Schön, dass Dein Verfahren, wie LostInMusic festgestellt hat, funktioniert. @ LostInMusic Vielleicht hast Du ja Deine Maxima-Sitzung in einer Datei gespeichert. Falls ja, möchte ich Dich darum bitte, sie hier als Anhang zu posten. Wäre das möglich? Ich würde mich freuen.
@Theor: Klar --> Anhang. Siris Skript findest Du zwischen den beiden Zeilen "-------------". (Falls Du mit Maxima nicht vertraut bist: Der Unterschied zwischen "$" und ";" am Zeilenende besteht darin, dass das Semikolon eine Ausgabe des Berechnungsergebnisses der betreffenden Zeile bewirkt. Mit "$" abgeschlossene Zeilen sind dagegen "stumme" Zeilen.)
LostInMusic schrieb: > dass Du > Dich zur Beschreibung mathematischer Sachverhalte nicht immer der > zutreffendsten Ausdrucksweise bedienst (Beispiele: Warum sagst Du > "gebrochenlineares Modell der Sendeleistung" oder "lineare Komponente", > wenn der mathematische Fachterminus dafür "umgekehrt-proportional" > lautet? Man kann auch einfach "P(r) ~ 1/r" schreiben Wenn du mal verschiedenste Mathevorlesungen angeschaut hast, dann wirst du sehr schnell erkennen, dass es keine "zutreffendsten Ausdrucksweise" gibt, selbst in einem Bereich (z.B. Analysis) habe ich schon unterschiedliche Ausdrücke für ein und den selben Sachverhalt gesehen. Zugegeben, "gebrochenlineares Modell" hört sich ein wenig nach Beamtendeutsch an, es ist aber nunmal ein Modell und es basiert auf gebrochenlineare Funktionen, und dann wird es in der Mathematik auch so genannt (wie z.B. polynomialen Modelle etc.). Mit "linearer Komponente" verhält es sich genauso.. LostInMusic schrieb: > "gemessene Sendeleistung", wenn es sich dabei um die > Empfangsleistung handelt Da gebe ich dir recht, ich habe aber noch nie etwas mit diesem Fachbereich zu tun gehabt. LostInMusic schrieb: > Warum wählst Du für die kartesische > x-Koordinate des Dreieckpunktes A als Variablenbezeichner "alpha" und > für die y-Koordinate des Punktes C "beta"? Statt naheliegend zum > Beispiel "xA" und "yC", die ihre Bedeutung selbst erklären? Ich habe keinen der Punkte als Alpha bzw. Beta bezeichnet, sondern diese Grössen als Komponenten der Punkte gewählt (ist Oben eindeutig und einfach verständlich in Form einer Gleichung beschrieben). Und dies einzig und alleine, um die Gleichungen G1 bis G3 möglichst einfach bzgl. Lösbarkeit zu halten. Und was du mit "xA" oder "yC" meinst bleibt ein totales Rätsel. LostInMusic schrieb: > (Ich glaube, wir hätten uns ca. 10 Posts sparen können...) Also das soll wohl ein kleiner Scherz sein. Am ersten Tag hatte ich das Gleichungssystem auf 8 Fälle (Lösungen für die Senderkoordinaten (x,y)) mit zig Tests auf Plausibilität runtergebrochen, am zweiten dann auf 4 Fälle (dazu habe ich sozusagen "Live" obigen Beitrag geschrieben, d.h. nicht zusammengefasst und sauber ausformuliert), und Gestern dann, ich hatte so eine Ahnung, eine Vereinfachung übersehen zu haben, auf einen einzigen Fall reduziert. Wegen der Natur der Gleichungen (eben quadratisch) erhalte ich aus der PQ-Formel zwei mögliche Lösungen, von denen nur eine korrekt sein kann. Für jeden Fall brauchte ich ca. 20-60 Minuten, dann nochmal 10 Minuten für die Skripteingabe. Also ein Riesenaufwand, und selbst für die finale Fassung bräuchte ich noch mind. 2-3 Stunden für eine saubere Zusammenfassung. Aber da ich die Auflösung quadratischer Gleichungen mehrerer Variablen schon ein paar mal gesehen habe (in Vorlesungen, Übungen, Praxis), wusste ich von vornherein um den Aufwand. Es ist schlicht Fleissarbeit und systematisches Abarbeiten von grossen Herleitungsgraphen). Und wenn du dann auch noch in Erwägung ziehst LostInMusic schrieb: >etwas verschleiern zu wollen muss ich sagen, dass ist schon ein wenig frech. LostInMusic schrieb: > Eine automatische Auswahl des richtigen Ergebnisses aus den beiden, die > die PQ-Formel liefert, wäre dann sicher auch noch eine sinnvolle > Erweiterung Deines Algorithmus' (musst Du aber nicht für mich machen!). Habe ich in all meinen Skripten, nur nicht hierher kopiert. Ich hab's schlussendlich graphisch in meiner Simulation ausgegeben. Aber Foren wie dieses hier ist kein Hausaufgabenforum, wird ja auch oft geschrieben. LostInMusic schrieb: > Ich kann > es grob erahnen, wie Du das Gleichungssystem aufgelöst hast. Weit Oben hast du in einem Beitrag ein Gleichungssystem aufgeschrieben, das ja nur gelöst werden muss. Mach dir einfach mal klar, wie schwer das werden kann. So, jetzt aber gute Nacht.
>gebrochenlineare Funktionen Gebrochenlinear nennt man Funktionen vom Typ f(x) = (ax + b)/(cx + d). Auch wenn 1/x unbestreitbar ein (sehr spezieller) Spezialfall davon ist, würde man trotzdem nicht von "gebrochenlinear" sprechen, wenn man ausschließlich 1/x betrachten möchte. >Und was du mit "xA" oder "yC" meinst bleibt ein totales Rätsel. Die x-Koordinate des Dreieckpunktes A bzw. die y-Koordinate des Dreieckpunktes C. >Am ersten Tag hatte ich das Gleichungssystem auf 8 Fälle Genau in diese Falle darf man hier nicht tappen. Man tut gut daran, so vorzugehen, dass man die Operation "Gleichung quadrieren" möglichst wenig anwenden muss, weil man sich dabei jedesmal "falsche" Lösungen (falsch bzgl. der unquadrierten Gleichung) einhandelt. >erhalte ich aus der PQ-Formel zwei mögliche Lösungen, von denen nur eine korrekt sein kann. Ja, das hat die PQ-Formel so an sich. >Es ist schlicht Fleissarbeit Plus: Es geschickt anstellen, den Überblick behalten, konstante Ausdrücke durch eigene Bezeichner abkürzen und bei Divisionen aufpassen (dazu gleich noch was...). >Habe ich in all meinen Skripten, nur nicht hierher kopiert. OK - woher soll ich das wissen... >Mach dir einfach mal klar, wie schwer das werden kann. Deshalb gebührt Dir ja auch höchste Anerkennung und Respekt für das erfolgreiche Knacken dieser Nuss. Ist doch auch gut fürs Training, ab und zu so ein kleiner Mathesnack zwischendurch... ;-) Übrigens, falls es Dir entgangen sein sollte: Der Sonderfall eines Senders, der exakt im Dreieckmittelpunkt (= der Umkreismittelpunkt) sitzt, bringt Dein Skript zum Absturz. Wegen gleicher Entfernung zu allen Empfängern sind alle Empfangsleistungen identisch und s1, s2 und s3 nehmen denselben Wert an. Infolgedessen werden die Variablen hx und delta Null und damit auch ga4. Bei der Berechnung von gb2 kommt es dann zu einem "division by zero"-Laufzeitfehler (probiers aus). Du hast in Deiner Herleitung irgendwo durch eine Größe dividiert, die in diesem Fall verschwindet (kannst die Stelle ja suchen...). Um eine vollständig korrekte Lösung zu bekommen, muss man diesen Fall separat behandeln.
LostInMusic schrieb: >>Am ersten Tag hatte ich das Gleichungssystem auf 8 Fälle > > Genau in diese Falle darf man hier nicht tappen. Da hast du aber keine oder kaum eine Chance auf "sehr frühes Erkennen" von ungünstigen Ansätzen, du musst einfach systematische x (einfach zu berechnen, folgt aus der speziellen Lage der Dreiecks-Punkte) alle Kombinationen von G1 bis G3 (wie z.B. Gleichung G := G1+G2 oder G:= G3-G1 etc) betrachten. Einige fallen sofort weg (z.B. G1-G2, da damit ja x bestimmt wurde, y rausfällt und nach Einsetzen die Gleichung G zu 0=0 kollabiert), die meissten Fälle müsen aber kurz "angefasst" werden (d.h. 5-10 elementare Umformungen). Insgesamt hat man so zig Zehn Kombinationen zu betrachten. Und dann liefern einige Kombinationen quartische Gleichungen der Form Y=a*x^4+..., die leider nicht durch Substitution der Form S=T^2 in quadr. Gleichungen umgeformt werden können (quartische Gleichungen sind zwar noch geschlossen lösbar, mit der numerischen Stabilität kenne ich mich aber nicht aus, deshalb für mich: Hände weg). Ich muss mir aber auch noch mal die Formel anschauen, vlt. ergibt sich da noch was. LostInMusic schrieb: > falls es Dir entgangen sein sollte: Der Sonderfall eines > Senders, der exakt im Dreieckmittelpunkt (= der Umkreismittelpunkt) > sitzt, bringt Dein Skript zum Absturz. Ist mir sehr wohl entgangen, und hier muss ich deutlich "verdammte Scheisse" sagen: Ich hatte ja weiter Oben einen Graph, der den Abstand zwischen Sender und berechneter Position als Fehler ausgibt. Auf dem Umkreis der Dreiecks sind diese Fehler besonders hoch (hier "schaltet" mein Algorithmus zwischen dem einen und dem anderen Y aus der PQ-Formel um. Und diese Sendepositionen als auch die Sendepositionen auf den Linien des Dreiecks habe ich mal kurz in der finalen Formel untersucht und keine Singularitäten festgestellt). Sowohl mit systematischer Suche (Sender auf festem kartesischen Raster) als auch eine MonteCarlo-Simulation haben darauf nicht angeschlagen. Das Raster war einfach viel zu grob gewählt. Ich habe das Raster mal feiner gestaltet und die Fehler ausrechnen lassen, siehe Anhang. Scheinbar ist die Mitte des Dreiecks keine behebbare Singularität, aber wegen der Verwendung von ausschliesslich FLOAT möchte ich das nicht voreilig ausschliessen. Ich hatte auch schon an die ABC-Formel statt der PQ-Formel gedacht, die verursachende Division lässt sich damit nicht vermeiden. (und das Testen auf Gleichheit der Empfangsleistungen gefällt mir nicht ganz, er beinhaltet ja das Testen auf eine Umgebung um die Mitte oÄ. Ausserdem, was soll ich in diesem Fall als Lösung wählen, etwa eine Konstante, d.h. die Mitte?) Es gibt aber eine andere, einfache Lösung: Aus meiner Fleissarbeit der letzten Tage habe ich ja noch viele Fälle, die die XY-Ebene in viele kleine Flächen zerlegt. Von denen muss ich mir einen "günstigen" Abschnitt um die Mitte aussuchen und auf |(x,y)| < rc testen (rc: hinreichend kleiner Radius). Damit sind alle berechneten Punkte innerhalb des Kreises um die Mitte stabil, und das Umschalten ausserhalb davon liefert dann den Rest (insgesamt also 3-Zonen). Leider habe ich dafür in den nächsten beiden Wochen wegen Umbauarbeiten keine Zeit mehr. Puh, und Oben schrieb einer, seine Tochter löse sowas in der 9. Klasse. Ich bin im Süden zur Schule gegangen, aber sowas stand nicht auf dem Programm. Muss wahrscheinlich Hessen gewesen sein?
>musst einfach systematische x (einfach zu berechnen, >folgt aus der speziellen Lage der Dreiecks-Punkte) alle >Kombinationen von G1 bis G3 (wie z.B. Gleichung G := G1+G2 >der G:= G3-G1 etc) betrachten. Da komm ich nicht ganz mit... >Insgesamt hat man so zig Zehn Kombinationen zu betrachten. Und dann >liefern einige Kombinationen quartische Gleichungen der Form Y=a*x^4+..., Was? Das hört sich aber echt nicht so gesund an... lach... Bist Du sicher, da richtig vorgegangen zu sein? >mit der numerischen Stabilität Ja, auch das ist natürlich ein wichtiger Aspekt. Mal ein Extra-Lob an dieser Stelle für die Anfertigung der Grafiken. >Und diese Sendepositionen als auch die Sendepositionen auf den Linien des >Dreiecks habe ich mal kurz in der finalen Formel untersucht und keine Singularitäten festgestellt). Vom Gefühl her würde ich sagen, die Linien des Dreiecks sind unkritisch. Ich hätte da eher die Mittelsenkrechten im Verdacht, denn das sind die Linien, die sich alle im Umkreismittelpunkt schneiden, und von dem wissen wir ja schon, dass er aus der Rolle fällt. Ich vermute, eine der Mittelsenkrechten ist singulär und besitzt ihrerseits den Umkreismittelpunkt als weitere Singularität. Dazu müsstest Du in Deiner Herleitung irgendwo durch eine Größe dividiert haben, die Null werden kann, und bei der Sonderbehandlung des Null-Falls müsste genau eine solche Division dann nochmal passieren mit einer anderen Größe. >Scheinbar ist die Mitte des Dreiecks keine behebbare Singularität, Es gibt jedenfalls eine stetige Fortsetzung dort. Ob man eine Lösung finden kann, in der diese Singularität(en?) nicht vorkommen? Das wäre für mich eine der wirklich spannenden Fragen bei diesem Problem. Von dem User mit dem Vorschlag, in baryzentrischen Koordinaten zu rechnen, ist wohl kein weiteres Statement dazu zu erwarten - schade. >die verursachende Division lässt sich damit nicht vermeiden. Richtig. >Ausserdem, was soll ich in diesem Fall als Lösung wählen, etwa eine >Konstante, d.h. die Mitte?) Du musst Deine Ausgangsgleichungen für diesen Fall formulieren und das dadurch entstehende neue System lösen. Wahrscheinlich werden irgendwelche Gleichungen dabei identisch, was die Sache deutlich einfacher macht. Falls Du den Ehrgeiz haben solltest, Deinen Algorithmus fail-safe zu machen, eine gut gemeinte Warnung von mir: Wegen der umfassenden Tests, die man dazu durchführen muss, könnte das Erreichen dieses Ziels einen Aufwand erfordern, der jenen zur Lösung des Gleichungssystems um ein Vielfaches übersteigt. Ein Stresstest, der diesen Namen auch verdient, müsste beispielsweise folgende Fälle abdecken (ohne Anspruch auf Vollständigkeit): - Sender genau im Dreieckmittelpunkt (--> alle Empfangsleistungen identisch) - Sender sehr nahe am Dreieckmittelpunkt (--> alle Empfangsleistungen nur wenig voneinander verschieden) - Sender genau in der Mitte zwischen zwei Dreieckpunkten (--> zwei Empfangsleistungen identisch) - Sender genau auf einer der Mittelsenkrechten des Dreiecks (--> zwei Empfangsleistungen identisch) - Sender sehr nahe an einem der Dreieck-Eckpunkte (--> eine Empfangsleistung sehr groß ggü. den anderen) - Sender genau auf einer Dreieckseite - Sender genau auf dem Dreieck-Umkreis - Sender sehr nahe am Dreieck-Umkreis - Sender genau im Punkt (0, 0) Ein feines kartesisches Raster kannst Du dann noch dazunehmen, aber nur ein solches abzuprüfen wäre definitiv ein zu schwacher Test. Hat man das Problem sogar für beliebige Dreiecke gelöst, kämen hinzu: - entartetes Dreieck: A, B, C auf einer Linie (witzigerweise gibt es dann sogar noch eine Lösung!) - entartetes Dreieck: A, B, C identisch (physikalisch unmöglich) - extrem spitzes Dreieck (eine Dreieckseite viel kürzer als die anderen beiden) - extrem stumpfes Dreieck (A, B, C fast auf einer Linie; Umkreismittelpunkt weit außerhalb des Dreiecks) - rechtwinkliges Dreieck (Umkreismittelpunkt liegt auf einer Dreieckseite) - gleichseitiges Dreieck Manche Fälle sind für eine praktische Anwendung irrelevant, etwa extrem spitze oder extrem stumpfe Dreiecke. Trotzdem sind sie mathematisch möglich und sollten auch bzgl. ihrer numerischen Eigenschaften untersucht werden. Ein entsprechendes Stück Code zu schreiben, das unter allen Umständen ein zuverlässiges Ergebnis liefert (oder eine Meldung, wenn es keine Lösung gibt bzw. eine Warnung, wenn sie numerisch unsicher ist), schätze ich als ein schon durchaus ambitioniertes Projekt ein. Wer so etwas mal ernsthaft versucht hat, versteht, warum Software für hochsicherheitskritische Bereiche (Luft- und Raumfahrt, Kernreaktoren, lebenserhaltende Systeme etc.) ihren Preis hat. >Oben schrieb einer, seine Tochter löse sowas in der 9. Klasse. Internetforen-Blabla. Ist mir kein weiteres Wort wert.
LostInMusic schrieb: >>musst einfach systematische x (einfach zu berechnen, >>folgt aus der speziellen Lage der Dreiecks-Punkte) alle >>Kombinationen von G1 bis G3 (wie z.B. Gleichung G := G1+G2 >>der G:= G3-G1 etc) betrachten. > > Da komm ich nicht ganz mit... Aus einen ganz einfachen Grund: du hast dir bis jetzt nicht die geringste Mühe gemacht, die (impliziten) quadr. Gleichungen aufzulösen, d.h. explizit zu machen, bzw. es nur zu versuchen. Aus meiner Ausbildung kann ich mich nur noch an zwei Beispiele Erinnern. Eines in Analysis, 3 Gleichungen und 3 Unbekannte (Matheprofs lieben das volle Programm). Wir bekamen nur die Zusammenfassung, der Aufwand wurde mit mehrere Stunden angegeben. Das zweite in Physik/Übungsstunde: 2 Gleichungen, 2 Unbekannte. Aufwand an der Tafel: 30-40 Minuten, ist aber auch wesentlich einfacher. Und du musst bedenken, dass Dozenten aus diesen Bereichen die wahrsten Rechentiere sind. Wenn ich also grob hochgerechnet 10 Stunden insgesamt mit Skripts und anderem gebraucht habe, bin ich doch gar nicht mal so langsam. Aber vieleicht weiss du ja, wie man es deutlich schneller löst, nur zu. LostInMusic schrieb: > Vom Gefühl her würde ich sagen, die Linien des Dreiecks sind unkritisch. Und genau das ist falsch, genauer gesagt zum Teil. Denn mit Sendeleistung gleich 1 und pi=1/ri müsste z.B. für Linie Pi-Pj ri+rj = si+sj = Linienlänge gelten. Aufgrund von Rauschen und der quadratischen Charakteristik der Gleichungen (Kreisschnitt) kriegst du überproportionale Fehler, und diese sogar extremst hinter der den Enden (ich nenn's mal Schatten). Ich hatte dazu eine Linienplot-Graphik (Linien zeigen Fehler zwischen Sender und berechneter Position, fast überrall sehr kurz, im Schatten sehr lang), leider aber vergessen sie zu speichern. Wenn man sich die Beziehung der Gleichungen zu den Kreisschnitten klarmacht und ein wenig Gefühl für die Gleichungen hat, dann sollte das sofort klar sein. War für mich nach den Berechnungen zu den Kreisschnitten sofort klar. Da es ein wenig spät geworden ist, mach ich's kurz und knapp: In meinem Skript finden sich Variablen ga0, ga2 und ga4. ga0 ist konstant ungleich Null, ga2 und ga4 2-dim Paraboloide und einzig ga4 hat eine Nullstelle (geht ja aus den Gleichungen zu diesen Variablen sofort hervor). Damit hat man überall stabile Verhältnisse bzgl. Auswertbarkeit, ausser eben im Dreiecksmittelpunkt. Und da liegt sowohl in ga0, ga2 und ga4 eine "Null-Ableitung" in jeder Richtung vor. Der Rest ergibt sich durch einfaches Überlegen. (oder, doch noch eine kurze Bemerkung zum Umkreis: in der Umgebung davon schaltet die PQ-Formel um, da aber die zu berechnenden Funktionen, z.B. ga0,ga2,ga4 allesamt sehr gute "Eigenschaften" haben, gibt es dort nur das Problem der zu späten Umschaltung, d.h. zu weit vom Kreis wird wegen der Rechengenauigkeit umgeschaltet. Resultat: Sprung im Fehlergraph, bei mir ein paar Bits) Stetige Fortsetzung: Du schreibst das so einfach, in der Mathematik ist dem Thema fast ein ganzer Bereich gewidmet, es ist je nach Anspruch (Ck-Stetigkeit etc.) SAUSCHWER, glaub mir (siehe z.B. die wirklich nur KLEINE!! Übersicht in Hoschek/Lasser "Grundlagen der Geometrischen Datenverarbeitung"). Und selbst für C0-Stetigkeit (d.h. nur Stetigkeit) muss die Funktion die Ränder interpolieren. Schneide z.B. ein Rechteck in der Gegend um den Mittelpunkt aus, dann müssen alle 4 Ränder Interpolierend sein. Zusätzlich noch die Tatsache, dass diese Ränder algebraische (nicht rational) sind.. hier kriege ich nur schon vom Andenken Kopfschmerzen, soll ich weitermachen? Also, such dir unter allen Fällen einen "guten" raus. Und noch kurz zu deinen Tests (sind ja nur Tests für z.B. Abnahme etc.): Sender und Empfänger auf einem Punkt könnte in der Praxis schwierig werden, ich kenne jedenfalls Beispiele, in denen Kameras in Wänden/Objekten verschwinden sollten. Sender und Empfänger müssten sich also übereinander befinden. Selbst für die Linienposition könnte es Schwierigkeiten geben. Entartete Dreiecke: Wenn du dir mal mein Ausgangsdreieck anschauen würdest (die Alpha/Beta-Konstruktion), dann wird dir sofort klar, dass damit alle gleichschenkligen Dreiecke erfasst werden. Mit nur eine kleine Änderung (alpha1 und alpha2 statt nur alpha) können sogar alle Dreiecke erfasst werden. Dass gilt durchgehend bis runter zu den Gleichungen mit der PQ-Formel. Das habe ich hier nicht geschrieben, war aber von Anfang an mein Ziel. Ich habe extrem spitzwinklige Dreiecke in der Analyse noch nicht betrachtet, glaube aber jetzt schon, dass diese grössere Probleme z.B. im Rauschfall machen. LostInMusic schrieb: > Ein entsprechendes Stück Code zu schreiben, das unter allen Umständen > ein zuverlässiges Ergebnis liefert (oder eine Meldung, wenn es keine > Lösung gibt bzw. eine Warnung, wenn sie numerisch unsicher ist) Ja genau: Jetzt schreibst du wie ich vor der Entdeckung der Singularität in der Dreiecksmitte ein Programm mit Fehlerausgabe und schon dein erster Test verläuft negativ...äh, wir entscheiden uns wohl für den nächsten Hersteller. Solche Geräte müssen einen guten Eindruck machen. Keine Fehler über den kompletten Bereich und innerhalb keine grossen Sprünge in der Genauigkeit, was zu Verunsicherung beim Anwender führt. Mich interesiert obiges Problem eigentlich überhaupt nicht. Die Aufgabenstellung könnte aber für ein Richtmikrophonarray von Nutzen sein. Ich hatte mal einen Artikel darüber gelesen und wollte mich an eine SW-Lösung machen (bzw. FPGA-Lösung). Selbst hunderte Mikrophone sind glaube ich nicht das geringste Problem bzgl. Rechengeschwindigkeit. (Foren-Blabla in einem Parallelforum hier: .. da ist selbst eine RTX2080Ti gut gefordert.. OMG)
@ Sigi Ich habe mal angefangen, anhand des Scripts und des Maxima-Files von LostInMusic, zu versuchen, das Verfahren zu verstehen. Die Gleichungen GG1, GG2 und GG3 vom 21.10. sind wohl als die Gleichungen von Kreisen um die Empfänger zu verstehen. Gleichfalls lassen sie sich als Gleichungen der Flächen über den Seiten von rechtwinkligen Dreiecken auffassen, aber das spielt wohl keine Rolle. Oder doch? Jedenfalls schneiden sich die Kreise erstmal nicht, da der passende Proportionalitätsfaktor, nämlich die Sendeleistung, ja vorerst noch fehlt. Klar ist, das die Leistung später als hs1 bzw. hs2 berechnet wird - und der Script zur richtigen Lösung kommt. Kein Zweifel. Aber so weit bin ich noch nicht. :-) Meine Frage im Moment ist (bzw. sind): Hat hx (die nach x aufgelöste Differenz von GG1 und GG2) eine geometrische Bedeutung? Und wenn ja, welche? Oder hat das zuerst eine physikalische Bedeutung, die nicht auf die Entfernungen skaliert? Wenn ja, welche? Die gleiche Frage möchte ich noch in Bezug auf gamma und delta stellen. Offen gesagt, ist mir im Moment noch völlig schleierhaft, nach welchem Prinzip das funktioniert.
Theor schrieb: > Die Gleichungen GG1, GG2 und GG3 vom 21.10. sind wohl als die > Gleichungen von Kreisen um die Empfänger zu verstehen. Ja, genau. Und ri aus der realen Welt (steht dir in der Berechnung der Senderposition natürlich NICHT zur Verfügung) wird mithilfe der "Sendeleistung" und einem "Sende-Modell" (z.B. 1/r, was hier aber keine Preferenz/Festlegung sein soll, 1/ri^2 usw. gehen genauso, es sein denn du hast f(s,ri) mit irgendeiner Funktion f) eine Empfangsleistung pi. Mit dem einfachen Modell 1/r wird somit pi=1/si und ri = s*si (für 1/ri^2 und entsprechenden Substitutionen kommst du auf die selbe Beziehung!). In den Gleichungen GG1..GG3 wird dann auf der rechten Seite ri^2 zu s^2*si^2, d.h. du hast damit 3 quadratische Gleichungen mit 3 Unbekannten. Du erhälst also ausgeschrieben: G1: x^2 + 2*alpha*x + alpha^2 + y^2 = s^2*s1^2 G2: x^2 - 2*alpha*x + alpha^2 + y^2 = s^2*s2^2 G3: x^2 + y^2 - 2*beta*y - beta^2 = s^2*s3^2 Und jetzt geht's, wie du ja schon erkannt hast, einfach weiter: zuerst wird nach x aufgelöst (wegen der geschickt gewählten Lage des Dreiecks sehr einfach): x = (r1^2+r2^2)/(4*alpha) = s^2*(s1^2+s2^2)/(4*alpha) bzw. hx = (s1^2+s2^2)/(4*alpha) (hx versteht sich als eine Art Normierung von x, ähnlich der Kraft/Masse=Beschleunigung und umgekehrt, eine komkrete Interpretation bzgl. Sendeleistung kann ich dir aber wegen fehlender Fachkenntnisse nicht liefern) Nun y zu bestimmen würde dir nichts bringen, du must dich zuerst um s kümmern. Und genau hier fängt die Hölle an: Du kannst ja mal versuchen, x bzw. hx in G1, G2 und G3 einzusetzen (x taucht in diesen Gleichungen uU als Quadrat auf, d.h. s als s^4 !!!, d.h. verspricht sehr viel Spass beim Lösen). Nach diesen Fehlversuchen wirst du wohl an G:=G1-G2, G:=G1-G3 etc. denken und entsprechend x einsetzen, irgendwann findest du eine "günstige" Kombination. (günstig: s^4 tritt zwar in quartischer Form auf, aber uU bekommst du eine Gleichung der Form a*s^4+b*s^2+c*s^2=0, d.h. per Substitution a*t^2+b*t+c=0, d.h. per PQ-Formel lösbar). Und eben diese Suche kann Stunden beanspruchen, oder du hast einfach nur Glück (bei mir hat es auch deshalb so lange gedauert, weil ich parallel alle Umformungen in meiner Simulation auf Korrektheit getestet habe, da war es bei mir schon relativ spät und ich wollte auf jeden Fall auf Fehler beim Umstellen verzichten). Jetzt kann es sein, dass du zwar gute quartische Gleichung bekommst, aber die Auswertung per Substitution und PQ-Formel liefert nicht überall eine Lösung, weil der Term unter der Wurzel negativ wird. In diesem Fall musst du die Lösung mit anderen Lösungen kombinieren, nennen wir es einfach mal Flickenteppich). Nach einiger Zeit (bei mir erst am dritten Tag/Abend) fand ich schlussendlich meine Lösung, die aber immer noch eine Singularität in der Dreiecksmitte hat. Und zu gamma/delta: Aus der Einsetzung von x bzw. hx in eine der Kombinatation erhielt ich einen mehrzeiligen Ausdruck der Form a*s^4+b*s^2+c=0, wobei in a,b,c ähnliche Teilterme vorkommen. Diesen habe ich einfach einen Namen gegeben und weitergerechnet. Eine Interpretation gibt es nicht, mir ist jedenfalls keine eingefallen. (welche Kombination aus G1..G3 es ist, verrate ich nicht. Nicht aus Boshaftigkeit, sondern einfach aus der Hoffnung heraus, ein weiterer Beitrag liefert eine weitere/bessere Lösung. Diese muss aber, aus einfachen Überlegungen heraus, per Umformungen in meine Lösung überführt werden können.)
Und noch eine kleine Bemerkung zur Sendeleistung s: s wird ja konkret berechnet und sollte in einem Messgerät angezeigt werden. Ist s zu gross, so kann es zu Überläufen in der internen Berechnung führen, bzw. bei sehr kleinem s zu zu wenigen Bits bzgl. Rechengenauigkeit. Der Benutzer kriegt so jedenfalls eine Zuverlässigkeitsgrösse mit an die Hand. Das gilt auch für die Verwendung von FLOAT/DOUBLE, denn s wird ja in Form von pi=1/si mit nur begrenzter Zahl von Bits bestimmt.
@ Sigi Danke für Deine Antwort. Ich denke, ich ahne jetzt so ungefähr, wie Dein Verfahren abläuft. Das ist genug für mich.
Also ich würde es folgendermaßen machen. Los gehts mit der Aufstellung des Gleichungssystems, das aus drei "geometrischen" (einmal Pythagoras für jeden Dreieckpunkt) und zwei "physikalischen" Gleichungen besteht:
Die Parameter alpha bzw. beta ergeben sich aus dem Empfangsleistungen PA, PB und PC zu
Darin bezeichnet n der Exponent im zugrundeliegenden Abstandsgesetz (P Empfangsleistung, r Abstand):
Für e.m. Wellen, die sich im Raum ungehindert ausbreiten können, ist n = 2. Die Eckpunkte des Dreiecks ABC sind A(+d/2, 0) und B(-d/2, 0) und C(xc, yc). Ich man sieht, traue ich mich, es gleich für beliebige (also nicht nur gleichseitige) Dreiecke zu versuchen. a, b, c bezeichnen die Entfernungen der Empfänger vom Sender; x und y die Koordinaten des Senders. Bekannt sind alpha, beta, xc und yc; unbekannt sind a, b, c, x, y und interessiert sind wir an x und y. Zunächst betrachte ich nur die ersten beiden Gleichungen (im folgenden referenziert als I und II), weil die ähnlich zueinander sind (natürlich nicht zufällig, sondern ich habe gezielt mit meiner Wahl des Koordinatensystems dafür gesorgt). Als erstes substituiere ich a und b über die beiden physikalischen Gleichungen...
...um dann zwei Differenzen zu bilden, nämlich einmal II - I, denn dabei subtrahiert sich eine Menge weg und es bleibt ein einfacher Term übrig, und einmal beta II - alpha I, denn diese Differenz ist Null ("c^2 - c^2"). Die Differenzbildung II - I führt auf
oder äquivalent
Schön: Diese kleine Gleichung enthält c und x, aber nicht a, b und y. Nun die Differenzbildung beta II - alpha I; sie liefert
Hier ist man genötigt, durch alpha - beta zu dividieren. Unter der Voraussetzung, dass alpha und beta nicht gleich sind, gilt also:
oder
Wie man sieht, enthält diese Gleichung keinen der Abstände a, b, und c mehr. Interessanterweise steht da x^2 + y^2 drin; das ist das Quadrat des Abstands von S vom Ursprung. Das wird gleich noch von Bedeutung sein. Jetzt kommt die dritte Gleichung ins Spiel. Und da fällt doch gleich was auf: Wenn wir deren rechte Seite ausmultiplizieren, dann entsteht da doch just der Term "x^2 + y^2", von dem eben die Rede war? Also nehmen wir das in Angriff; das Ausmultiplzieren führt auf
oder wenn ich alles auf die linke Seite bringe und etwas umsortiere:
Jetzt ist klar, was zu tun ist, wir substituieren x^2 + y^2 und c^2 über die Gleichungen aus dem beiden Differenzbidungen oben:
bzw. nach Zusammenfassung der x-Koeffizienten:
Die Inhomogenität kürze ich mit G ab:
Jetzt ist das Ziel schon in Sichtweite: Diese Gleichung ist linear in x und y; also können wir sie problemlos nach y auflösen und das Ergebnis anschließend in die Gleichung x^2 - tau d x + 1/4 F + y^2 = 0 einsetzen. Dadurch bekommen wir eine Gleichung, die nur noch x als Unbekannte enthält (wir können sogar schon voraussagen, dass sie quadratisch in x sein wird). Deshalb ist es an dieser Stelle sinnvoll, durch den y-Vorfaktor 2 yc zu divideren, damit das y koeffizientenfrei wird:
Weil ich Abkürzungen mag, kommen noch zwei: Den x-Koeffizienten kürze ich durch lambda ab und den Bruch G/(2 yc) durch h:
Wir kommen zum letzten wesentlichen Schritt. Die letzte Gleichung aufgelöst nach y ist natürlich
Das setzen wir wir schon angekündigt in die Gleichung x^2 - tau d x + 1/4 F + y^2 = 0 ein, multiplizieren die Klammer aus und ordnen nach x-Potenzen. Das ist in zwei Zeilen erledigt, mit dem Ergebnis
Für die Lösung dieser Gleichung ist die pq-Formel zuständig. Das "Gesamtrezept" lautet damit: - Berechne aus PA, PB und PC die Parameter alpha und beta (s.o.). - Berechne aus alpha und beta die Konstanten sigma und tau (s. o.) - Berechne F := d^2 - Berechne G := xc^2 + yc^2 - 1/4 F - Berechne h := G/(2 yc) - Berechne lambda := ((1/2 tau - sigma)d - xc)/yc - Berechne z := lambda^2 + 1 - Berechne p := (1/2 tau d - lambda h)/z - Berechne q := (1/4 F + h^2)/z - Berechne x := p - sgn(p) sqrt(p^2 - q) - Berechne y := lambda x + h "sgn" bezeichnet die Signumfunktion Der Zusatz "sgn(p)" in der pq-Formel sorgt dafür, dass von den zwei möglichen Lösungen immer die richtige ausgewählt wird. Warum das so ist, hat bestimmt einen tiefern mathematischen Grund, aber ich muss zugeben, nicht weiter darüber nachgedacht zu haben. Daraus kann man jetzt ein Script oder Stück Programmcode machen und sich davon überzeugen, dass die Senderposition korrekt berechnet wird. Moment - war da nicht noch was!? Wir haben m Zug der Herleitung an einer Stelle durch alpha - beta dividiert. Wir müssen also noch untersuchen, was im Fall alpha = beta passiert. In diesem Fall vereinfacht sich die "beta II - alpha I"-Gleichung (die undividierte!) zu "-2 alpha d x = 0" und daraus folgt x = 0. Für alpha = beta befindet sich der Sender also auf der y-Achse = die AB-Mittelsenkrechte des Dreiecks (wie zu erwarten war). Um die y-Koordinate des Senders für diesen Sonderfall zu bestimmen, müssen wir uns anschauen, was aus dem Gleichungssystem für x = 0 wird:
Die ersten beiden Gleichungen sind also identisch. Man kann c^2 aus der dritten Gleichung einfach in die erste Gleichung einsetzen und bekommt eine quadratische Gleichung für y:
Nach Ausmultiplikation und Umsortieren:
Wir müssen jetzt durch alpha - 1 dividieren, d. h. der Fall alpha = beta = 1 ist ein Sonderfall im Sonderfall. Nach der Division durch alpha - 1 enthält man:
Die Lösung ergibt sich aus der pq-Formel. Übrig bleibt die Behandlung des Unter-Sonderfalls alpha = beta = 1. Die Gleichung (alpha - 1) y^2 + 2 yc y + alpha 1/4 F - xc^2 - yc^2 = 0 geht für alpha = 1 über in
oder mit G formuliert:
woraus y folgt zu
oder nach Definition von h:
Damit ist zuguterletzt noch die geometrische Bedeutung der Größe h aufgeklärt: h ist die y-Koordinate des Mittelpunkts des Dreieck-Umkreises. Wenn sich der Sender dort befindet, sind alle Empfangsleistungen identisch und der Fall alpha = beta = 1 tritt ein. Übrigens hat auch "G = 0" eine geometrische Bedeutung: G = 0 entspricht xc^2 + yc^2 = d^2/4 und das ist der Satz des Thales. G = 0 ist also das Kriterium dafür, dass das Dreieck rechtwinklig ist. Dann befindet sich Punkt C auf dem Thaleskreis, dessen Mittelpunkt im Ursprung liegt. Das wäre meine Lösung (in etwas ausführlicherer Darstellung). Ich denke, sie hat ein sehr gutes Aufwand-zu-Nutzen-Verhältnis. Außerdem kommt sie ohne x^4-Terme aus. Etwaige Überlegungen zu numerischen Eigenschaften werde ich dazu aber nicht anstellen.
Ich gebe noch eine Beispielimplementierung einer Funktion "SenderPosition(d, xc, yc, PA, PB, PC)" als Pseudocode an:
1 | // lokale Hilfsvariablen: F, G, h, alpha, beta, z, s, t, l |
2 | |
3 | IF NOT (yc=0) |
4 | { |
5 | F = d*d; |
6 | G = xc*xc + yc*yc - 0.25*F; |
7 | h = 0.5*G/yc; |
8 | |
9 | alpha = PA/PC; |
10 | beta = PB/PC; |
11 | z = alpha - beta; |
12 | |
13 | IF (abs(z)<1.0E-12) |
14 | { |
15 | z = alpha - 1; |
16 | |
17 | IF (abs(z)<=1.0E-12) |
18 | { |
19 | x = 0; |
20 | y = h |
21 | } |
22 | ELSE |
23 | { |
24 | x = 0; |
25 | y = QESolution(-yc/z, 0.25*F - G/z) |
26 | } |
27 | } |
28 | ELSE |
29 | { |
30 | s = (alpha * beta)/z; |
31 | t = (alpha + beta)/z; |
32 | l = ((0.5*t - s)*d - xc)/yc; |
33 | z = l*l + 1; |
34 | |
35 | x = QESolution((0.5*t*d - l*h)/z, (0.25*F + h*h)/z); |
36 | y = l*x + h |
37 | } |
38 | |
39 | Result = (x, y) |
Die darin an zwei Stellen benutzte Funktion QESolution(p, q) zum Lösen quadratischer Gleichungen kann z. B. so implementiert werden:
1 | Result = p*p - q; |
2 | |
3 | IF (Result<0) |
4 | { |
5 | Result = 0 |
6 | } |
7 | ELSE |
8 | { |
9 | Result = sqrt(Result); |
10 | IF (p>0) Result = -Result // "sgn(p)" |
11 | }; |
12 | |
13 | Result = p + Result |
@ LostInMusic Nett, dass Du das mit uns teilst. Und, wenn ich das sagen darf, eine sehr aussagekräftige Beschreibung. Ich habs mir durchgelesen und konnte folgen. Allerdings will ich mir das noch genauer anschauen. Leider bin ich mit meiner Variante noch lange nicht so weit. Neben der Zeit liegt es auch daran, dass ich zum einen mathematisch etwas eingerostet bin und dann mit maxima und wxmaxima noch besser zurecht kommen muss. (Etwas zickig :-) und ich erinnere, dass ich das schon früher fand und einen Fehler in wxmaxima habe ich nebenbei auch gefunden). Ausserdem habe ich mich relativ lange mit Sigis Darstellungen beschäftigt, weil es mir vorkam als hätte er einen radikal anderen Ansatz; aber das lasse ich jetzt mal sein. Grundsätzlich gehe ich gleich bei der Aufstellung der ersten Gleichung von dem Verhältnis des Quadrates der Leistungen und dem, der paarweisen Entfernungen aus, wobei diese Strecken eben dem rechten Winkel der Dreiecke gegenüberliegen. Ich hatte da oben schonmal kurz zusammengefasst. Ich denke, dass sich mein Ansatz und Deiner sehr ähneln und durch Umstellung oder eine etwas andere Reihenfolge der Operationen leicht ineinander überführt werden könnten. Allerdings gibts dann nach zwei drei Schritten doch Unterschiede. Ich neige eher zum expliziten Gleichsetzen als zu der Subtraktion/Addition in Gleichungssystemen; so eine Neigung muss aber nicht immer zweckmäßig sein. Mitunter kann man so doch einige hässliche Wurzeln und Potenzen entfernen, wie Du es ja auch machst. Aber ich schaue mir solche Aufgaben immer auch gerne geometrisch an. Als erstes hatte ich die Idee, die Ortskurve der Senderpunkte aus dem Verhältnis der jeweiligen Dreiecke zu konstruieren, aber das erweist sich als schwieriger als ich gedacht habe. Zum Teil auch, weil die Konstruktion nach einigen Schritten recht unübersichtlich wird, wenn Strecken-Abbildungen unter veränderlichen Winkeln herstellen will. Das will ich aber noch fertig kriegen. Dann hatte ich noch eine spontane Eingebung, die geometrisch sehr gut funktioniert, aber da fehlt die Formulierung als Gleichung noch. Naja. Ich bin da im Moment eher unorganisiert und bastele an einer Sache solange herum bis ich nicht weiter weiss. So habe ich jetzt vier Baustellen in dieser Sache.
@Theor: Freut mich, zur Erhellung beigetragen zu haben. >gleich bei der Aufstellung der ersten Gleichung von dem Verhältnis des >Quadrates der Leistungen und dem, der paarweisen Entfernungen aus, wobei >diese Strecken eben dem rechten Winkel der Dreiecke gegenüberliegen. Huch, hab ich da was verpasst? Und welche rechten Winkel? Kannst Du diese erste Gleichung mal aufschreiben? >Ich neige eher zum expliziten Gleichsetzen als zu der Subtraktion/Addition >in Gleichungssystemen lach... Ja, Preise an der Supermarktkasse addieren oder subtrahieren (Leergutbon): Das ist ein Kinderspiel - aber sowas auch mit ganzen Gleichungen zu machen, hat schon ein bisschen was Unheimliches, nicht wahr? Tatsächlich muss man davor aber keine Scheu haben, denn es geht dabei stets mit rechten Dingen zu, wie man sich leicht klarmachen kann. >Aber ich schaue mir solche Aufgaben immer auch gerne geometrisch an. Die entsprechenden Gleichungen im Ansatz müssen natürlich geometrisch interpretierbar sein, aber die neuen Gleichungen, die man im Lauf der Rechnung daraus gewinnt, haben im allgemeinen keine geometrische Interpretation mehr - das ist ganz normal. Man kann aber erwarten, dass ab und zu eine Größe herausfällt, die doch wieder eine hat. In meiner Lösung sind das die Größen h (y-Koordinate des Umkreises) und übrigens auch das absolute Glied 1/4 F + h^2 in der letzten Gleichung (lambda^2 + 1) x^2 + ... = 0. Wie sich fix zeigen lässt, ist 1/4 F + h^2 das Quadrat des Radius des Umkreises. Auch G kann man noch eine Bedeutung zuschreiben: arctan(d yc/G) ist der Dreieck-Innenwinkel im Punkt C (falls G ungleich Null ist; für G = 0 ist es ein rechter Winkel). Andererseits wird man zwischendrin aber auch auf Größen stoßen, bei der man sich von der Idee der geometrischen Bedeutung verabschieden muss; ich wüsste z. B. beim besten Willen nicht, wie man hier lambda interpretieren könnte. Das ist ganz normal und man muss es wohl einfach so hinnehmen. Wenn Du noch etwas Interessantes herausfindest, lass es mich gerne wissen. PS: In meiner Herleitung setzt man am besten gleich F := d^2/4 (statt F = d^2, wie ich es gemacht habe). Dann wird sie sogar noch etwas einfacher, weil in allen Gleichungen mit F der Faktor 1/4 davor entfällt. Habe ich erst nach dem Absenden gemerkt.
@Sigi: >Ist s zu gross, so kann es zu Überläufen in der internen Berechnung führen, >bzw. bei sehr kleinem s zu zu wenigen Bits bzgl. Rechengenauigkeit. Dann ist es sicher gut, dass diese Sendeleistung s in meiner Lösung überhaupt nicht vorkommt.
LostInMusic schrieb: >>Ist s zu gross, so kann es zu Überläufen in der internen Berechnung führen, >>bzw. bei sehr kleinem s zu zu wenigen Bits bzgl. Rechengenauigkeit. > > Dann ist es sicher gut, dass diese Sendeleistung s in meiner Lösung > überhaupt nicht vorkommt. OMG, natürlich kommt die Sendeleistung in deinem Ansatz vor, aber nur implizit. Du misst ja PA,PB und PC, und genau da steckt Die Sendeleistung drin. Ist diese zu klein, dann hat das numerische Implikationen. Und nur so als Überlegung: Wenn du PA = S / (d + phi)^2 setzt (S: Sendeleistung, d: Entfernung Sender-Empfänger, phi: Offset), dann wird dir z.B. deine Gleichung c^2 / a^2 = alpha = (PA/PB)^(2/n) Probleme bereiten, probier's einfach mal aus (dir ist ja hoffentlich bekannt, dass du auf eine Grösse wie d nicht zugreifen darfst). Ein Offset Phi ist hier nicht unrealistisch, denn du kannst ja nicht PA = S/d^2 setzen, denn dann hättest du ja in der direkten Umgebung um den Sender eine höhere Empfangsleistung als der Sender ausstrahlt. Wie die eine realistische Kurve aussieht, weiss ich nicht. Zu deinem Ansatz: Da er auf dem Verhältnis der Empfangsleistungen basiert, gehen damit natürlich auch alle Nachteile von Verhältnisbetrachtungen einher, das sollte dir klar sein. Du hast aber noch einen Fehler, siehe angehängte Graphiken. Die erste zeigt deine berechnete x-Koordinate minus der tatsächliche x-Koordinate (vom Sender), die zweite Graphik das gleiche, nur eben mit der Korrektur deines Ansatzes. Innerhalb des Dreiecks-Umkreises sind deine Werte (bis auf die durch die Verhältnisse bedingten Sigularitäten auf der Y-Achse, die du ja durch eine einfache IF-Abfrage abfängst) korrekt, ausserhalb aber falsch. Werte einfach mal deine Formeln für Senderpositionen ausserhalb des Umkreises aus. P.S.: Du hast dich wieder einmal Zeit durch negative Bemerkungen gegen mich verchwendet, was total überflüssig ist. Diese Zeit nutze ich produktiv, um z.B. auszurechnen, wieviele Bits welche Zuverlässigkeit etc. impliziert. Mach das mal bei deinem Ansatz. Un mit weniger Wut auf deine Mitmenschen passieren dir dann auch nicht Schludrigkeitsfehler wie gerade beschrieben oder die total falsche Implementierung der PQ-Formel für quadratische Gleichungen.
>Und nur so als Überlegung: Wenn du > >PA = S / (d + phi)^2 > >setzt > >Ein Offset Phi ist hier nicht unrealistisch, Echt? Komisch nur, dass so ein Offset in keinem Physik-/Elektrotechnikbuch erwähnt wird. Da steht immer nur "1/r^2". Hast Du diesen Offset etwa einfach erfunden? >denn du kannst ja nicht PA = S/d^2 setzen, denn dann hättest du ja in der >direkten Umgebung um den Sender eine höhere Empfangsleistung >als der Sender ausstrahlt. Das ist zwar messerscharf gedacht, trotzdem funktioniert diese Argumentation nicht. In der direkten Umgebung eines Senders (wie weit genau die sich erstreckt, hängt von der Wellenlänge und der Antennengröße ab) herrscht das Nahfeld vor, in dem andere Regeln gelten als im Fernfeld. Deshalb kann man aus "1/r^2" keinen Widerspruch zum Energiesatz konstruieren; man kann daraus nur schlussfolgern, dass 1/r^2 falsch werden muss, wenn man dem Sender zu nahe kommt, und das ist in der Tat richtig. Erst weiter draußen in der Fernzone fliegt die e. m. Welle frei und dort gilt dann auch erst das 1/r^2- Abstandsgesetz. Hier findest Du ein paar weitere Infos dazu (die Theorie dahinter ist anspruchsvoll): https://de.wikipedia.org/wiki/Nahfeld_und_Fernfeld_(Antennen) Die Leistung, die reale Antennen der elektromagnetischen Welle entziehen, ist übrigens immer winzig im Vergleich zur Leistung, die der Sender dafür rausschicken muss. Als Beispiel: Ein typischer UKW-Rundfunksender strahlt je nach Größe des Versorgungsgebiets etwa 1 kW bis 100 kW ab. Dagegen liegt die Leistung, die ein UKW-Empfänger mit seiner Antenne dem e.m. Feld entnimmt, in der Größenordnung 10 fW (1 fW = 1 Femtowatt = ein billionstel Watt = 10^-15 Watt). Sende- und Empfangsleistung unterscheiden sich also in diesem Beispiel um den Faktor 10^-17 bis 10^-19. >Wie die eine realistische Kurve aussieht, weiss ich nicht. 1/r^2. >Da er auf dem Verhältnis der Empfangsleistungen basiert, gehen damit natürlich auch alle Nachteile von Verhältnisbetrachtungen einher Ist mir überhaupt nicht klar. Ich habe gelernt, dass die Bildung von Summen, Produkten und Quotienten numerisch unkritisch ist (im Sinne von Stellenauslöschung), aber vielleicht meinst Du auch etwas anderes. Wenn Du so nett bist, mir diese Nachteile bei Verhältnisbetrachtungen näher zu erläutern, kann ich vielleicht konkret darauf antworten. >die zweite Graphik das gleiche, nur eben mit der Korrektur deines Ansatzes. Non capisco. Was genau zeigt die zweite Grafik mit welcher Korrektur? >...ausserhalb aber falsch. Innerhalb ist das Ergebnis richtig und nur das war in der Aufgabenstellung verlangt (genaugenommen sogar nur "innerhalb des Dreiecks" - lies es nochmal beim TO nach). Wenn Du die Senderposition aber unbedingt außerhalb des Umkreises haben willst, dann geht das auch mit meiner Lösung. Dazu musst Du in meinem Gesamtrezept die Anweisung "p - sgn(p) sqrt(p^2 - q)" suchen und darin das "-" vor dem "sgn" in ein "+" ändern. >passieren dir dann auch nicht Schludrigkeitsfehler wie gerade beschrieben >oder die total falsche Implementierung der PQ-Formel für quadratische >Gleichungen. Keine Ahnung, was Du damit meinst. Auch das bitte konkretisieren.
Ich weiss nicht, warum du hier die ganzen Std.Theoriegrundlagen runterschreibst, wenn du fast gleichzeitig LostInMusic schrieb: > lies es nochmal beim TO nach schreibst? Das ganze interessiert nicht, solange der TO nichts genaueres bzgl Sender schreibt. Mein Ansatz liess von Anfang an die Wahl des Sende-Modells (oder wie auch immer du es nennen willst) offen. Und für eine ziemlich grosse Anzahl von Modellen liefert mein Ansatz (mit entsprechenden Umstellungen) auch eine Antwort, und darauf kam es von Anfang an an (für jedes Modell heisst es dann, die Gleichungen G1 bis G3 anzupassen und zu lösen). LostInMusic schrieb: >>Da er auf dem Verhältnis der Empfangsleistungen basiert, gehen damit natürlich >> auch alle Nachteile von Verhältnisbetrachtungen einher > > Ist mir überhaupt nicht klar. Ich habe gelernt, dass die Bildung von > Summen, Produkten und Quotienten numerisch unkritisch ist (im Sinne von > Stellenauslöschung), Das ganze basiert auf Standarderkenntnissen der Numerik, speziell der ersten zwei Wochen. Rationale Betrachtungen (d.h. das Verhältnis zweier Grössen) sind in der Analysis nichts aussergewöhnliches, aber bei praktischen Lösungen iA nicht brauchbar. Du kannst deine finalen Schritte aber entsprechend anpassen. LostInMusic schrieb: >>die zweite Graphik das gleiche, nur eben mit der Korrektur deines Ansatzes. > > Non capisco. Was genau zeigt die zweite Grafik mit welcher Korrektur? Die Korrektur deiner Herleitung musst du schon selber finden, ist ja schliesslich deine Herleitung. Meine Analyse bzw. der darausfolgende 2D-Graph zeigt ja ganz deutlich, dass ich innerhalb des Dreiecks deine PQ-Formel korrekt ausgewertet habe, d.h. die berechneten Koordinaten des Senders stimmen mit den tatsächlichen Senderkoordinaten überein (bis auf numerische Abweichungen). Ich gebe dir nur einen Tipp: Es ist nur eine weitere Abfrage notwendig, schau dir die Graphik genau an, dann hast du auch die Antwort auf: LostInMusic schrieb: > Wenn Du die Senderposition aber unbedingt außerhalb des Umkreises haben > willst, dann geht das auch mit meiner Lösung. Dazu musst Du in meinem > Gesamtrezept die Anweisung "p - sgn(p) sqrt(p^2 - q)" suchen und darin > das "-" vor dem "sgn" in ein "+" ändern. was nur innerhalb des Umkreises gilt, NICHT AUSSERHALB. Zu Ausserhalb. Natürlich steht das nicht in der Beschreibung, aber fändest du ein Messgerät nicht zuverlässiger, dass auch ein "wenig" über der Definitionsbereich schauen kann. Genau das habe ich in meinem Ansatz berücksichtigt. Wenn dieser Punkt wegfällt, dann werden auch meine Formeln bzw. mein Skript einfacher. Möchte ich aber nicht machen. LostInMusic schrieb: >>passieren dir dann auch nicht Schludrigkeitsfehler wie gerade beschrieben >>oder die total falsche Implementierung der PQ-Formel für quadratische >>Gleichungen. > > Keine Ahnung, was Du damit meinst. Auch das bitte konkretisieren. Dein Sourcecode stimmt nicht mit der PQ-Formel überein, aber in der Art deiner Anwendung liefert es trotzdem die korrekten Werte. Denn du schreibst beim Aufruf: LostInMusic schrieb: > x = QESolution((0.5*t*d - l*h)/z, (0.25*F + h*h)/z); statt p = 2* (0.5*t*d - l*h)/z q = (0.25*F + h*h)/z (z=(lambda^2+1), t=tau etc..) wie es aus deiner Herleitung folgt. (es fehlt also die "2") LostInMusic schrieb: > Die darin an zwei Stellen benutzte Funktion QESolution(p, q) zum Lösen > quadratischer Gleichungen kann z. B. so implementiert werden: Und genau hier würde jeder die PQ-Formel vermuten, es ist aber eine Modifikation, eben der Faktor "2".
>Ich weiss nicht, warum du hier die ganzen Std.Theoriegrundlagen runterschreibst, Es war ein Versuch, Dir etwas zu erklären. >Sende-Modells (oder wie auch immer du es nennen willst) Ich benenne es einfach mit dem entsprechenden Fachbegriff: https://de.wikipedia.org/wiki/Abstandsgesetz (Warum tust Du das nicht?) Deine Eigenkreation "Sende-Modell" ist insofern irreführend, weil sie Bezug auf den Sender nimmt, obwohl der Sachverhalt den Sender gar nicht betrifft. Er betrifft das, was die Verbindung vom Sender zum Empfänger herstellt, z. B. eine sich frei ausbreitende elektromagnetische Kugelwelle. Deren Intensität (= ihre Leistungs-Flächendichte) nimmt umgekehrt proportional mit dem Quadrat des Abstands zur Quelle ab - in mathematischer Schreibweise: P(r) ~ 1/r^2. >Und für eine ziemlich grosse Anzahl von Modellen liefert mein Ansatz (mit >entsprechenden Umstellungen) auch eine Antwort, Deine Lösung funktioniert mit allen Abstandsgesetzen der Form P(r) ~ 1/r^n mit beliebigem Exponent n (ungleich Null). Für meine Lösung gilt übrigens genau dasselbe. >Das ganze basiert auf Standarderkenntnissen der Numerik, speziell >der ersten zwei Wochen. Rationale Betrachtungen (d.h. das Verhältnis >zweier Grössen) sind in der Analysis nichts aussergewöhnliches, aber >bei praktischen Lösungen iA nicht brauchbar. Du kannst deine finalen >Schritte aber entsprechend anpassen. Also wenn das so ist, möchte ich Dich aber mal darauf hinweisen, dass sich beispielsweise Dein y1 als Quotient ergibt: y1 = (hs1^2*(s1^2-s3^2-2*alpha*hx)-alpha^2+beta^2)/(2*beta) Jedenfalls ist für mich ein Quotient ein Verhältnis zweier Größen. Mein y ergibt sich dagegen als harmlose lineare Funktion (y = lambda x + h). Also ich finde, bei dieser rationalen Betrachtung hätten dann eher Deine finalen Schritte eine Anpassung nötig, oder was meinst Du? >Die Korrektur deiner Herleitung musst du schon selber finden, Gut, offenbar bist Du der Meinung, dass meine Herleitung eine Korrektur nötig hätte. Inwiefern? Wenn Du es schaffst, daraus kein Rätsel zu machen, sondern es mir einfach sagst, wäre das sehr nett. >Zu Ausserhalb. Natürlich steht das nicht in der Beschreibung, >aber fändest du ein Messgerät nicht zuverlässiger, dass auch >ein "wenig" über der Definitionsbereich schauen kann. Genau >das habe ich in meinem Ansatz berücksichtigt. Die Einschränkung auf "innerhalb" in der Beschreibung hat einen ganz bestimmten Grund: Man kann anhand der Empfangsstärken gar nicht entscheiden, ob ein Sender sich innerhalb oder außerhalb des Umkreises des Dreiecks befindet. Erst wenn man diese Information hat, ist seine Position eindeutig berechenbar; sonst ist sie - von der Umkreislinie abgesehen - stets zweideutig. Das ist eine spezielle Eigenheit dieser Aufgabe. Um die Problemstellung eindeutig zu machen, wird im Aufgabentext der Aufenthaltsort des Senders von vornherein auf "innerhalb des Dreiecks" eingeschränkt. Dann weiß man, welche der beiden Lösungen der pq-Formel die richtige ist. >Und genau hier würde jeder die PQ-Formel vermuten, es ist aber >eine Modifikation, eben der Faktor "2". Es ist sogar der Faktor -2. Ich habe ja die Gleichung
mit der Formel
gelöst. Das ist aber keine "falsche PQ-Formel", sondern eine Variante der PQ-Formel, die genauso richtig ist. Was Du als Experte ja auch sehr schnell selbst herausgefunden hast.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.