Regressionsfläche ermitteln (Geodäsie/Vermessung)

komplexor, Mittwoch, 24. Mai 2017, 10:44 (vor 204 Tagen)

Hallo,

ich habe ein 9x9 Grid mit 81 Beobachtungswerten, also quasi eine Beobachtungsmatrix.
Für diese Matrix würde ich gerne eine Regressionsfläche berechnen, genauer gesagt die Varianzen.
Für das funktionale Modell würde ich die folgende Funktion verwenden wollen:
f(x,y) = a0x+a1y+a2x^2+a3y^2+a4xy

Leider ist das Thema Ausgleichung bei mir schon lange lange her und mir ist nicht mehr ganz klar wie ich weiter vorgehen muss.
Ich erinnere mich noch an einen Beobachtungsvektor, aber habe keine Ahnung, wie ich mit einer Beobachtungsmatrix umgehen muss.
Kann mir jemand etwas auf die Sprünge helfen, das wäre klasse.

Danke und Gruß

Regressionsfläche ermitteln

Eddi, Mittwoch, 24. Mai 2017, 14:15 (vor 204 Tagen) @ komplexor

Hallo,
kannst Du x und y als fehlerfrei annehmen oder gelten z=f(x,y),x und y als fehlerbehaftet?

Eddi

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Mittwoch, 24. Mai 2017, 15:43 (vor 204 Tagen) @ komplexor
bearbeitet von MichaeL, Mittwoch, 24. Mai 2017, 21:18

Hallo,

Für das funktionale Modell würde ich die folgende Funktion verwenden wollen:
f(x,y) = a0x+a1y+a2x^2+a3y^2+a4xy
Kann mir jemand etwas auf die Sprünge helfen, das wäre klasse.

Du benötigst die Designmatrix A, die die partiellen Ableitungen nach den Unbekannten enthält. Diese sieht bei Dir recht einfach aus:

A=\begin{pmatrix}
x_1 & y_1 & x^2_1 & y^2_1 & x_1y_1 \\
\vdots & \vdots & \vdots & \vdots & \vdots \\
x_n & y_n & x^2_n & y^2_n & x_ny_n
\end{pmatrix}

Ferner kannst Du mit Deinem funktionalen Zusammenhang den Widerspruchsvektor w aufstellen. In Abhängigkeit von Deiner Antwort auf Eddi's Frage ergeben sich nun unterschiedliche Lösungsstrategien - Stichwort Gauß-Markov oder Gauß-Helmert-Modell. Eine einfache Variante wäre bspw.

d\hat x = A^+ w

zu bestimmen und diesen dx-Vektor an den Näherungswerten anzubringen und eine weitere Ausgleichung (Iteration) mit der verbesserten Lösung zu bestimmen.

Viele Grüße
Micha

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

Regressionsfläche ermitteln

Eddi, Mittwoch, 24. Mai 2017, 21:11 (vor 204 Tagen) @ MichaeL

Hallo Micha,
die Unbekannten X1 bis X5 sind doch die Koeffizienten a0 bis a4 und damit hast Du doch ein stinknormales überbestimmtes lineares Gleichungssystem mit den Werten x, y, x^2, y^2 und xy als Elemente der Verbessungsgleichung, da brauchst Du keine Ableitungen und Näherungen, oder stehe ich gerade auf dem berühmten Schlauch?

Eddi

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Mittwoch, 24. Mai 2017, 21:26 (vor 204 Tagen) @ Eddi
bearbeitet von MichaeL, Mittwoch, 24. Mai 2017, 22:13

Hi,

mit den Werten x, y, x^2, y^2 und xy als Elemente der Verbessungsgleichung,

Stimmt, da hatte ich mich vertan. Ich habe mein Posting korrigiert.

da brauchst Du keine Ableitungen und Näherungen, oder stehe ich gerade auf dem berühmten Schlauch?

Die Koeffizienten, die Du nun genannt hast, erhältst Du ja praktisch durch eine Ableitung. Wenn x und y Beobachtungen sind, dann benötigst Du auch für die Unbekannten eine Näherung, da Du dann die partiellen Ableitungen nach den Beobachtungen auch noch bilden musst.

