![]() |
---|
Hallo, ich muss die Bewegung eines Schiffes im Koordinatensystem der Erde berechnen. Dafür habe ich eine Koordinate(longitude, latitude), eine Geschwindigkeit in Knoten, den Kurs über Grund und eine Zeit zur Verfügung, um damit die neue Position (longitude,Latitude) nach Zeit zu berechnen (Die Berechenung muss so genau wie möglich sein). Mir wurde dafür polynomiale Regression nahegelegt, aber da haben schon zwei ehemalige Lehrer von mir aufgegeben, weil sie davon keinen Plan haben. Ziel ist es auf jedenfall mithilfe dieser Positionsberechnung den Kurs des Schiffes möglichst genau vorherzusehen. Alles was ich sonst bisher probiert habe hat nicht so recht funktioniert und im Internet finde ich auch keinen Ansatz mehr. Gibt es für soetwas nicht Formeln um das zu berechnen ? schon einmal danke für die Hilfe |
![]() |
![]() |
den Kurs über Grund Ist damit ein Loxodromenkurs gemeint? Ziel ist es auf jedenfall mithilfe dieser Positionsberechnung den Kurs des Schiffes möglichst genau vorherzusehen. Heißt das, dass man die Erde nicht als Kugel vereinfachen darf? im Internet finde ich auch keinen Ansatz mehr. Gibt es für soetwas nicht Formeln um das zu berechnen ? Das wundert mich, dass du da nichts findest. Formeln gibts sicher dafür, möglicherweise auch nur Näherungs-, Fausformeln. Vielleicht suchst du an den falschen Stellen und solltest dich von er Mathematik-Ecke mehr in die nautische Ecke bewegen? |
![]() |
Hallo Funlow Kursbestimmung/Navigation ist so eine Sache. So einfach die klingt, so komplex kann das werden. Zunächst musst du dir - und dann ggf. uns - klar machen, welchen Ansatz du denn verfolgen willst. "Die Berechnung muss so genau wie möglich sein." Nun da gibt's diverse Steigerungsraten der Genauigkeit. Willst du vereinfachend die Erde als Kugel betrachten, oder doch genauer als Ellipsoid? Ich hoffe, es genügt einstmal die Kugel. Ich ahne, zur Präzisisierung wäre dann noch immer Raum... Mach dir und dann ggf. nochmals klar, was gegeben und was gesucht ist. Aus deiner Aufgabenbeschreibung wage ich verstehen zu dürfen: Gegeben sind Startposition (Breitengrad, Längengrad, Kurswinkel, Geschwindigkeit, Fahrtzeit. "Ziel ist es auf jedenfall mithilfe dieser Positionsberechnung den Kurs des Schiffes möglichst genau vorherzusehen." Nein - wenn dem so ist, dann wäre eine naheliegende Aufgabenstellung, die Zielposition (Breitengrad, Längengrad) zu errechnen. Der Kurswinkel ist ja angeblich gegeben. Kurswinkel Jetzt wird's richtig komplex. Ich habe eben ein wenig im Internet ein wenig gesucht, und doch nicht wirklich gefunden, was ich aus früherer Lektüre gräulich in Erinnerung habe. Ich hoffe, hier können fachkundigere Navigationskünstler besser fachbegrifflich beitragen. Es gibt (mindestens) zweierlei Methoden der Navigation: Die Kreis-Navigation: Dazu denken wir uns auf der kugelförmigen Erde einen Kreis. Der Kreis geht durch die Koordinaten des Startpunkts. Der Kreismittelpunkt ist auch der Erd-Kugel-Mittelpunkt. Der Kurswinkel legt die Richtung fest, in der wir LOS-fahren. Zum Verständnis: Hierbei gehn wir davon aus, dass kein Land im Weg, sondern nur befahrbares Meer existierte. Und wie es Kreise eben so an sich haben, könnten wir wir nach langer Fahrt periodisch immer wieder zum Startpunkt zurück kehren. Und den Begriff "Kurs" oder "Kurswinkel" müssten wir dazu noch klarer stellen. Auf die Schnelle: der Winkel zwischen Fahrtrichtung und Längengraden wird sich über die Fahrt hinweg laufend ändern. Konstant-Kurs-Navigation: Eine klassische (historische) Navigationsmethode der Seefahrer war, stets den gleichen (konstanten) Winkel zwischen Fahrtrichtung und Längengraden zu halten. Achtung - und das ist der Unterschied zu das ist dann keine Kreisbahn mehr. Das ist dann vielmehr eine Spirale, die bei langer Fortsetzung theoretisch singulär zwangsläufig in den Polen endet. Also, du siehst. Es gibt noch viel zu klären, bevor wir uns um "polynomiale Regression" bemühen. |
![]() |
Danke Roman, und da war schon der erhoffte Fachbegriff: Loxodrome ist . unter de.wikipedia.org/wiki/Loxodrome viel besser und anschaulicher beschrieben, wie ich Laie das in meinen Worten fassen konnte. |
![]() |
Danke für eure Antwort . ich hol am besten noch weiter aus und pack den Ursprung der Frage nochmal mit rein: Mein Ziel ist es eigentlich die Route eines Schiffes vorauszusagen. Dafür habe ich verschiedene Datensätze, welche geographische Punkte,die Geschwindigkeit, den Kurs(Weg über Grund/ Kurs über Grund/Loxodromkurs), und die Zeit der Messung der Daten des Schiffes beinhalten. Gesucht ist eine Funktion(polynomiale Regression) oder eine Formel mit der man die Koordinaten des Schiffes zum Zeitpunkt berechnen kann. Meine eigentliche Idee war hierfür die polynomiale Regression. Da mir aber der Zusammenhang zwischen den einzelnen Werten nicht ganz deutlich wird bzw. man ja auch nicht einfache eine Regression jeweils auf den Werten der Koordinaten durchführen kann ( beispw. sind von der Länge in her 1 Breitengrad am Nordpol Längengrad am Äquator, ). Außerdem ist mir nicht klar wie das mit longitude und latitude errechnen funktionieren soll. Werden dafür 2 verschiedenen Regressionen durchgeführt ? Daher wollte ich auf die alternative ausweichen einfach meine Kursinformation und Geschwindigkeit zu nutzen, um daraus dann bspw. zu errechnen wo das Schiff später sein wird. Habe versucht im Bereich der Navigation was zu finden aber bisher nicht fündig geworden. Natürlich wäre es mithilfe polynomialer Regression wesentlich besser, wenn mir jemand dafür ne Lösung verraten kann umso besser. LG |
![]() |
Ich bin eine nautische Null, aber nennt man das, worauf du los steuerst, nicht Koppelnavigation? Oder trügt mich da mein Gedächtnis. Polynominale Näherung (Regression wäre hier der falsche Begriff) wurde dir vermutlich deshalb empfohlen, weil die Bogenlänge der Kugelloxodrome wohl nicht so einfach elementar bestimmt werden kann. |
![]() |
Hallo nochmals. Wenn ich deine letzten Ausführungen ernst nehme, dann hast du Wertetabellen, nämlich die Longitude in Abhängigkeit der Zeit, die Latitude in Abhängigkeit der Zeit. Wenn dem so ist, dann brauchst du gar nichts über Navigation oder Loxodromen oder sphärische Geometrie zu wissen. Du kannst die Werte in eine Regression deiner Wahl führen, und interpolieren, extrapolieren, manipulieren, phantasieren wie immer du willst... |
![]() |
Habe ich schonmal probiert mit einer linearen Regression. Problem war nur, das durch das unterschiedliche Verhältnis von den Breitengraden an unterschiedlichen Stellen das Schiff auf einmal meter in 2 Sekunden gefahren ist :-D). Nebenbei gefragt Longitude und Latitude muss ich dann ja jeweils als einzelne Regression betrachten oder nicht ? |
![]() |
"das Schiff auf einmal meter in 2 Sekunden gefahren ist" klingt einfach so, dass irgend etwas unplausibel falsch gemacht wurde. Wir können's nicht weiter kommentieren, weil du nicht verrätst, was du da gemacht hast. "Nebenbei gefragt Longitude und Latitude muss ich dann ja jeweils als einzelne Regression betrachten oder nicht ?" Ja natürlich. Du hast die Funktion Longitude in Abhängigkeit der Zeit, Latitude in Abhängigkeit der Zeit, die du je nach Bedürfnis, Wunsch und Aufgabenstellung auch umstellen kannst nach Longitude in Abhängigkeit der Latitude, Zeit in Abhängigkeit der Latitude, Zeit in Abhängigkeit der Longitude, . |
![]() |
Ich habe eben erst bemerkt, dass du ja von Datensätzen geschrieben hattest und da ist Regression schon der richtige Begriff. Und wenn du dich auf keine geschlossene Formel für den gesamten Zeitbereich kaprizierst, wäre sicher auch Interpolation (lineare oder Splines) eine Option. Nur aus den Daten des momentanen Punkts mittels aktuellem Kurs und Geschwindigkeit die Werte bis zum nächsten Datenpunkt zu schätzen, so wie du das ja ursprünglich gefragt hattest, ist da vermutlich ungenauere, da Kurs und Geschwindigkeit ja nicht notwendigerweise konstant bleiben. Auch ich würde für geographische Länge und Breite zwei getrennte Regressionen oder Interpolationen vorschlagen. Welche Regression sinnvoll ist (mit der linearen bist du ja nicht glücklich geworden) kann man nur beurteilen, wenn du die Originaldaten in irgend einer Form zur Verfügung stellst. Am besten so, dass man sie auch elektronisch weiter verwerten kann (zum Abtippen von einem Bild zB wird hier wohl kaum jemand bereits sein). Benötigt werden Zeit, Länge und Breite. Möglicherweise könnte man Geschwindigkeit und Kurs zur Genauigkeitssteigerung verwenden, aber ich vermute, dass das zu viel Aufwand wäre. Wiehast du denn bei deinem Versuch die Geschwindigkeit an einer Stelle überhaupt berechnet? Wie berechnest du denn den Abstand zwischen zwei, durch Länge und Breite gegebenen Punkten. Nimmst du da eine Orthodrome oder eine Loxodrome an? Oder führst du eine Besteckmessung mit mittlerer Breite durch (das wäre nur eine Näherung)? |
![]() |
Also den Abstand hab ich einfach mit einem online rechner zwischen den beiden punkten ausgerechnet ( Ging mir dabei nur darum das ich eben einen Wert habe der mir zeigt ob mein Punkt überhaupt richtig sein kann). Folgendes ich habe nun ein paar mal eine Regression probiert, erstmal nur mit dem Breitengrad um zu gucken ob ich damit die nötige Präzision erreiche.Meine verwendeten Werte sind: in sekunden , breitengrad daraus hab ich versucht Polynomiale Regressionen verschiedenenen grades zu bilden und hatte dafür als Ergebnis: 3.Grades: 4.Grades: 5.Grades: Aber ich habe die Werte und die Werte laut den funktionen verglichen und gehe davon aus diese nicht präzise genug sind.Ich denke das der Grund dafür eher darin liegt das die Distanz zwischen kleinen Änderungen des Breitengrades einfach zu Groß ist und so fatal ausfällt. Werte die ich habe(könnt ihr euch ja mal einen Eindruck machen und das einschätzen): Wäre es nicht möglich die gesamten Messwerte in einem Koordinatensystem umzurechnen das meter verwendet, darauf dann eine Regression durchzuführen und diese dann mit Formeln der Koppelnavigation( Übrigens das ist genau das wonach ich ursprünglich gesucht hatte, danke dafür ) wieder zurückzurechnen? |
![]() |
Hallo nochmals. Du machst es uns nicht leicht. Dennoch, ich habe mir mal die Mühe gemacht, die Approximation 3.Grades nachzuvollziehen. Ich kann deine Angaben gut nachvollziehen und erhalte prinzipiell das selbe. Das sieht für mein Auge und für den benannten Wertebereich auch sehr plausibel aus. "Aber ich habe die Werte und die Werte laut den funktionen verglichen und gehe davon aus diese nicht präzise genug sind." Welche Präzisision erwartest du denn? Du hast eine Funktion 3. Grades angesetzt. Und für eine Funktion 3.Grades kann ich mir nichts besseres vorstellen, als eben das. "Werte die ich habe(könnt ihr euch ja mal einen Eindruck machen und das einschätzen):" Hier vermute ich, dass du unerklärtermaßen über den Wertebereich in der Tabelle hinaus hin zu Werten über Richtung extrapolieren willst. Nun, wenn du eine Funktion 3. Grades ansetzt, dann kann nichts besseres als eine Funktion 3. Grades raus kommen. In wie fern das so weit zur Extrapolation geeignet ist, überbleibt der Interpretation des Anwenders. Du kannst nicht erwarten, dass bei Ansatz einer Funktion 3.Grades was anderes raus kommt, als eben eine Funktion 3. Grades, die sich konsequenterweise bei Extrapolation eben verhält, wie diese Ansatz-Funktion 3. Grades. Wie gesagt, welche Präzision erwartest du? Wenn du nur diese Wertetabelle hast, welche Erwartung hast du dann für den Funktionsverlauf über den bekannten Wertebereich hinaus? Wie kannst du da noch welche Präzision oder Genauigkeit erwarten? |
![]() |
Es ist keine Frage der Genauigkeit, aber Werte außerhalb des Messbereichs von 0 bis Sekunden mit einer Polynomregression extrapolieren zu wollen ist wenig seriös und eher Kaffeesudlesen. Vor allem begibst du dich mit deiner Prognose für Sekunden ja schon ziemlich weit weg von dem Intervall 0 bis Sekunden, für welches Messdaten vorliegen. Eine solche Prognose hat wohl wenig Aussagekraft. Lass dir im Zweifelsfall die Daten und die Regressionskurve doch plotten, dann siehst du schnell, was los ist. Ich häng dir mal Plots von Polynomen verschiedener Ordnung dran zum vergleichen. Es ist ja keinesfalls so, dass mit höherer Ordnung die gewünschte Genauigkeit steigt, denn Polynome höherer Ordnung neigen stark zum schwingen. Ein Polynom vom Grad würde zwar durch alle Messpunkte ganz genau durchlaufen, dazwischen aber vermutlich extrem stark schwingen. Was genau stört dich an den Werten, die du rausbekommst? Je nachdem, für welchen Regressionsgrad du dich entscheidest, sind die Unterschiede in den Zukunftsprogrognosen über Sekunden hinaus unter Umständen sehr groß. Das ist normal und du kannst das unterschiedliche Verhalten bei ja auch den Plots entnehmen. |
![]() |
Also ich habe mir nochmal ein wenig Gedanken zur gesamten Problemstellung gemacht... Erstmal das ein Funktion 3. Grad nicht genau meine Messwerte wiederspiegeln kann ist klar und das die Abweichung von Meinen Messwerten und der Funktion geringen Grades dementsprechend größer ausfällt. Ich hatte nur gerade geringen Grades probiert weil ich diese starke Schwingung , welche Roman auch meint, nicht haben möchte, da diese zur Extrapolation wesentlich ungeeigneter sind. Die Messreihen, welche ich später verwende sind auch noch wesentlich größer als die, die ich jetzt hier als beispiel angegeben habe. Ich werde deshalb wahrscheinlich die möglich Extrapolierbare Zeitspanne abhängig von der zur Verfügung stehenden Zeitspanne der Messreihe machen. Was nun aber meine eigentlich Idee ist ( Da bin ich mit meinen mathematischen Kenntnissen dann aber auch wirklich an meinen Grenzen) die Longitude(t) und die Latitude(t) mit einer polynomialen Regression darzustellen. Parallel dazu kann ich mit der zur Verfügung stehenden geschwindigkeit berechnen wie weit die Strecke ist, die mein Schiff zurücklegen kann/wird. Aus dem ursprünglichen Punkt und dem Punkt kann ich mir dann ja die Distanz berechnen, welche zwischen den beiden Punkte liegt und diese dann nach auflösen. Also einfach mal dahingestellt gesagt Distanz . Dafür brauche ich natürlich nun die wesentlich ausführlichere Formel aus der Koppelnavigation, welche für die Berechnung der Distanzen notwendig ist. für die longitude und latitude des Punktes setze ich dann die Polynomialen Regressionen ein, die ich dann wie gesagt nach auflöse mit der Bedingung, dass von von dem Zeitpunkt des letzten Messwertes sein muss. Problem ist nun nur das ich absolut kein Plan mehr habe wie ich das genau umstelle, dass ich eine Formel erhalte die mir liefert. Sollte doch aber auf jeden Fall eine wesentlich bessere Genauigkeit liefern als ursprünglich liefern. Mit der Genauigkeit bzw. der Präzision meine ich halt das die Punkte ein genaueren Bezug zur Realität haben. Also das der kalkulierte Punkt bei einer Geschwindigkeit von und einer Zeit von 3 Sekunden erhalte 9 meter von dem ursprünglichen entfernt ist. Also letztendlich: (Hier jetzt mal anstelle von eingesetzt da dann nicht mehr viel mit der Zeit zu tun hat). Das ganze dann nach umgestellt und ich erhalte einen Punkt mit dem ich arbeiten kann. Hoffe mein Gedanke dahinter ist klar geworden. Bei der gesamten Umstellung und der konkreten Formel bräuchte ich wirklich Hilfe, da das wie gesagt meine mathematischen Kenntnisse sprengt. EDIT: Wie bestimme ich eigentlich am besten, welchen grades meine Funktion sein soll ? An sich soll sie möglichst niedrigen Grades sein. |
![]() |
Ich ahne, du machst es dir einfach zu kompliziert. Es hat sich ja nun mittlerweile endlich herauskristallisiert, dass es dir typischerweise nur um wenige Minuten oder Sekunden geht, dass dabei nur wenige Meter, ggf. vielleicht Kilometer zurückgelegt werden, und dass es dir vorwiegend um die Extrapolation geht. Wenn ja, dann unbedingt die Empfehlung: Mach dir nicht kompliziert Sorgen um Loxodromen, Kreisbögen oder hoch-potenzige Polynome. Hierfür dürfte die Gerade der naheliegendste und zielführendste Ansatz sein. Leg einfach per Approximation über einen vertrauenswürdigen Bereich der bekannten Vergangenheit eine Gerade Breitengrad Längengrad Und das wird angesichts der Zacken, Willkür und Zufälle, denen die vorliegenden Daten unterliegen die vernünftigste Basis sein, in die Zukunft zu extrapolieren. |
![]() |
Alles klar vielen Dank, ich probiere es damit nochmal aus, aber ich denke damit sollte ich das hinbekommen. |