Verfasst am: 02.12.2008, 21:34
Titel: Polynom 1.Grade mit Nullpunkt als Fixpunkt
Hallo ich möchte eine Ausgleichsgrade programmieren, welche duch den Koordinatenursprung geht. Also der Punkt (0,0) soll in jedem Fall geschnitten werden.
Ich habe bisher folgenden Quelltext programmiert:
Code:
.
.
.
.
%zuvor aus messdateil geladene daten
x = [x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,];
y = [y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,];
xt = tan(abs(x)/180*pi);
ys = abs(y-y1);
% Ausgleichsgrade: Polynom 1. Grades:
yp = polyfit(xt,ys,1);
% Plotte punkte sowie Ausgleichsgrade plot(xt,ys,'*',xt,polyval(yp,xt),'r-') ;
.
.
.
Eine ausgleichende Gerade mit dem Ursprung als Fixpunkt (-> Ursprungsgerade) läßt sich mit relativ einfachen Mitteln schätzen. Die Geradengleichung hat dort ja nur einen Parameter, nämlich die Steigung m:
y = m * x
m kannst Du ganz einfach so berechnen (Schätzung nach kleinsten Quadraten):
Code:
m = (x'*y)/(x'*x); % für Spaltenvektoren bzw.
m = (x*y')/(x*x'); % für Zeilenvektoren
...aber, da ich leider wie gesagt, matlabtechnisch etwas auf dem Schlau stehe ist es mir nicht gelungen, die genannten Lsg. zu adaptieren.
Es wäre wirklich nett, wenn sich jem. kurz, meinem im ersten Beitrag geposten Code annehmen könnte, und das kurz die Gesamtlsg. posten könnte.
Vielen Dank !
Gruß, Björn
Gast
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 06.12.2008, 21:16
Titel:
Code:
x = [x2,x3,x4,x5,x6,x7,x8,x9,x10,x11,x12,x13,x14,];
y = [y2,y3,y4,y5,y6,y7,y8,y9,y10,y11,y12,y13,y14,];
xt = tan(abs(x)/180*pi);
ys = abs(y-y1);
yp = polyfit(xt,ys,1); % Polyfit, 1. Grad
m=xt(:)\ys(:); % Steigung der Geraden durch 0/0 plot(xt,ys,'rx'); % Messpunkte darstellen hold on; % Weitere Graphen in das selbe Bild plot(xt,polyval(yp,xt),'g-'); % Das Polynom ausgewertet an den Stuetzstellen x plot(xt,m*xt,'b-'); % Die Gerade durch 0/0 mit Steigung m legend('Messpunkte','Ausgleichsgrade polyfit','Ausgleichsgrade durch 0/0');
Ich hätte jetzt nur noch das Problem mit der linearen Regression und würde gern das Bestimmtheitsmaß angegeben bekommen.
Hat einer ne Ahnung wie ich das hinbekomme??
Vielen Dank
Gruß, Deto
Einstellungen und Berechtigungen
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.