3D-Fehlerellipsoid, Achsen berechnen und zuordnen (Geodäsie/Vermessung)

Barny.G, Wednesday, 12.02.2014, 20:13 (vor 3698 Tagen)

Liebe Geodäten,

ein kleines Problem, bei dem ich immer wieder am gleichen Punkt stecken bleibe... Zunächst von Anfang an.

Ich habe ein 3D-Problem, bei dem ich die Normalengleichungsmatrix berechnen kann. Diese ist dann (für einen Punkt) von der Dimension 3x3.

Durchaus klar ist, dass die Fehler auf den Koordinatenachsen (besser: in Richtung der Koordinatenachsen) in der Hauptdiagonale der Varianz-Kovarianzmatrix stecken: C= s_0^2  N^{-1} (s_0 als empirische varianz)

Dass man an die Länge der Hauptachsen des Fehlerellipsoides über die Eigenwerte von N^{-1} herankommt ist auch klar.

Aber dann hört mein Verständnis leider auf. Woher weiß ich, welcher EW in welche Richtung zeigt? Bzw. zeigen muss?

Weiß jemand, wie man das sinnvoll berechnen kann? Der 2D-Fall ist gut im Netz beschrieben und auch völlig eindeutig, jedoch der 3D-Fall...

Viele Grüße

BG

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Wednesday, 12.02.2014, 20:34 (vor 3698 Tagen) @ Barny.G

Hallo Barny.G,

Aber dann hört mein Verständnis leider auf. Woher weiß ich, welcher EW in welche Richtung zeigt? Bzw. zeigen muss?

Der Algorithmus, der die spektrale Zerlegung realisiert, sortiert idR. die Eigenwerte zu den Eigenvektoren.

Weiß jemand, wie man das sinnvoll berechnen kann?

Ich meine bei Wolf (I oder II) ist ein Verfahren beschrieben. Ansonsten ist im Jäger et al. auf der CD ein Algorithmus enthalten. Die engl. Wikipedia kennt weitere gängige Verfahren. Ferner kann man auch mal bei freien Bibliotheken wie Jama schauen, wie die das lösen.

Schöne Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
Eigenwert, Eigenvektor, Spektralzerlegung, Kovarianzmatrix

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Thursday, 13.02.2014, 10:06 (vor 3697 Tagen) @ MichaeL

Hallo Micha,

Aber dann hört mein Verständnis leider auf. Woher weiß ich, welcher EW in welche Richtung zeigt? Bzw. zeigen muss?


Der Algorithmus, der die spektrale Zerlegung realisiert, sortiert idR. die Eigenwerte zu den Eigenvektoren.

Das hatte ich gehofft. Ich arbeite mit MatLab und verwende die Funktion "svd" (singular value decomposition). Damit wird eine Zerlegung einer Matrix N in die Matrizen [U D V] = svd(N) mit U^\top = V vorgenommen. Die Eigenwerte stehen dabei in Matrix D (Diagonalmatrix) und sind der Größe nach sortiert.

Weißt Du ob Deine Vermutung

Der Algorithmus, der die spektrale Zerlegung realisiert, sortiert idR. die Eigenwerte zu den Eigenvektoren.

dafür zutrifft?

Theoretisch müsste ich ja nur die Multiplikation U*D*V vornehmen und mit N vergleichen. Siehst Du das auch so?

Viele Grüße

BG

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Thursday, 13.02.2014, 10:20 (vor 3697 Tagen) @ Barny.G

Hallo Barny.G,

Ich arbeite mit MatLab und verwende die Funktion "svd"

In Deinem Fall (Kovarianzmatrix) reicht die Funktion eig().

Siehst Du das auch so?

Ja. Wenn Die Eigenwerte nicht zu den Eigenvektoren sortiert sind, wird Deine ursprüngliche Matrix nicht herauskommen.

Schöne Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
Eigenwert, Eigenvektor, Matlab, Spektralzerlegung, Kovarianzmatrix

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Thursday, 13.02.2014, 19:54 (vor 3697 Tagen) @ MichaeL

Danke danke danke. Manchmal ist man schon ein bisschen wie vernagelt ;-)

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Friday, 14.02.2014, 09:42 (vor 3696 Tagen) @ MichaeL

Hallo Barny.G,

Ich meine bei Wolf (I oder II) ist ein Verfahren beschrieben.

