function [a,b]=dfit(x,y); % fittet eine Gerade so in eine Punktmenge, daß % die Summe der quadratischen Abstände der Punkte % zur Geraden minimal wird % Damit wird der fit der x auf die y symmetrisch zu dem % der y auf die x x=x(:).';y=y(:).'; N=length(x); if(N ~= length(y)) disp('Vektoren untersch. lang bei dfit.m');return; end x=[x;y]; %x=[[1;1+0][2;2+0][3;3+0]]; %x=[[1;2+4][2;4+4][3;6+4]]; %x=[x(2,:);x(1,:)]; %N=3; mean_xx = mean(x(1,:).^2); mean_yy = mean(x(2,:).^2); mean_x = mean(x(1,:) ); mean_y = mean(x(2,:) ); mean_xy = mean(x(1,:).*x(2,:)); A=[[mean_xx-mean_x^2 mean_xy-mean_x*mean_y];... [mean_xy-mean_x*mean_y mean_yy-mean_y^2 ]]; [v,d]=eig(N*A); [ev,ind]=min(diag(d)); e=v(:,ind); r=(1/N)*sum(e'*x); mean(x(1,:))*e(1)+mean(x(2,:))*e(2); a=0;b=0; if(e(2)==0) disp('Senkrechte bei dfit.m');return; end a=-e(1)/e(2); b=r/e(2); return