B=\begin{pmatrix}
a_0 + 2a_2x_1 + a_4y_1  & a_1 + 2a_3y_1 + a_4x_1 & -1 \\
\vdots & \vdots & \vdots  \\
a_0 + 2a_2x_n + a_4y_n  & a_1 + 2a_3y_n + a_4x_n & -1 \\
\end{pmatrix}

Ich hoffe, ich habe mich nicht wieder vertippt :)

Viele Grüße
Micha

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

Regressionsfläche ermitteln

Eddi, Mittwoch, 24. Mai 2017, 21:58 (vor 204 Tagen) @ MichaeL

Für den einfachen Fall der fehlerfrei angenommenen x/y komme ich aber ohne Ableitung und Näherung aus, denn die Gleichungen sind ja schon linear, oder?

Viele Grüße

Eddi

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Mittwoch, 24. Mai 2017, 22:11 (vor 204 Tagen) @ Eddi

Hi,

die Gleichungen sind ja schon linear, oder?

Auch lineare Gleichungen besitzen eine Ableitung (die einfach dem Vorfaktor entspricht).

komme ich aber ohne Näherung aus

Ja, dem habe ich nicht widersprochen.

Was mir eigentlich noch fehlt, sind die Werte der "Beobachtungen" für f(x,y) = z.

Schönen Abend
Micha

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

Regressionsfläche ermitteln

komplexor, Donnerstag, 01. Juni 2017, 10:57 (vor 196 Tagen) @ MichaeL

Hallo Zusammen,

zunächst besten Dank für die Unterstützung.
Ich habe mich jetzt mal rangesetzt und die Designmatrix aufgestellt und dann die mir bekannten Ausgleichungsschritte ausgeführt. Leider erhalte ich aber Koeffizienten, mit denen die Residuen zwischen der beobachteten und der ausgeglichene Fläche viel zu groß sind.
Anbei habe ich mal die Excel mit der Berechnung hochgeladen.
http://filehorst.de/d/birHDsAb
Hier kann man auch ein Plot der beobachteten Fläche sehen. Wenn man dann die Funktion mit den berechneten Koefizienten mal bei Wolfram Alpha eingibt, sieht man das die Fläche stark von der beobachteten Fläche abweicht.
http://www.wolframalpha.com/input/?i=f(x,y)+%3D+69907*x%2B53940*y%2B-7241*x%5E2%2B-2603*y%5E2%2B1447*xy

Wäre nett wenn ihr euch mal die Berechnung anschaut und mir sagen könnt was ich falsch gemacht habe.

VG

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Freitag, 02. Juni 2017, 10:48 (vor 195 Tagen) @ komplexor

Hi,

hier mal meine Lösung, die ich in Matlab/Octave erhalte. Mein verwendeter Code ist unten angefügt. Die Parameter sind

a =
 
           63775.507166733
          51677.4676852791
         -3567.73091416195
          -1523.1582338226
         -2126.29367766202

Wenn ich mir den Plot so ansehe, passt Dein Modell nur bedingt.

[image]

Viele Grüße
Micha

clear all
close all
format long g
clc
 
