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

x-Differenz der Maxima bei Polifit

 

madlab
Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 05.07.2012, 09:47     Titel: x-Differenz der Maxima bei Polifit
  Antworten mit Zitat      
Hallo zuasmmen,

ich steh jetzt schon seit einer ganzen Weile, bei einem relativ einfachen Problem auf dem Schlauch.
Ich habe mir grade eine Funktion geschrieben mit der ich eine Kurve mit Polyval und Polifit interpolieren kann.

Code:
[y_fit , yErrAtMax, xErrAtMax] = mypolynomfit (x, y, degree, anzPunkte)



die Eingabe sind vektroen mit x-werten von 1 bis 180, die zugehörigen y-werte sowie den grad des Polynoms und die anzahl der Messpunkte die interpoliert werden soll. Zuerst sucht die funktion das maximum der eingabekurve y. dann werden von dort aus links und rechte jeweils anzPunkte/2 messwerte aus y entnommen und interpoliert. plotten der beiden kurven funktioniert soweit alles wunderbar,
ich habe es auch hinbekommen die abweichung am maximum von y und y_fit zu errechen (also höchster punkt von messkurve minus höchster punkt der interpolierten kurve).
woran ich jetzt aber scheitere ist es die genaue abweichung der x-werte der Maxima zu bestimmen.
das problem ist, das ich für eine höhere interpolationsgenauigkeit polyval und polyfit mit kleiner schrittweite ausführe (0.1) aber die originalkurve nur 1er schritte macht (1:180)
die indices passen jetzt iwie nicht mehr zusammen wenn ich folgendes mache:

Code:

y_fit = polyval(coeff,x(posMaxVal-regionSize:0.1:posMaxVal+regionSize));

[ymaxfit,xmaxfit] = max(y_fit)
[ymax,xmax] = max(y_fit)
 


für xmax erhalte ich dann z.B. 60 (die position in der das maximum im plot erkennbar ist) und für xmaxfit 100. im plott sehe ich aber, dass die positionen des maximum beide nah beienander liegen (ca 60 und 59,2).
es liegt wohl daran, dass xmaxfit auf den 100er index zugreift anstatt auf den xwert den die kurve dort eigentlich (59,2) hat. ich steh jetzt aber iwie auf dem schlauch. Wie bekomme ich es so gebogen, dass in den genauen x wert der interpolierten kurve bekomme?
ich denke ich übersehe nur wieder etwas doofes. bin für jede hilfe oder anreize dankbar!

grüße,

mad
Private Nachricht senden Benutzer-Profile anzeigen


madlab
Themenstarter

Forum-Fortgeschrittener

Forum-Fortgeschrittener



Beiträge: 86
Anmeldedatum: 15.05.12
Wohnort: Freiburg
Version: 7.11 (R2010b)
     Beitrag Verfasst am: 05.07.2012, 10:05     Titel:
  Antworten mit Zitat      
hab jetzt gefunden wie ichs machen kann ^^
hat wohl geholfen es einfach mal hier rein zu schreiben.

Code:
xfit = x(posMaxMess-anzPunkte:posMaxMess+anzPunkte)
[ymax,xmax] = max(y_fit)
xmax = xfit(xmax)
 
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 - 2025 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.