Forum: PC-Programmierung Kleines Matheproblem (Positionsbestimmung)


von Sneef (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

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.

von . . (Gast)


Lesenswert?

Ahja, wieder so ein Salamiding, wo wichtige Randbedingungen fehlen und 
damit die Sache mehrdeutig wird und die Ratgebenden sich in die haare 
kriegen.

von WR (Gast)


Lesenswert?

Hallo Sneef,
gehst Du davon aus, dass die empfangene Signalstärke linear mit dem 
Abstand zusammenhängt oder gibt es da einen nichtlinearen Zusammenhang?

von R. M. (n_a_n)


Lesenswert?

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 ?

von Sneef (Gast)


Lesenswert?

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 ;-)

von georg (Gast)


Lesenswert?

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

von ueberlegung (Gast)


Lesenswert?

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?

von ueberlegung2 (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.)

von Sneef (Gast)


Lesenswert?

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.

von Nils (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.

von Geert H. (geerth)


Lesenswert?

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

von R. M. (n_a_n)


Lesenswert?

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
von Geert H. (geerth)


Lesenswert?

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.

von Bernd (Gast)


Lesenswert?

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.

von Sneef (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.)

von Markus B. (russenbaer)


Lesenswert?

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.

von Bernd (Gast)


Lesenswert?

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 :)

von Ulrich (Gast)


Lesenswert?

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.

von Imonbln (Gast)


Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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
}

von Max M. (jens2001)


Lesenswert?

Ulrich schrieb:
> Signalstärke wirklich linear von der Entfernung abhängen

OMG!!

von mh (Gast)


Lesenswert?

R. M. schrieb:
> in C++ (ohne spezielle Vector Lib) :
> ...

Und woher weißt du jetzt, dass das angezeigte Ergebnis richtig ist?

von Max M. (jens2001)


Lesenswert?


von R. M. (n_a_n)


Lesenswert?

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.

von my2ct (Gast)


Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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.

von Ulrich (Gast)


Lesenswert?

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.

von Ulrich (Gast)


Lesenswert?

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

von Wolfgang (Gast)


Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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
von R. M. (n_a_n)


Lesenswert?

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

von Sigi (Gast)


Lesenswert?

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..

von Sneef (Gast)


Lesenswert?

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.

von rbx (Gast)


Lesenswert?

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?

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von rbx (Gast)


Lesenswert?

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.

von mh (Gast)


Lesenswert?

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.

von Carsten P. (cp70)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>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).

von mh (Gast)


Lesenswert?

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.

von georg (Gast)


Lesenswert?

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

von R. M. (n_a_n)


Lesenswert?

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
von LostInMusic (Gast)


Lesenswert?

>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 :-)

von georg (Gast)


Lesenswert?

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

von R. M. (n_a_n)


Lesenswert?

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
von mh (Gast)


Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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
von Achim S. (Gast)


Lesenswert?

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.

von mh (Gast)


Lesenswert?

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)

von R. M. (n_a_n)


Lesenswert?

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.

von Theor (Gast)


Lesenswert?

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)"

von X4U (Gast)


Lesenswert?

Klassisch geht es so:
Der Bogenschnitt (Bogenschlag) ist eine Methode zur Punktbestimmung in 
der Geodäsie.

https://de.wikipedia.org/wiki/Bogenschnitt

von R. M. (n_a_n)


Lesenswert?

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.

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Sigi (Gast)


Lesenswert?

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)

von LostInMusic (Gast)


Lesenswert?

@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.

von LostInMusic (Gast)


Lesenswert?

>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.

von R. M. (n_a_n)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>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.

von Theor (Gast)


Angehängte Dateien:

Lesenswert?

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.

von R. M. (n_a_n)


Lesenswert?

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.

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von Theor (Gast)


Lesenswert?

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?

von Theor (Gast)


Lesenswert?

@ 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.

von Sigi (Gast)


Lesenswert?

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)

von Theor (Gast)


Angehängte Dateien:

Lesenswert?

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. :-)

von Theor (Gast)


Lesenswert?

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.

von Theor (Gast)


Lesenswert?

@ 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?

von Theor (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>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.

von Theor (Gast)


Lesenswert?

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.)

von LostInMusic (Gast)


Lesenswert?

>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.

von LostInMusic (Gast)


Lesenswert?

@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.

von Sigi (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

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.).

von Sigi (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>(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.

von Sigi (Gast)


Lesenswert?

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

von Sigi (Gast)


Lesenswert?

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).

von Sigi (Gast)


Lesenswert?

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.

von max123 (Gast)


Lesenswert?

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.

von Meckerzeige (Gast)


Lesenswert?

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.

von georg (Gast)


Lesenswert?

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

von Theor (Gast)


Lesenswert?

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.

von Theor (Gast)


Lesenswert?

@ 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.

von LostInMusic (Gast)


Lesenswert?

@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.

von Theor (Gast)


Lesenswert?

@ 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).

von Theor (Gast)


Lesenswert?

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?

von LostInMusic (Gast)


Lesenswert?

@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.

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

@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.

von Sigi (Gast)


Lesenswert?

..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.

von LostInMusic (Gast)


Lesenswert?

>...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.

von Theor (Gast)


Lesenswert?

@ 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.

von LostInMusic (Gast)


Angehängte Dateien:

Lesenswert?

@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.)

von Theor (Gast)


Lesenswert?

@LostInMusic

Dankeschön. :-)

von Sigi (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>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.

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

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?

von LostInMusic (Gast)


Lesenswert?

>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.

von Sigi (Gast)


Lesenswert?

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)

von Theor (Gast)


Lesenswert?

@ 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.

von Sigi (Gast)


Lesenswert?

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.)

von Sigi (Gast)


Lesenswert?

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.

von Theor (Gast)


Lesenswert?

@ 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.

von LostInMusic (Gast)


Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

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

von Theor (Gast)


Lesenswert?

@ 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.

von LostInMusic (Gast)


Lesenswert?

@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.

von LostInMusic (Gast)


Lesenswert?

@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.

von Sigi (Gast)


Angehängte Dateien:

Lesenswert?

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.

von LostInMusic (Gast)


Lesenswert?

>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.

von Sigi (Gast)


Lesenswert?

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".

von LostInMusic (Gast)


Lesenswert?

>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
Noch kein Account? Hier anmelden.