Ich habe gerade nachgeschaut. Im Wolf I sind explizite Formeln für die Zerlegung der 3x3-Matrix angegeben im Kapitel B 7.6 Dreidimensionale mittlere Fehlerellipsoide (Helmert) auf Seite 189ff, 3. Auflage, 1997.

Das nur zur Ergänzung. Ansonsten gilt, was .seb und ich noch aufgeführt hatten.

Schöne Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

Tags:
Helmert, Fehlerellipsoid, Wolf

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Thursday, 13.02.2014, 15:41 (vor 3697 Tagen) @ Barny.G
bearbeitet von .seb, Thursday, 13.02.2014, 15:55

Weiß jemand, wie man das sinnvoll berechnen kann? Der 2D-Fall ist gut im Netz beschrieben und auch völlig eindeutig, jedoch der 3D-Fall...

Warum soll das was für 2D gilt, nicht auch für 3D gelten können?

Also wir haben in Differentialgeometrie auch immer mit Matlab gearbeitet, da habe ich noch in Erinnerung, dass wir die Eigenvektoren von Rotationsflächen in 3D ausgerechnet haben.

Wir haben das damals noch klassisch über die Gleichungen des charakteristischen Polynoms gemacht etc.

Aber viel einfacher geht es mit der Funktion eig() von Matlab. Dann hast du die Eigenwerte deiner Kovarianzmatrix.

Die Eigenvektoren kannst du zwar auch mit eig() ausrechnen, würde ich aber manuell machen. Die Eigenvektoren bekommst du, in dem du den Nullraum von deiner Kovarianzmatrix in Abhängigkeit von deinen Eigenwerten ausrechnest. Das machst du in Matlab mit null(). Was du hierfür brauchst, ist eine Beschreibung, wovon du den Nullraum ausrechnest! In der Differentialgeometrie war das:

eig_{\text{vec}} = L - \lambda \cdot G
vec1 = \text{null}(eig_{\text{vec}})

Da musst du nochmal genauer nachlesen, wie das für deine Hauptachsentransformation definiert ist. Soweit ich informiert bin, musst du mit svn() eine Zerlegung durchführen und dir dann mit der Vorschrift:

     Q^{T}AQ=D\Leftrightarrow A=QDQ^{T}

die Eigenvektoren zusammenbauen.

Die Eigenvektoren geben die konkrete Richtung deiner Eigenwerte an. Multipliziert mit deinen 3 Achsen im Koordinatensystem hast du eine konkrete Beschreibung der Orientierung:

r1 = [x1, x2, x3] * vec1

Versuche aber erstmal mit:

[V D] = eig(N^-1) dir die Eigenwerte und Eigenvektoren zu holen. V = Eigenwerte und D = Eigenvektoren...

Wenn du Glück hast, kommt für D sowas wie [1 0 0] oder sowas raus, also genau in Richtung der X-Achse usw. . ... musst du sehen.

Viel Glück!

Guck dir bitte auch diesen Artikel an:

Wikipedia Hauptachsentransformation

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Thursday, 13.02.2014, 17:59 (vor 3697 Tagen) @ .seb

Hallo,

Warum soll das was für 2D gilt, nicht auch für 3D gelten können?

Weil die Formeln, die Barny.G meinte, eben nur für diesen 2D-Fall gelten bzw. explizit aufgeführt sind.

Die Eigenvektoren kannst du zwar auch mit eig() ausrechnen, würde ich aber manuell machen.

Die Berechnung der Eigenwerte ist in Matlab zuverlässig.

Ein Verfahren zu empfehlen, welches wiederum svd() voraussetzt/einsetzt (wie bspw. die Verwendung von null() oder gar svd() selbst), erscheint doch sehr fragwürdig in diesem Zusammenhang.

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Thursday, 13.02.2014, 18:12 (vor 3697 Tagen) @ MichaeL

Sorry Michael,

es ist schon eine Weile her, dass ich das gemacht habe. Ich habe die Eigenwert-Analyse nur im Zusammenhang mit der Untersuchung von Hauptkrümmungen von Rotationsflächen im Raum gehabt.

Daher weiß ich nicht 100%, wie man diese Erkenntnisse auf die angesprochene Hauptachsentransformation gänzlich übertragen kann.

Vielleicht schafft diese PDF Klarheit:

Hauptachsentransformation

Auf Seite 8 wird das Vorgehen im 3D-Fall beschrieben. Die Eigenwerte und Eigenvektoren bekommt man durch eig(). Den Rest muss er sich anlesen.


