2016-04-02 8 views
0

Unten ist der Code für die Trilateration angegeben. Ein sehr kleiner Fehler wird in die geschätzten Positionen von Knoten eingeführt, die durch "ye" und "xe" (Ende des Codes) dargestellt sind, z. B. im Falle des zweiten Knotens, dh x (2) = 4 und y (2) = 4 geschätzt Position ist xe (2) = 3.999999999999999 und ye (2) = 3.999999999999999 statt 4,4. In ähnlicher Weise sind der dritte Knoten, d. H. X (3) = 3, y (3) = 0, die geschätzten Positionen xe (3) = 3 (was okay ist) und ye (3) = - 4,440892098500626e-16 anstelle von Null. Bitte schlagen Sie vor, was diesen Fehler verursacht und wie Sie ihn entfernen können. Freundliche Grüße.Fehler im Trilaterationscode Matlab

Antwort

0

Standardmäßig ist jede Zahl, die Sie in MATLAB erstellen, eine 64-Bit Gleitkommazahl mit doppelter Genauigkeit (oder "double"). Sie können dies überprüfen, indem Sie beispielsweise das Ergebnis von isa(42, 'double') überprüfen.

Der 'Fehler', den Sie erwähnen, ist aufgrund der Tatsache, dass Integer nicht unbedingt eine genaue Gleitkommadarstellung haben. In der Praxis ist das kein Problem (10e-16 ist eine ziemlich kleine Zahl, oder?). Dein Code (zumindest aus dieser Perspektive, ich habe deine Mathematik nicht überprüft) ist in Ordnung. Mach dir keine Sorgen.

Überprüfen Sie Wikipedia oder eine ähnliche Quelle für weitere Informationen darüber, wie Gleitkommazahlen aufgebaut werden.