d = [
1 1  304942
1 2  308298
1 3  312481
1 4  317282
1 5  321781
1 6  324225
1 7  324347
1 8  323188
2 1  316688
2 2  320063
2 3  324747
2 4  330096
2 5  336042
2 6  339211
2 7  339371
2 8  338562
3 1  330269
3 2  332783
3 3  336982
3 4  340340
3 5  344769
3 6  350510
3 7  352527
3 8  353029
4 1  345745
4 2  346596
4 3  350866
4 4  353812
4 5  357153
4 6  362872
4 7  366183
4 8  367879
5 1  346414
5 2  354549
5 3  359087
5 4  362396
5 5  366733
5 6  371214
5 7  375946
5 8  379165
5 9  381900
5 10  384032
6 1  357128
6 2  366211
6 3  372577
6 4  377025
6 5  382663
6 6  387395
6 7  392556
6 8  395889
6 9  398911
6 10  401496
7 1  369030
7 2  377191
7 3  384684
7 4  391385
7 5  397565
7 6  402845
7 7  407988
7 8  412800
7 9  416911
7 10  420125
8 1  381403
8 2  390747
8 3  399302
8 4  407526
8 5  414101
8 6  418549
8 7  424218
8 8  430747
8 9  435959
8 10  439909
9 1  393694
9 2  405124
9 3  416535
9 4  425279
9 5  432164
9 6  437040
9 7  443414
9 8  450798
9 9  456610
9 10  461182
10 1  409254
10 2  422472
10 3  437033
10 4  445715
10 5  452849
10 6  460184
10 7  467327
10 8  473766
10 9  479467
10 10  484383
11 1  429360
11 2  443021
11 3  456661
11 4  466642
11 5  475168
11 6  483763
11 7  491689
11 8  498437
11 9  504377
11 10  509641
12 1  451589
12 2  465066
12 3  477927
12 4  489084
12 5  499054
12 6  508455
12 7  517051
12 8  524570
12 9  531150
12 10  536935
];
 
y = d(:,1);
x = d(:,2);
z = d(:,3);
 
J = [x, y, x.^2, y.^2, x.*y];
a = J\z;
 
u = a(1).*x+a(2).*y+a(3).*x.^2+a(4).*y.^2+a(5).*x.*y;
 
plot3(x,y,z, '.',...
      x,y,u,'o')
legend({'Daten'; 'Ausgleichung'})
grid on
axis square
xlabel('X');
ylabel('Y');
zlabel('Z');
 

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

Tags:
Regressionsfläche, Matlab, Octave, Ausgleichung

Regressionsfläche ermitteln

Eddi, Donnerstag, 25. Mai 2017, 11:18 (vor 203 Tagen) @ komplexor

Hallo nochmal,
falls Du die x- und y-Werte als fehlerfrei betrachten kannst (nur die z=f(x,y)- Werte sollen verbessert werden!) und Dir Micha's Angaben noch nicht reichen, melde Dich mal bei mir unter

etwas-vermessen@gmx.de

ich kann Dir den Berechnungsgang und ein durchgerechnetes Beispiel zusammenstellen.

Viele Grüße von

Eddi

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Donnerstag, 25. Mai 2017, 12:09 (vor 203 Tagen) @ Eddi

Hi Eddi,

ich weiß Dein Engagement durchaus zu schätzen aber ich fände es schöner und auch nachhaltiger, wenn wir als Mitleser bei der Lösung involviert sind und nicht alles im Hintergrund per Mail abläuft. Für Suchende mit einer ähnlichen Problemstellung ergibt sich ein Benefit, wenn sie die Lösung auch direkt vorfinden.

Viele Grüße
Micha

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

Regressionsfläche ermitteln

Eddi, Donnerstag, 25. Mai 2017, 13:00 (vor 203 Tagen) @ MichaeL

Okay, da habe ich wohl was falsch verstanden.........:-(
Ich wollte nur verhindern, dass sich andere Teilnehmer langweilen, wenn es zu speziell wird.
Für die Zukunft gebongt :-)

Eddi

Avatar

Regressionsfläche ermitteln

MichaeL ⌂, Bad Vilbel, Donnerstag, 25. Mai 2017, 13:26 (vor 203 Tagen) @ Eddi

Hi Eddi,

wie gesagt, ich will Dich gar nicht reglementieren und finde Deine Hilfestellungen hier sehr löblich. Es wäre nur schön, dass wenn eine Lösung am Ende abgeleitet wird für ein Problem, diese auch irgendwie wieder für alle sichtbar wird.

Ich kann mir gut vorstellen, dass es einige Mitlese bei den Threads gibt. Diese würde man nicht vor den Kopf stoßen.

Ich wollte nur verhindern, dass sich andere Teilnehmer langweilen, wenn es zu speziell wird.

Ich denke, hier sind alle in der Lage bestimmte Postings/Threads zu ignorieren. ;-)

Für die Zukunft gebongt :-)

Vielen Dank und schönen Feiertag
Micha

--
freie Tools zur Netzausgleichung, Transformation und Formanalyse

RSS-Feed dieser Diskussion