LG
Sebastian

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Thursday, 13.02.2014, 20:01 (vor 3697 Tagen) @ .seb

Hallo ihr Beiden,

vielen Dank für Eure Beiträge - somit kann ich auch ein wenig der Diskussion von Euch beiden ablauschen.

Warum soll das was für 2D gilt, nicht auch für 3D gelten können?

Weil die Formeln, die Barny.G meinte, eben nur für diesen 2D-Fall gelten bzw. explizit aufgeführt sind.

Genau das war ja mein Problem. Wenn in irgendeinem Skript oder einer Arbeit, die ich gefunden habe, mal eine 2D-Matrizenlösung dringestanden hätte, hätte ich mir das auch auf mehrdimensionale Räume erweitern können.

Allerdings verstehe ich die "Versuchung" das einfach explizit hinzuschreiben, weil es mathematisch so schön ist. ;-)

Also nochmals Danke!!

BG

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Thursday, 13.02.2014, 20:05 (vor 3697 Tagen) @ .seb

Hallo .seb,

kannst Du bitte den link nochmal einstellen? Irgendwie bekomme ich keinen Zugang...

Viele Grüße

BG

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Thursday, 13.02.2014, 21:26 (vor 3697 Tagen) @ Barny.G

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Friday, 14.02.2014, 09:29 (vor 3696 Tagen) @ .seb

Danke - hat geklappt!

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Friday, 14.02.2014, 09:44 (vor 3696 Tagen) @ .seb

Hallo.

Sorry Michael,

Alles bestens! Kein Grund sich zu entschuldigen oder zu rechtfertigen.

Ich bin für jedes Mitwirken hier im Forum dankbar und hoffe dennoch, auch mal anderer Meinung sein zu dürfen. ;-)

Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G kommt nicht rein..., Sunday, 16.02.2014, 19:53 (vor 3694 Tagen) @ .seb

Hallo Ihr beiden,

ich schreib das mal so, weil Ihr Euch aktiv mit meiner Frage beschäftigt habt ;-)

Nachdem ich die Hinweise und Ratschläge verarbeitet und umgesetzt habe, klappt es auch super mit der KooTrafo und "meiner" Fehlerellipse.

Ein Problem bleibt noch...

Ich habe im Matlab mit [V D] = eig(N^-1) die EV und EW bestimmt. Der Hinweis, dass die EW(diag(D)) in Richtung der EV (V = [v1 v2 v3], v_i als Spaltenvektoren aufgefasst) zeigen, war der Zielführende.

Das Fehlerellipsoid hat die erwartete Ausdehnung und überwiegend auch die erwartete Orientierung.

In der Draufsicht (Lage, x-y-Ansicht (für Nichtgeodäten ;) )) passt die dann zu sehende Ellipse so gut, dass der "wahre" Punkt schön mit eingeschlossen ist.

Schaut man sich das Ganze dann aber in der 3D-Ansicht an, so sieht man, dass die "Zigarre" an dieser Ebene (x-y) gespiegelt erscheint. D.h. der Punkt liegt höhenmäßig genau gegenüber. Würde das Ellipsoid wie erwartet liegen, so passt es auch. (tolle Logik...)

Ich habe nun ein wenig herumexperimentiert und bin darauf gestossen, dass wenn ich die Vektorenzusammenfassung (und ich vermeide bewußt den Begriff Matrix) V mit fliplr spiegele, alles wie vorausgesagt passt.

Nun komme ich zu einer (wahrscheinlich) MatLab-Frage: Kann es sein, dass MatLab bei der Angabe der EV in V die genau verkehrt herum angibt? Meine Normalengleichungsmatrix hat die Form

xx xy xz
yx yy yz
zx zy zz

so dass ich auch erwartete, dass die EV dem Sinne nach eben auch v1 ca. x, v2 ca. y und v3 ca. z Richtung haben sollten.

Kann mir jemand sagen, wo da mein Denkfehler liegt? Ich meine, dass das Ellipsoid in z-Richtung scheinbar um 180° verdreht bzw. an der x-y-Ebene gespiegelt erscheint ist doch kein Zufall?

Viele Grüße und einen schönen Sonntag Abend!

BG

