Approximierung einer Funktion < Mathematica < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | Ist es grundsätzlich möglich, in Mathematica oder Matlab eine Funktion zu approximieren? |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich bin neu hier und habe mich gerade erst angemeldet. Natürlich ist die obige Frage keine Aufgabenfragestellung, sondern eine Frage die sich mir im Rahmen der Diplomarbeit stellt. Wenn dieser Thread hier falsch ist, dann bitte verschieben. Aber vielleicht kann mir hier ja einer helfen. Mich würde nur interessieren ob es geht. Werde mich dann in die Literatur einlesen, wäre nur doof wenn ich mich in Mathematica oder Matlab einlese und dann feststellen müsste, dass es gar nicht geht. Von daher wäre ich euch sehr sehr dankbar, wenn mir einer dazu ein Tipp geben könnte und evtl. auch einen Hinweis, wie mein Vorhaben genau bezeichnet wird in der jeweiligen Programmsprache. Könnte mir vorstellen, dass es da nicht unter Approximation zu finden ist.
Vielen vielen herzlichen Dank! Viele Grüße, Oliver
|
|
|
|
Hallo,
> Ist es grundsätzlich möglich, in Mathematica oder Matlab eine Funktion zu approximieren?
Grundsätzlich ist in Matlab (eher mein Gebiet) und Mathematica (weniger mein Gebiet) sehr vieles möglich. Nur ist Funktionsapproximation ein sehr weites Gebiet und es wäre die Frage angebracht, in welche Richtung es gehen soll:
Ich vermute mal, neuronale Netze sind nicht gefragt.
Geht es darum, möglichst gute Parameter für bestimmte Funktionstypen zu finden, so dass ein Menge von Punkten (ein "Datensatz") möglichst gut von dem Funktionsgraphen approximiert wird? Wenn ja, dann heißt das Stichwort in Matlab "curve fitting". Hier gibt es Funktionen wie polyfit, die man auch zu einem Eponential-Fit ummodeln kann (steht in der Hilfe unter "curve fitting").
Schau es dir mal in Ruhe an. Wenn du konkrete Fragen hast, dann können wir auch darauf näher eingehen.
Gruß
Martin
|
|
|
|
|
Hallo Martin,
erstmal vielen herzlichen Dank für deine schnelle Antwort.
Also mein Problem ist, dass ich eine Funktion "finden" möchte, die mir genau meine Ergebnisse liefert. Also ich habe die Variablen X und Y und auch F(x,Y). Ich kenn also zu jeder X und Y Kombination die F(x,y)-Werte. Ich muss jetzt eine Funktion finden, in der ich nur X und Y einsetzen brauch und schon bekomme ich die mir schon bekannten F(x,y)-Werte. Ist sowas auch möglich? Bin gerade dabei in Mathematica das nachzulesen. Habe da bisher nicht das passende gefunden, es gibt da wohl "Fit" und "Interpolation", aber ich bekomme damit keine neue Funktion erstellt, sondern muss eher eine vorgeben und die wird dann noch mehr angepasst. Wäre sowas denn in Matlab möglich?
Viele Grüße,
Oliver
|
|
|
|
|
Hallo,
ein automatisches Finden einer Funktion ist nicht möglich. Da suchst du vergebens. Woher soll das Verfahren denn wissen, auf welche Funktionsklassen es beschränkt ist?
Es gibt allein schon für den Grad eines Polynoms unendlich viele Möglichkeiten. Außerdem kann die Funktion exponentiell, logarithmisch, irgendwie trigonometrisch oder richtig exotisch sein.
Du solltest schon mindestens eine Vorauswahl treffen. Da kann ein Blick auf den Graphen helfen, wenn man ein geübtes Auge hat.
Gruß
Martin
|
|
|
|
|
Hallo Martin,
ich versuche dir mal ein Screenshot anzuhängen. Ich denke es ist eine Log-Funktion. Oder was meinst du? Wie kann ich denn dann genau verfahren, wenn ich weiß, was für eine Funktion es ist?
Viele Grüße,
Oliver
Dateianhänge: Anhang Nr. 1 (Typ: JPG) [nicht öffentlich]
|
|
|
|
|
Hallo,
wie wäre es mit einer Wurzelfunktion?
Schau dir mal die Hilfe zu Fit und FindFit in Mathematica und zu fit in Matlab an.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 17:53 Mo 19.02.2007 | Autor: | nschlange |
Wobei es einen Unterschied zwischen Fit und Interpolation gibt.
Eine Interpolation liefert Dir eine Funktion, die genau durch Deine Stützpunkte geht.
Dazwischen neigen z.B. polynomische Funktionen höheren Grades zu starken Schwingungen.
Ein Fit (Regression) liefert Dir eine Funktion (oder deren Parameter), so dass sich eine möglichst
geringe Abweichung von Deinen Werter ergibt. Die Funktion muss (und wird) nicht durch Deine Punkte gehen.
Den Hinweis zu FindFit in Mathematica hast Du ja erhalten.
Viele Grüße
nschlange
|
|
|
|