|
Autor |
Ebenenfit in Messdaten |
|
pieee
Ehemals Aktiv  Dabei seit: 11.01.2013 Mitteilungen: 206
 | Themenstart: 2018-05-29
|
Hallo miteinander,
ich habe aus einer Messung Messdaten gewonnen und sie in 3 Matritzen gespeichert, die ich als X Y und Z Koordinaten wie im folgenden Bild zu sehen über den Surf-Befehl darstelle.
https://www.matheplanet.com/matheplanet/nuke/html/uploads/b/35730_Diagramm.PNG
Der Aufbau der Matritzen ist wie folgt:
\
X=(-30,...,+30;-30,...,+30;-30,...,+30;...,...;-30,...,+30)
Y=(-30,...,-30;-29,...,-29;-28,...,-28;...,...;30,...,30)
Und Z beinhaltet Abweichungswerte wie eben im Bild dargestellt wird
Die Matritzen haben die Dimension NxN, wobei N=61 ist und X und Y eine Schrittweite von 1 haben
Da das Gebilde einen Trend beinhaltet, möchte ich diesen Korrigieren. Dazu soll ich in die Messdaten einen Ebenenfit reinlegen und diesen dann von den Z-werten Abziehen. Ich grübel da jetzt ne weile schon drüber aber bin noch auf keine Lösung gekommen. Kann und möchte mir wer weiterhelfen?
|
Profil
|
majoka
Senior  Dabei seit: 25.02.2014 Mitteilungen: 810
 | Beitrag No.1, eingetragen 2018-05-30
|
Die einfachste Möglichkeit ist vermutlich Least-Squares. In etwa so
\sourceon Matlab
clear all
clc
close all
x = -30 : 1 : 30;
y = -30 : 1 : 30;
n = length(x);
Xk = repmat(x,n,1);
X_k = Xk(:);
Yk = repmat(y,n,1);
Y_k = reshape(Yk',n*n,1);
% ax + by + c = f(x,y)
a = 2;
b = 3;
c = 5;
f = @(x,y) a*x + b*y + c;
Z_k = f(X_k,Y_k) + 1 * randn(n*n,1);
% Fit
A = [X_k Y_k ones(n*n,1)];
fit = inv(A'*A)*A'*Z_k;
a_fit = fit(1);
b_fit = fit(2);
c_fit = fit(3);
[X,Y] = meshgrid(x,y);
clf
figure(1)
hold on
surf(X,Y,a_fit*X+b_fit*Y+c_fit)
plot3(X_k,Y_k,Z_k,'r+')
hold off
figure(2)
hold on
plot3(X_k,Y_k,Z_k-(a_fit*X_k+b_fit*Y_k+c_fit),'r+')
hold off
\sourceoff
|
Profil
|
pieee
Ehemals Aktiv  Dabei seit: 11.01.2013 Mitteilungen: 206
 | Beitrag No.2, vom Themenstarter, eingetragen 2018-05-31
|
danke, ich werde es mir anschauen, sobald ich dazu komme! :)
|
Profil
|
pieee hat die Antworten auf ihre/seine Frage gesehen. |
|
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2023 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen. Lesen Sie die
Nutzungsbedingungen,
die Distanzierung,
die Datenschutzerklärung und das Impressum.
[Seitenanfang]
|