Sehr gern würde ich auch entsprechende Bilder oder gern auch .fig aus dem MatLab hochladen, doch weiß ich nicht, wie ich das mit er url-Angabe machen soll. Aber das nur nebenbei...

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Sunday, 16.02.2014, 20:01 (vor 3694 Tagen) @ Barny.G kommt nicht rein...

Hi,

dass MatLab bei der Angabe der EV in V die genau verkehrt herum angibt?

Was heißt verkehrt herum?

Meine Normalengleichungsmatrix hat die Form

xx xy xz
yx yy yz
zx zy zz

so dass ich auch erwartete, dass die EV dem Sinne nach eben auch v1 ca. x, v2 ca. y und v3 ca. z Richtung haben sollten.

Das ist ein Denkfehler. Die Achsen haben nichts mehr mit X,Y oder Z zu tun - außer die Verdrehung ist Null.

Sehr gern würde ich auch entsprechende Bilder oder gern auch .fig aus dem MatLab hochladen, doch weiß ich nicht, wie ich das mit er url-Angabe machen soll. Aber das nur nebenbei...

Lade die Sachen bei einem Dienst hoch. Die URL kannst Du dann als Link einfügen oder, wenn Du die direkte Adresse zum Bilddokument bekommst, als Image.

Ohne Bild wird es vermutlich auch schwer, Deinen Ausführungen weiter zu folgen.

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Sunday, 16.02.2014, 20:20 (vor 3694 Tagen) @ MichaeL

Hallo Micha,

Das ist ein Denkfehler. Die Achsen haben nichts mehr mit X,Y oder Z zu tun - außer die Verdrehung ist Null.

das ist schon klar ;-) Nachdem ich nun weiß, wie das mit dem Hochladen funktioniert hier mal das 3D-Bild des Ellipsoides:

http://www.directupload.net/file/d/3535/ygl8q7go_pdf.htm

Zu sehen ist in durchsichtigem Grau das Ellipsoid, in Blau mit Sternen an den Enden die Achsen des Ellipsoides und in Grün der Sollpunkt. Das Ellipsoid ist auf den berechneten Punkt zentriert gezeichnet (sonst macht das ja auch kaum Sinn...) Die gepunkteten Kreise sind die helmertschen Punktfehler nach mp = sqrt(dx^2 + dy^2).

In dieser Ansicht ist schon zu ahnen, dass da "etwas" nicht hinhaut. Aber schauen wir uns mal noch die xy-Ansicht an:

http://www.directupload.net/file/d/3535/r34fd3ko_pdf.htm

da scheint alles soweit zu passen, aber nun die xz-Ansicht:

http://www.directupload.net/file/d/3535/r34fd3ko_pdf.htm

da ist schön zu sehen, dass eine Spiegelung alles hübsch passend machen würde. Zufall? Einbildung?

Schön, dass außer mir auch noch "jemand" am Rechner sitzt...

Viele Grüße

BG

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Monday, 17.02.2014, 09:08 (vor 3693 Tagen) @ Barny.G

Hi,

Nachdem ich nun weiß, wie das mit dem Hochladen funktioniert hier mal das 3D-Bild

Tja, hat wohl doch nicht funktioniert. ;-) Um ein Bild hier im Forum darzustellen, muss es, wie schon angedeutet, auch ein Bild sein. Bilder haben üblicherweise Endungen wie PNG, JPG oder GIF. Wenn die URIs auf html, htm, php, asp, pdf, ... enden, ist es häufig kein direkter Link zum Bild sondern ein anderes Format. In Deinem Fall hast Du wohl PDFs hochgeladen, die folglich auch nicht angezeigt werden können. In diesem Fall nutzt Du besser den BB-Code [link] statt [img].

Mal abgesehen davon, dass eins Deiner Bilder wohl fehlt. Hast Du beim Plotten und Berechnen berücksichtigt, dass Du wohl in einem geodätischen System rechnest statt in einem mathematischen? Das würde zumindest auch erklären, warum die Achsen tauschen musst - das scheint fliplr doch zu machen, oder? (Ich habe kein Matlab.)

Schöne Grüße
Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 10:51 (vor 3693 Tagen) @ MichaeL
bearbeitet von Barny.G, Monday, 17.02.2014, 11:04

Hallo Micha,

nutzt Du besser den BB-Code [link] statt [img].

Danke für den Hinweis, "jemand" scheint das Prob schon behoben zu haben, denn die links sind plötzlich zu sehen. Danke!

