WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Nichtlineare Regression - Koeffizienten ausgeben

 

Redeagleone
Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 06.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 13.08.2018, 20:47     Titel: Nichtlineare Regression - Koeffizienten ausgeben
  Antworten mit Zitat      
Hallo liebes Forum.

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];

options = optimoptions('lsqcurvefit');
options.MaxIterations = 100000;
options.MaxFunctionEvaluations = 300000;
lb = [0,0,0,0];
ub = [100,100,100,100];
x = lsqcurvefit(modelfun,x0,Teile,VB, lb, ub, options);

%Plotten der Regression
plot(Teile, modelfun(x, Teile))


Meine Daten lauten
Teile VB
5 0
10 14
15 26
20 33
30 49
40 49
50 51
60 57
70 59
80 74
85 74
90 94
95 94

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?

Vielen Dank im Voraus für jede Hilfe,
Melina
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.08.2018, 09:41     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Redeagleone
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 06.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2018, 09:48     Titel:
  Antworten mit Zitat      
Hallo Harald,

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.

Grüße,
Melina
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.08.2018, 09:56     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Redeagleone
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 5
Anmeldedatum: 06.06.18
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 14.08.2018, 10:13     Titel:
  Antworten mit Zitat      
Hallo Harald,

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.

Grüße,
Melina

Auswertung_v1.xls
 Beschreibung:

Download
 Dateiname:  Auswertung_v1.xls
 Dateigröße:  56.5 KB
 Heruntergeladen:  320 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.495
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 14.08.2018, 10:31     Titel:
  Antworten mit Zitat      
Hallo,

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 ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.