www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Fitting von Funktionen
Fitting von Funktionen < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Fitting von Funktionen: Frage (reagiert)
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 19:01 So 26.10.2014
Autor: snsnsn1

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.

Im Rahmen meiner Masterarbeit (grob zum Thema "Verhalten von Schadstoffen im Boden") habe ich Messwerte ermittelt, zu denen ich Funktionen aufstellen möchte. Leider folgen die Messwerte keiner mir bekannten Funktion. Meine Frage ist ob es eine Funktion in Matlab oder einer anderen freien Software gibt, die die Funktionsgleichung zu einem Graphen, den ich durch einzelne (x,y)-Werte vorgebe, ermitteln kann?

Ein Beispiel:
Meine Messwerte geben mir den blauen Graphen vor.
[Dateianhang nicht öffentlich]

Den roten Graphen hab ich geraten: [mm] f(a1,x,b,k,a2,a3)=[a1*(x^b/(e^{k*x}-a2)]*a3 [/mm]
Durch viel rumprobieren und mit dem Solver aus Excel (Methode der kleinsten Quadrate) habe ich versucht ihn an den blauen Graphen anzupassen. Es gibt aber Probleme:
1. Ich bin mit dem Ergebnis immer noch nicht ganz zufrieden.
2. Dieses Vorgehen ist sehr zeitaufwendig und da ich mehrere Graphen auf diese Weise auswerten muss, ist es für mich nicht praktikabel.
3. Was mache ich, wenn ich nicht das Glück habe, alle nötigen Variabeln zu erraten?!

Kann MATLAB eine Funktion/Gleichung von diesem Graphen berechnen und ausgeben? Wenn ja, wie? Oder habt ihr eine ganz andere Idee, wie ich an das Problem "Graph durch Messwerte bekannt, zugehörige Funktionsgleichung unbekannt" (am besten rechnergestützt) rangehen könnte?

Vielen Dank schon mal für eure Hilfe!! :)

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
        
Bezug
Fitting von Funktionen: Antwort
Status: (Antwort) fertig Status 
Datum: 19:19 So 26.10.2014
Autor: Marcel

Hallo,