Hast Du beim Plotten und Berechnen berücksichtigt, dass Du wohl in einem geodätischen System rechnest statt in einem mathematischen?

Ja prinzipiell schon. Da ich mit Physikern zusammenarbeite und sie nur ungern auf ein geodätisches KS wechseln, habe ich einfach das KS mathematisch (X-Rechts, Y-Hoch, Z-Höhe) definiert. Rein rechentechnisch sollte das ja keinen Unterschied machen. Und bei mir ist ja auch nicht x und y vertauscht, sondern z an der x-y-Ebene gespiegelt:
[image]

das scheint fliplr doch zu machen, oder?

Ja, dieser Befehl tauscht die Spalten einer Matrix. Allerdings schien mir das ein recht holzfällermäßiger Kniff zu sein, den ich eben auch nicht mathematisch erklären kann. Denn die KooTrafo lautet ja eindeutig

x' = V \cdot x

mit V als Abblidungsmatrix für den Bildraum. Und diese Matrix "V" kommt ja aus der EW/EV-Zerlegung mit [V D] = eig (N^-1). Und nur wenn ich bei dieser Matrix V die Spalten tausche, kommt ein (scheinbar?) plausibles Ergebnis heraus...

Möglicherweise ist es aber "nur" ein MatLab-Problem, wie es seb. schreibt:
4555

Mal sehen...

Danke trotzdem!

Thomas ;)

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 11:42 (vor 3693 Tagen) @ Barny.G

Und diese Matrix "V" kommt ja aus der EW/EV-Zerlegung mit [V D] = eig (N^-1). Und nur wenn ich bei dieser Matrix V die Spalten tausche, kommt ein (scheinbar?) plausibles Ergebnis heraus...

Kommt drauf an, was dir eig() rausschmeisst. Das muss nicht zwangsläufig in der richtigen Reihenfolge sein. Es kann z.B. nach den Eigenwerten sortiert sein, was ungünstig für die Darstellung sein kann. Guck dir nochmal die Matrix an, dir die eig() liefert. Soweit ich verstanden habe, bekommst du eine Matrix raus, die du leider nicht so einfach transponieren kannst. Das fliplr() flippt dir zufällig die Matrix so, dass sie ansprechend für die Visualisierung ist.

Also liegt es m.E. am Zusammenspiel zwischen eig() und der mesh-Funktion.

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 11:57 (vor 3693 Tagen) @ .seb

Nachtrag:

Gute Nachricht für dich Barny. Ich habe nochmal die eig()-Funktion validiert. Wenn du dir nur ein Ausgabe-Parameter ausgeben lässt, also nur die Eigenwerte, erhälst du eine andere Reihenfolge der Eigenwerte (D = eig(N^-1) ), als wenn du dir zwei Parameter übergeben lässt ([V D] = eig(N^-1)). Du musst also tatsächlich nur die Eigenwerte drehen von der Reihenfolge.

Was passiert, wenn du (N^-1) transponierst mit ' ?

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 12:41 (vor 3693 Tagen) @ .seb

Moin moin,

Das fliplr() flippt dir zufällig die Matrix so, dass sie ansprechend für die Visualisierung ist.

Genau!

Was passiert, wenn du (N^-1) transponierst mit ' ?

Na da passiert nix, da N ja symmetrisch ist N=N^' und damit auch N^-1=(N^-1)' ;-)

Wenn du dir nur ein Ausgabe-Parameter ausgeben lässt, also nur die Eigenwerte, erhälst du eine andere Reihenfolge der Eigenwerte (D = eig(N^-1) ), als

Naja, das ist klar, weil dann Matlab die EW der Größe nach ordnet.

wenn du dir zwei Parameter übergeben lässt ([V D] = eig(N^-1)). Du musst also tatsächlich nur die Eigenwerte drehen von der Reihenfolge.

Bist Du Dir da sicher? Wie hast Du das validiert?

Irgendwie werden es immer mehr Fragen...

Grüße

Thomas

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 13:55 (vor 3693 Tagen) @ Barny.G

Bist Du Dir da sicher? Wie hast Du das validiert?

Geprüft habe ich, indem ich beide Befehle in die Matlab-Konsole eingegeben habe.
Habe mich gerade noch mal reingelesen, wenn du [V D] = eig() sind auf der Diagonalen von D (diag(D)) die Eigenwerte und die liegen ungekehrt vor als wenn du nur D = eig() eingibst!

