Hallo, ich habe noch ein Problem bei einer Ausgleichsgeraden.
Ich habe daten für x, sowie für y. Jetzt möchte ich gerne ein Polynom 5. grades da hineinlegen. Das mache ich ja mit
p=polyfit(x,y,5)
dann bekomme ich ja sechs werte was ja auch richtig ist.
Wie kann ich denn bestimmen, dass die Linie durch den Punkt (0,0) gehen soll?
In Excel kann ihc ja anklicken: gehe durch den Punkt 0,0. Ist sowas in Matlab auch möglich?
Gruß
du kannst die Vandermondematrix selbst erstellen und beim Absolutglied Nullen statt Einsen reinschreiben. Dann das lineare Gleichungssystem einfach lösen und die Koffizienten nehmen. Etwa so:
% fit polynom 4. grades
p=polyfit(x,y,4);
% alternativ mit Vandermonde Matrix % V = [x.^4, x.^3, x.^2 x.^1, ones(size(x))]; % p = V\y;
f=polyval(p,x);
hold on
plot(x,f,'go-')
% Vandermondematrix ohne absolutglied (zwangsweise 0)
V = [x.^4, x.^3, x.^2 x.^1, zeros(size(x))]
p = V\y
fitted = polyval(p,x) plot(x,fitted,'kx-') legend('data','fit: polynom 4. grades','fit: polynom 4.grades durch (0,0)')
mh,
wenn ich deinen Code durchgehe, funktioniert genau das was ich möchte. Wenn ich jetzt aber meine Daten nehme, kommt etwas sehr merkwürdiges heraus.
% fit polynom 5. grades
p1=polyfit(l,x1,5);
% alternativ mit Vandermonde Matrix % V = [x.^4, x.^3, x.^2 x.^1, ones(size(x))]; % p = V\y;
f1=polyval(p1,x1);
hold on
plot(x1,f1,'go-')
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.