> Ich habe diese Frage in keinem Forum auf anderen
> Internetseiten gestellt.
>  
> Im Rahmen meiner Masterarbeit (grob zum Thema "Verhalten
> von Schadstoffen im Boden") habe ich Messwerte ermittelt,
> zu denen ich Funktionen aufstellen möchte. Leider folgen
> die Messwerte keiner mir bekannten Funktion. Meine Frage
> ist ob es eine Funktion in Matlab oder einer anderen freien
> Software gibt, die die Funktionsgleichung zu einem Graphen,
> den ich durch einzelne (x,y)-Werte vorgebe, ermitteln
> kann?

Matlab ist nicht frei. Aber Dir würde vermutlich Octave ausreichen, und
es gibt sicher in Matlab und Octave einen gleichen oder sehr ähnlichen
Befehl bzgl. Deiner Frage.
  

> Ein Beispiel:
>  Meine Messwerte geben mir den blauen Graphen vor.
>  [Dateianhang nicht öffentlich]
>  
> Den roten Graphen hab ich geraten:
> [mm]f(a1,x,b,k,a2,a3)=[a1*(x^b/(e^{k*x}-a2)]*a3[/mm]
>  Durch viel rumprobieren und mit dem Solver aus Excel
> (Methode der kleinsten Quadrate) habe ich versucht ihn an
> den blauen Graphen anzupassen. Es gibt aber Probleme:
>  1. Ich bin mit dem Ergebnis immer noch nicht ganz
> zufrieden.
>  2. Dieses Vorgehen ist sehr zeitaufwendig und da ich
> mehrere Graphen auf diese Weise auswerten muss, ist es für
> mich nicht praktikabel.
>  3. Was mache ich, wenn ich nicht das Glück habe, alle
> nötigen Variabeln zu erraten?!
>  
> Kann MATLAB eine Funktion/Gleichung von diesem Graphen
> berechnen und ausgeben? Wenn ja, wie? Oder habt ihr eine
> ganz andere Idee, wie ich an das Problem "Graph durch
> Messwerte bekannt, zugehörige Funktionsgleichung
> unbekannt" (am besten rechnergestützt) rangehen könnte?

Sowas ähnliches habe ich eine Zeit lang mit

    Gnuplot

gemacht. Vielleicht hilft Dir ja

    meine damalige Antwort hier (anklicken!),

insbesondere mit dem darauffolgenden Minimalbeispiel.

Da man sowas aber sicher auch mit MathCad und was weiß ich alles (vllt.
sogar besser) machen kann, stelle ich die Frage mal nur auf halb beantwortet.
Evtl. kann man ja sogar eine Umfrage draus machen?

Gruß,
  Marcel

Bezug
                
Bezug
Fitting von Funktionen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 19:28 So 26.10.2014
Autor: Thomas_Aut

Hallo,

Weil du Matlab angesprochen hast : such mal den Begriff 'polyfit' in Matlab - allerdings musst du dir sozusagen über die numerische Näherung im klaren sein...

Einfach ausgedrückt: Du gibst ein paar Punkte (Messwerte) vor und möchtest dadurch eine Funktion legen ... da gibts jetzt aber verschiedene Ansätze - polyfit arbeitet mit Polynomen(das muss nicht immer der beste Ansatz für eine numerische Approximation sein) .


Gruß Thomas

Bezug
                        
Bezug
Fitting von Funktionen: Polynome ungeeignet
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:22 So 26.10.2014
Autor: Al-Chwarizmi


> Hallo,
>  
> Weil du Matlab angesprochen hast : such mal den Begriff
> 'polyfit' in Matlab - allerdings musst du dir sozusagen
> über die numerische Näherung im klaren sein...
>
> Einfach ausgedrückt: Du gibst ein paar Punkte (Messwerte)
> vor und möchtest dadurch eine Funktion legen ... da gibts
> jetzt aber verschiedene Ansätze - polyfit arbeitet mit
> Polynomen(das muss nicht immer der beste Ansatz für eine
> numerische Approximation sein) .
>  
>
> Gruß Thomas


Hallo Thomas,

nur so aus der Ferne "vom Schiff aus" betrachtet:
ich denke, dass im vorliegenden Fall eine Näherung,
die von Polynomfunktionen (ohne jede Modifikation)
ausgeht, dem Problem ziemlich grundsätzlich nicht
angemessen ist. Es fällt doch ins Auge, dass die zu
beschreibenden Funktionen für große x wohl ein ganz
einfaches asymptotisches Verhalten (mit einer waagrechten
Asymptote oder aber einer sehr flachen asymptotischen
Kurve) haben sollten. Ganz genau das kann man aber
eben gerade mittels Polynomen überhaupt nicht
modellieren.

LG ,  Al-Chw.


Bezug
                                
Bezug
Fitting von Funktionen: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:34 So 26.10.2014
Autor: Thomas_Aut


> > Hallo,
>  >  
> > Weil du Matlab angesprochen hast : such mal den Begriff
> > 'polyfit' in Matlab - allerdings musst du dir sozusagen
> > über die numerische Näherung im klaren sein...
> >
> > Einfach ausgedrückt: Du gibst ein paar Punkte (Messwerte)
> > vor und möchtest dadurch eine Funktion legen ... da gibts
> > jetzt aber verschiedene Ansätze - polyfit arbeitet mit
> > Polynomen(das muss nicht immer der beste Ansatz für eine
> > numerische Approximation sein) .
>  >  
> >
> > Gruß Thomas
>
>
> Hallo Thomas,
>  
> nur so aus der Ferne "vom Schiff aus" betrachtet:
>  ich denke, dass im vorliegenden Fall eine Näherung,
>  die von Polynomfunktionen (ohne jede Modifikation)
>  ausgeht, dem Problem ziemlich grundsätzlich nicht
>  angemessen ist. Es fällt doch ins Auge, dass die zu
>  beschreibenden Funktionen für große x wohl ein ganz
>  einfaches asymptotisches Verhalten (mit einer waagrechten
>  Asymptote oder aber einer sehr flachen asymptotischen
>  Kurve) haben sollten. Ganz genau das kann man aber
>  eben gerade mittels Polynomen überhaupt nicht
>  modellieren.
>  
> LG ,  Al-Chw.

Hallo Al,

richtig, selbst wenn du an Land gegangen wärst stimmt was du sagst :)
Ich habe auch angemerkt , dass Polynome nicht immer sinnvoll sind (in diesem Fall sind sie es beispielsweise nicht ) - die Matlab CurveFitting-Toolbox hat allerdings wesentlich mehr drauf.

Aber du hast recht: ich hätte auf die gesamte Toolbox verweisen sollen - ein polynomieller Ansatz wäre hier vermutlich nicht zielführend.

Gruß
Thomas

>  


Bezug
        
Bezug
Fitting von Funktionen: Antwort
Status: (Antwort) fertig Status 
Datum: 20:06 So 26.10.2014
Autor: Al-Chwarizmi


> Im Rahmen meiner Masterarbeit (grob zum Thema "Verhalten
> von Schadstoffen im Boden") habe ich Messwerte ermittelt,
> zu denen ich Funktionen aufstellen möchte. Leider folgen
> die Messwerte keiner mir bekannten Funktion. Meine Frage
> ist ob es eine Funktion in Matlab oder einer anderen freien
> Software gibt, die die Funktionsgleichung zu einem Graphen,
> den ich durch einzelne (x,y)-Werte vorgebe, ermitteln
> kann?
>  
> Ein Beispiel:
>  Meine Messwerte geben mir den blauen Graphen vor.
>  [Dateianhang nicht öffentlich]
>  
> Den roten Graphen hab ich geraten:
> [mm]f(a1,x,b,k,a2,a3)=[a1*(x^b/(e^{k*x}-a2)]*a3[/mm]
>  Durch viel rumprobieren und mit dem Solver aus Excel
> (Methode der kleinsten Quadrate) habe ich versucht ihn an
> den blauen Graphen anzupassen. Es gibt aber Probleme:
>  1. Ich bin mit dem Ergebnis immer noch nicht ganz
> zufrieden.
>  2. Dieses Vorgehen ist sehr zeitaufwendig und da ich
> mehrere Graphen auf diese Weise auswerten muss, ist es für
> mich nicht praktikabel.
>  3. Was mache ich, wenn ich nicht das Glück habe, alle
> nötigen Variabeln zu erraten?!


Guten Abend,

ich möchte gar nicht auf Softwarelösungen eingehen, sondern
lieber etwas dazu sagen, wie man auch ohne solche Hilfen
wenigstens einen guten Anfang machen kann.
Wichtig ist vor allem, die wesentlichen Eigenschaften
des gesuchten Graphen zuerst festzuschreiben und auch
über die Art des Kurvenverlaufs möglichst sinnvolle Annahmen
zu treffen und dann erst auf dieser Basis ein bestimmtes
Modell zu entwickeln.

Aus deinem Bild entnehme ich:

1.)  Offenbar ist ein Anfangswert f(0)=22 vorgegeben.
Ob diese Annahme zwingend ist oder nur im Rahmen
einer Messtoleranz zu verstehen ist, muss aus einer
inhaltlichen Prüfung hervorgehen.

2.)  Bei beiden Kurven erfolgt zuerst ein (allerdings recht
unterschiedlich) starker Anstieg, gefolgt von einem
allmählichen Abstieg (rote Modellkurve), bei der blauen
Kurve haben wir aber zunächst einen steilen Abfall, auf
den wieder ein Anstieg (und wieder ein leichter Abfall ?)
folgt.

Ginge es nun nur darum, für die wenigen vorliegenden
(blauen) Messpunkte eine möglichst gut passende
Funktion zu finden, könnte man dies bestimmt deutlich
besser hinkriegen als mit dem rot dargestellten Modell.
Damit das Ganze aber einen etwas weiter tragenden
Wert bekommt, würde ich zunächst danach fragen, wie
verlässlich die gegebenen Messwerte überhaupt sind
und ob es nicht möglich wäre, eine verlässlichere
Messwertserie (mit mehr Messpunkten) zugrunde zu
legen.

Dann könnte man ein paar charakteristische Werte
festlegen:  

Startwert  f(0) ?

Lage des ersten Hochpunktes ?

Existenz eines Grenzwertes für große x-Werte ?

In einem weiteren Schritt kann man sich dann aus ein
paar geeigneten Grundfunktionen eine Modellfunktion
mit ein paar (so viele wie nötig, aber nicht zu viele)
Parametern zusammenbauen. Als Grundelemente
können hier etwa in Frage kommen:

[mm] $A*x*e^{-K*x}$ [/mm]  (für den Anfangsanstieg und den ersten "Buckel")

[mm] $B*x*e^{-L*x}$ [/mm]  (für den zweiten kleinen "Buckel")

konstanter Summand C (für die Festlegung von f(0)

Falls die Funktion für ganz große x nicht mehr zum
Startwert abfallen soll, ist ein weiterer Summand
notwendig, der z.B. von der Form  [mm] $\frac{x}{M*x+N}$ [/mm]
sein könnte.
Man sieht aber schon:  6 Messpunkte und 7 Parameter -
das ist eher etwas zuviel des Guten, oder man sollte
sich wirklich zunächst um reichhaltigere Messdaten
kümmern.

LG ,   Al-Chw.





Bezug
        
Bezug
Fitting von Funktionen: Antwort
Status: (Antwort) fertig Status 
Datum: 21:32 So 26.10.2014
Autor: chrisno

Hallo,

ich bin der Meinung, dass Du mit Deiner Frage schon einen Schritt zu weit bist.
Bevor Du Details Deiner Messwerte durch Funktionen beschreibst, musst Du erst etwas über die Genauigkeit Deiner Messwerte sagen. Konkret stelle ich hier die Frage:
Ist das kleine Maximum bei etwa 15 ein echtes Signal?
Du musst lang ausholen, um mich davon zu überzeugen.

Als nächstes merke ich an, dass es die absolute Notlösung ist, ohne Theorie nach einer Funktion zu suchen, die die Messwerte beschreibt. Wenn ich die Daten anschaue, dann stelle ich zuerst die Frage:
Was ist für die Zeit vor Null bekannt?
Eine typische Annahme wäre, dass der Wert konstant war. Die andere Annahme ist, dass der Wert Null war, aber die Messung erst verspätet einsetzt.
Die Abbildung sieht für mich nach folgendem Geschehen aus:
Eine Substanz, deren Konzentration gemessen wird, wird dem untersuchen System zugeführt. An der Messstelle macht ich dies durch den Anstieg bis ungefähr 2 bemerkbar. Danach dominiert der Abbau der Substanz oder eine gleichmäßige Verteilung. Für diese bietet sich ein exponentieller Abfall an, der sich etwa 25 annähert.

Eine Faustregel sagt, dass für jeden Parameter, denn Du anpasst, mindestens drei Messwerte vorliegen sollten. Mit sechs Messwerten wären das nur zwei Parameter. Du verwendest aber 5. Allerdings sehe ich wenig Chancen, so einen Verlauf mit weniger Parametern zu beschreiben. Um so wichtiger ist es, eine Theorie für den Vorgang zu haben, aus der sich eine Funktion ergibt.

Wie sehen die anderen Daten aus? Sind das ähnliche Verläufe?
Ich schließe mich der Meinung an, dass Gnuplot für die Auswertung dieser Daten geeignet ist.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]