|
|
Gaußfunktion fitten mit lsqcurvefit |
|
SaFW |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 24.02.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.03.2020, 17:43
Titel:
|
|
|
|
|
Hallo,
gut, dann hier nochmal alles vollständig.
Also hier ist mein Versuch die Daten zu normieren und daraus dann einen ordentlichen Plot zu bekommen
Das Ergebnis ist im ersten Bild zu sehen...
Anschließend habe ich versucht die Fit-Daten zu skalieren. Dabei bin ich aber erstmal auf die Frage gestoßen, was denn am sinnvollsten wäre. Dachte mir also, dass eine Exponentialfunktion vielleicht sinnvoll wäre. Habe es also damit versucht
Das Ergebnis ist auch nicht zufriedenstellend. (siehe zweites Bild)
Hab jetzt keine weiteren Ideen wie ich das lösen kann und das es so aussieht wie im letzten Bild.
Kann es sein, dass ich noch die Amplitude mit in meine Rechnung mit einbeziehen muss?
Gruß
Beschreibung: |
|
Download |
Dateiname: |
Lösung.png |
Dateigröße: |
46.89 KB |
Heruntergeladen: |
237 mal |
Beschreibung: |
|
Download |
Dateiname: |
Graph4.png |
Dateigröße: |
11.18 KB |
Heruntergeladen: |
253 mal |
Beschreibung: |
|
Download |
Dateiname: |
Graph3.png |
Dateigröße: |
14.16 KB |
Heruntergeladen: |
233 mal |
|
|
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.03.2020, 18:08
Titel:
|
|
Hallo,
die Skalierung war nicht sinnvoll. So wird ja nicht die Fläche 1. Dann waren auch die Startwerte noch ein Problem.
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 ;)
|
|
|
SaFW |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 24.02.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 23.03.2020, 19:00
Titel:
|
|
Hallo,
ich bedanke mich sehr für deine Hilfe!
Was ich noch nicht ganz verstehe ist, warum das Sigma jetzt geschätzt wird, wenn man doch den std Befehl hat? Hat bestimmt was mit der Normierung zu tun, wäre aber fürs Verständnis gut zu wissen.
Und wäre es noch irgendwie möglich gewesen es anders herum zu machen? Also, dass ich meine gefitteten Daten an meine ursprüngliche Datenkurve anpasse, anstatt die Kurve zu normieren? Da hab ich mich nämlich eher drauf konzentriert und bin auf keinen vernünftigen Gedanken gekommen
Gruß
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 23.03.2020, 19:15
Titel:
|
|
Hallo,
weil nicht die std von den y-Werten genommen werden müsste, sondern von den x-Daten in der Häufigkeit der y-Werte. Das Auszuklambüstern war mir dann doch zu mühsam.
Ob du jetzt die Daten durch sum(Daten) teilst oder die Kurve mit sum(Daten) multiplizierst, ist gleichgültig.
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 ;)
|
|
|
SaFW |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 24.02.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 25.03.2020, 19:34
Titel:
|
|
Hallo,
was meinst du jetzt genau mit
Zitat: |
von den x-Daten in der Häufigkeit der y-Werte |
?
Ist damit eine Häufigkeitsdichte gemeint?
Trotzdem hätte ich das wohl ohne deine Hilfe nie hinbekommen und daher danke ich dir sehr!
Grüße
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 25.03.2020, 21:24
Titel:
|
|
Hallo,
ich meinte das so... man kann Daten so interpretieren, dass...
1 3 mal vorkam
2 24 mal vorkam
3 4 mal vorkam
etc.
d.h. der Mittelwert und auch die Standardabweichung müssen von 1, 2, 3 etc. in der Gewichtung von Daten genommen 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 ;)
|
|
|
SaFW |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 24.02.20
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.03.2020, 20:14
Titel:
|
|
Hallo,
ah okay dankeschön. Das ist verständlich
Das eigentliche Ziel des fittens wurde ja erreicht. Deswegen würde ich das als beantwortet betrachten und mich nochmals sehr für deine Hilfe bedanken!
Für alle, die zukünftig auch auf so ein Problem stoßen ist hier nochmal der Code, bei dem sich die Fitkurve hochskaliert und an die Originaldaten anpasst. Die Gaussfunktion blieb ja dann unverändert, somit brauch ich die nicht nochmal mit hin schreiben.
Grüße,
David
|
|
|
Jonathan |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 26.03.2020, 23:46
Titel:
|
|
Hallo, ich hab ungefähr das selbe problem mit dem fitt, bloß gibt es bei mir vorgegebene x-werte. Hab versucht den code soweit zu übernehmen um zu gucken ob es funktioniert. Hat aber nicht so wirklich :/
Funktion:
hab die Funktion negiert,weil ich mir dachte dass meine Daten ja auch negativ verlaufen
Code:
Das Ergebnis sieht so aus
Hat denke ich auch was mit der Skalierung zu tun. Weiß aber nicht was genau. Hab rumprobiert, dadurch wurde es aber nicht besser.
Hoffe man kann auch mir Matlab deppen helfen
Gruß
Jonathan
|
|
|
Harald |
Forum-Meister
|
|
Beiträge: 24.495
|
|
|
|
Anmeldedatum: 26.03.09
|
|
|
|
Wohnort: Nähe München
|
|
|
|
Version: ab 2017b
|
|
|
|
|
|
Verfasst am: 27.03.2020, 09:47
Titel:
|
|
Hallo,
Zitat: |
hab die Funktion negiert,weil ich mir dachte dass meine Daten ja auch negativ verlaufen |
Das ist ein Gedanke in die richtige Richtung, aber nicht weit genug. Deine Werte sind ja nun nicht negativ, sondern verlaufen von 1010 aus nach unten. D.h. gute Ansätze wären
f = 1010 - Gauss
oder
f = c - Gauss mit zu bestimmendem c (würde zu x(3) )
Zudem wurde in dem Code ja sigma = 20 geschätzt. Wenn man andere Daten hat, muss man auch anders schätzen. Ich würde bei dem Datensatz eher 1000-1500 schätzen.
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 ;)
|
|
|
Busmaster |
Forum-Anfänger
|
|
Beiträge: 18
|
|
|
|
Anmeldedatum: 05.08.09
|
|
|
|
Wohnort: Dresden
|
|
|
|
Version: Matlab2014, Matlab Online, Octave
|
|
|
|
|
|
Verfasst am: 27.03.2020, 12:03
Titel:
|
|
Hallo,
es geht hier ja offenbar um Anpassen von Messwerten an eine Gauss-förmige Funktion (nicht strenggenommen um eine Wahrscheinlichkeitsdichte), da Maximum < 0 und Offset möglich sind.
Dazu verwende ich die Funktion gauss2.m
Dort taucht die Amplitude explizit auf; das erleichtert das Schätzen des Startwertes.
Ergebnis des Lsqfits
mu = -3.91925; % gefundene Lage des Maximums/Minimums der Gauss-Funktion
sig = 1186.73972; % gefundene Breite
mgauss = -560.6591; % gefundenes Maximum/Minimum der Gauss-Funktion
offset = 1037.42384; % gefundenes Offset
Gruss
Busmaster
Beschreibung: |
|
Download |
Dateiname: |
lsqfit.png |
Dateigröße: |
26.03 KB |
Heruntergeladen: |
228 mal |
|
|
|
Jonathan |
Gast
|
|
Beiträge: ---
|
|
|
|
Anmeldedatum: ---
|
|
|
|
Wohnort: ---
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 27.03.2020, 15:02
Titel:
|
|
Hallo,
ja genau das war das Ziel! Dankeschön für die schnelle Hilfe!
Gruß
Jonathan
|
|
|
|
Gehe zu Seite Zurück 1, 2
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| 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.
|
|