Grüße
Sebastian

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 14:02 (vor 3693 Tagen) @ .seb

Habe mich gerade noch mal reingelesen, wenn du [V D] = eig() sind auf der Diagonalen von D (diag(D)) die Eigenwerte

... und die sollten mit den EV in V korrespondieren - oder nicht?

und die liegen ungekehrt vor als wenn du nur D = eig() eingibst!

Hm, bei meinem Bsp nicht, aber egal. Die Zuornung ist es ja, die wichtig ist. Denn diese bestimmt ja schließlich die Einheitenlänge der jeweiligen EV...

Bei meinem Versuch habe ich ja gegen meine innere Überzeugung die EV getauscht und die EW beibehalten, was diese o.g. Zuordnung verändert. Und das, glaube ich, ist falsch.

Avatar

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

MichaeL ⌂, Bad Vilbel, Tuesday, 18.02.2014, 08:57 (vor 3692 Tagen) @ Barny.G

Hi,

Möglicherweise ist es aber "nur" ein MatLab-Problem, wie es seb. schreibt:
4555

Validier es doch mit einer bekannten Lösung. Im Benning ist eine 3x3 Kovarianzmatrix drin, die mittels spektraler Analyse zerlegt wird. Hier könntest Du mal Deine ermittelten Werte mit denen aus dem Buch vergleichen.

Gruß Micha

--
applied-geodesy.org - OpenSource Least-Squares Adjustment Software for Geodetic Sciences

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 24.02.2014, 20:11 (vor 3686 Tagen) @ MichaeL

Entschuldigung, dass ich mich jetzt erst melde:

Das Ellipsoid liegt richtig. Die Mathematik hat(te) recht. Ich habe mehrere Beispiele gerechnet und im Ergebnis liegen alle so. Wahrscheinlich stimmt was mit meinem Bauchgefühl nicht ;-)

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Sunday, 16.02.2014, 20:29 (vor 3694 Tagen) @ MichaeL

Moin moin,

Verzeihung, eine Frage hatte ich nicht beantwortet:

dass MatLab bei der Angabe der EV in V die genau verkehrt herum angibt?

Was heißt verkehrt herum?

Ich meine, dass wenn ich die Matrix V mit fliplr(V) spiegele, alles zu passen scheint. D.h. das Ellipsoid passt zu den Erwartungen...

bis gleich?

BG

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 09:17 (vor 3693 Tagen) @ Barny.G

Hallo,

also es könnte an der 3D-Darstellung in Matlab liegen. Oft ist es erforderlich, dass man die Datenmatrix transponiert in den 3D-Plot schiebt. Das z.B. beim Mesh-Befehl so. Wenn man das nicht macht, bekommt man eine spiegelverkehrte Ansicht!

Also musst du im 3. Parameter deines Plotbefehls, dein Datenvektor, nochmal ein ' ranhängen!

Aber es kann auch sein, dass durch manuelles Spiegeln deiner Matrix mit fliplr() das Gleiche erreichst.

Aber das scheinen kontrollierbare Probleme zu sein. Dein Problem ist wohl gelöst.


Grüße
Sebastian

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 11:05 (vor 3693 Tagen) @ .seb

Hallo,

also es könnte an der 3D-Darstellung in Matlab liegen. Oft ist es erforderlich, dass man die Datenmatrix transponiert in den 3D-Plot schiebt. Das z.B. beim Mesh-Befehl so. Wenn man das nicht macht, bekommt man eine spiegelverkehrte Ansicht!

Also musst du im 3. Parameter deines Plotbefehls, dein Datenvektor, nochmal ein ' ranhängen!

Aber es kann auch sein, dass durch manuelles Spiegeln deiner Matrix mit fliplr() das Gleiche erreichst.

Aber das scheinen kontrollierbare Probleme zu sein. Dein Problem ist wohl gelöst.


Grüße
Sebastian

Hallo und moin moin,

also es könnte an der 3D-Darstellung in Matlab liegen. Oft ist es erforderlich, dass man die Datenmatrix transponiert in den 3D-Plot schiebt. Das z.B. beim Mesh-Befehl so. Wenn man das nicht macht, bekommt man eine spiegelverkehrte Ansicht!

Na wenn das so ist, dann liegt es offensichtlich nicht an der falsch angewandten Mathematik, sondern an mir...

Also musst du im 3. Parameter deines Plotbefehls, dein Datenvektor, nochmal ein ' ranhängen!

