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

Tool zum optimierten Anpassen einer Kurve an Daten gesucht

 

Odi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2011, 17:47     Titel: Tool zum optimierten Anpassen einer Kurve an Daten gesucht
  Antworten mit Zitat      
Hallo liebe Matlab-Gemeinde,
ich habe noch nicht lange mit Matlab zu tun also entschuldigt diese euch wahrscheinlich simpel vorkommende Frage.
Es geht um Folgendes:
Ich habe einen 2 dim. Datensatz besthend aus Reibmitteldruck (pmr) und Drehzahl (n). An diesen soll ich nun einen alten Ansatz für den Reibmitteldruck anpassen. Der Ansatz is vom prinzipher so aufgebaut:
pmr=(bekannter Wert)+a*(bekannte Werte)+b*(bekannte Werte)
Mit diesem Ansatz kann ich an jedem Drehzahlpunkt den pmr bestimmen.
Ist es mit Matlab möglich die unbekannten Werte a und b so zu bestimmen, dass die pmr-Ansatzkurve bestmöglich mit den gegebenen Daten von pmr übereinstimmen (kleinste Fehlerquadrate oder kleinestes Integral zwischen den Kurven)?
Ich danke euch schon einmal vielmal für eure Mühen.

Gruß Odi


Harald
Forum-Meister

Forum-Meister


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

das ist lineare Regression bzw. ein lineares Gleichungssystem.
Das kann mit dem \ - Algorithmus oder auch mit der Funktion REGRESS gelöst werden.

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
 
Odi

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.02.2011, 18:46     Titel:
  Antworten mit Zitat      
Hallo Harald,
vielen Dank für deine schelle Antwort. Es soll jedoch nicht einfach eine Ausgleichsgerade (linear) durch das gegebene Punktefeld gefunden werden als vielmehr eine recht genau Anpassung an den gegebenen Datensatz. Durch die Optimierung der Parameter a und b soll erreicht werden, dass die im Ansatz berechneten Werte der Kurve duch die gegebenen Daten (Die Kurve durch den gegebenen Datensatz ist eher Spline; Sie lässt sich selbst durch ein polynom 6. Grades nicht ordentlich darstellen).
Kann ich dies ebenfalls durch die Regress Funktion bewerkstelligen?
Ich habe dir ein dürftiges Bild in Paint gezeichnet, da die Daten die ich habe vertraulich sind. Ich hoffe es trägt zum Verständnis des Problems bei ,auch wenn meine zeichenkünste wirklich miserabel sind =). In der Zecihnung stellt die rote Kurve den gegebenen Datensatz da, die Blaue Kurve den Angestrebten Verlauf meines Ansatzes und die gelbe Kurve ist die nicht gewünschte Ausgleichsgerade.
Nochmals vielen Dank an alle.

kurven.jpg
 Beschreibung:

Download
 Dateiname:  kurven.jpg
 Dateigröße:  15.02 KB
 Heruntergeladen:  912 mal
 
Harald
Forum-Meister

Forum-Meister


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

solange das Modell deiner Angabe entspricht, ist es linear. Hier ein Beispiel:

Code:
% Daten
x = (-2*pi:pi/2:2*pi)';
y = 0.78 + 0.43*cos(x) - 0.16*sin(x) + 0.05*randn(size(x));
plot(x, y, 'o')
% lineare Regression mit Modell y = a + b*cos(x) + c*sin(x)
M = [ones(size(x)) cos(x) sin(x)];
[p, pint] = regress(y, M);
disp(p)
% Auswerten des Fits
xi = (linspace(-2*pi, 2*pi, 100))';
Mi = [ones(size(xi)) cos(xi) sin(xi)];
yi = Mi*p;
hold on
plot(xi, yi, 'g')


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.