Ich habe eine nichtlineare Regression durchgeführt und mir die Daten plotten lassen.
Der Fit sieht auch wirklich gut aus. Daher wollte ich mir die Koeffizienten ausgeben lassen, um die Kurve in meiner Exceldatei nachzustellen.
Wenn ich aber nun die Koeffizienten nehme und sie mit der gleichen Formel und den gleichen Daten für x in Excel eingebe um meine y-Werte zu berechnen, kommt eine andere Kurve mit anderen Werten als die bei Matlab raus.
Ich finde leider meinen Fehler nicht. Vielleicht könnt ihr mir ja helfen.
Hier mal mein Code:
Code:
% Regression und Berechnen der Koeffizienten
modelfun = @(b,x)(b(1)*log(abs(b(2)*x(:,1)+b(3)))+exp(b(4)*x(:,1)));
x0 = [0.1, 0.1, 0.1, 0.1];
Laut meinem Verständnis müssten die Koeffizienten meiner Regression in meinem neuen x-Vektor stecken und wenn ich in Excel die Funktion wie in modelfun nehme müsste ich die Kurve doch auch in Excel darstellen können?
am MATLAB-Code sehe ich kein Problem. Vielleicht liegt es am Übertragen nach Excel? Hänge doch mal deine Excel-Datei an, ggf. gezippt.
Wozu eigentlich das ganze? Man kann einen Plot ja auch nach Excel kopieren.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Es geht mir in erster Linie um die Koeffizienten b1 bis b4, die ich auslesen möchte und nach Excel übertragen möchte, um dann direkt in der Datei die Werte zu berechnen und nicht die y-Werte entsprechend übertragen zu müssen.
Wenn ich aber meine Vektoreinträge von x für b1 bis b4 in die Formel einsetze und für x(:,1) meine x-Werte aus der gegebenen Datei, so erhalte ich nicht die gleichen y-Werte wie die, die ich in Matlab auslesen könnte.
wie gesagt: hänge bitte deine Excel-Datei an. Meine Vermutung ist, dass der Fehler dort liegt. Wo genau, kann ich dir ohne die Excel-Datei auch nicht sagen.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Anbei eine erste Version meiner Exceldatei.
Ich habe einmal die Daten über die Teile geplottet, weiterhin die aus Matlab ausgelesen y-Werte zu den Teilen und einmal die mit den Koeffizienten berechneten.
Leider stimmen die Kurven der ausgelesenen und der berecheneten nicht überein und da liegt auch schon mein Problem.
wenn keine Basis angegeben wird, ist LOG in Excel der Logarithmus mit Basis 10, nicht der natürliche Logarithmus. Der natürliche Logarithmus ist LN.
Grüße,
Harald
_________________
1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
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.