Deinen Hinweis habe ich sogleich ausprobiert, was allerdings zu einer sicher interessanten, aber nicht erwarteten Darstellung führte. Aus
[image]
wurde
[image].

Möglicherweise liegt das daran, dass ich das Ellipsoid mit der MatLab-Funktion
[x y z] = ellipsoid(x0,y0,z0,xr,yr,zr,n)
berechne, die dann als x,y,z die Koordinaten für mesh/surf vorgibt. Diese x,y,z sind allerdings nicht Vektoren, sondern Matrizen.

Dein Problem ist wohl gelöst.

Mathematisch wahrscheinlich...

Hast Du noch eine Idee in Bezug auf die Darstellung in MatLab? Ich meine, ich könnte ja das Ellipsoid "mit Gewalt" um die y-Achse um 90° drehen, was aber bestimmt mathematischer Unsinn wäre.

Viele Grüße

Thomas

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 11:22 (vor 3693 Tagen) @ Barny.G

Möglicherweise liegt das daran, dass ich das Ellipsoid mit der MatLab-Funktion
[x y z] = ellipsoid(x0,y0,z0,xr,yr,zr,n)
berechne, die dann als x,y,z die Koordinaten für mesh/surf vorgibt. Diese x,y,z sind allerdings nicht Vektoren, sondern Matrizen.

Ja dann musst du anders vorgehen. Sorry, dass ich das so nicht berücksichtigt habe. Mein Vorschlag war auf 2D-Bilder bezogen. Habe gedacht, dass kann man auf dein Problem übertragen. Dann mach das erstmal über fliplr.

Mathematisch wahrscheinlich...

Hast Du noch eine Idee in Bezug auf die Darstellung in MatLab? Ich meine, ich könnte ja das Ellipsoid "mit Gewalt" um die y-Achse um 90° drehen, was aber bestimmt mathematischer Unsinn wäre.

Pass deine Ellipsoid-Matrix mit fliplr() an und pass dann die Ansicht mit view() an.

Wenn du die Matlab-Datei vorzeigen musst, mach das am besten geschickt:

Du gibst ganz normal die Ellipsoid-Matrix aus. Und dann legst du nochmal Variablen mit dem fliplr() an, meinetwegen x_visual y_visual z_visual , bei dem du Kommentar darauf verweisst, dass es angepasste Variable für die Ausgabe sind.

Ich weiß, worauf du hinaus willst, du willst dich absichern, dass du mathematisch alles richtig gemacht hast. Soweit ich das beurteilen kann, gehst du richtig vor. Ganz sicher kann ich das nur beurteilen, wenn ich das ganze Matlab-Skript habe.

Grüße
Sebastian

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 12:51 (vor 3693 Tagen) @ .seb

Klar kann ich Dir das skript anhängen/schicken. Auch die dafür notwendigen gespeicherten Variablen sind vorhanden - nur wie stelle ich das an?

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 13:51 (vor 3693 Tagen) @ Barny.G

Kannst du in den benutzten directupload nicht auch M-Dateien hochladen. Müsste machbar sein.

Grüße
Sebastian

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

Barny.G, Monday, 17.02.2014, 14:08 (vor 3693 Tagen) @ .seb

OK, mal sehen ob das funktioniert - die gespeicherten Variablen sind hier:

http://www.workupload.com/file/QeUkbPSq

und das skript dazu hier:

http://www.workupload.com/file/XrWpP01v

Viel Spaß beim Testen...

Thomas.

3D-Fehlerellipsoid, Achsen berechnen und zuordnen

.seb, Monday, 17.02.2014, 14:52 (vor 3693 Tagen) @ Barny.G

Hat funktioniert,

was du uns nicht verraten hast, dass zwei unterschiedliche Ellipsoide rauskommen, jenachdem ob man die Matrizen flippt oder nicht. Da kann was nicht stimmen. Der Ellipsoid ohne fliplr sieht mir noch am ehesten wie ein Fehlerellipsoid aus. Das andere... na ja... ist das überhaupt so vorgesehen.

Bevor wir weiter philosophieren, würde ich ein richtiges Matlab-Forum aufsuchen und dort dein Programm vorstellen. Denn es handelt sie allen Anschein nach um ein Matlab-Verarbeitungsproblem und kein Geodäsie Spezifisches.


Grüße
Sebastian

RSS-Feed dieser Diskussion