Funktion erstellen

Moin,

ich möchte den Verlauf in einem Diagramm als Funktion beschreiben, ich habe mir 10 prägnante Punkte aus dem Diagramm gesucht und dazwischen soll es annähernd linear verlaufen.
Nur wie kann ich mir nun daraus mir ne Funktion f(x) bestimmen?

Beispielsweise möchte ich hier raus eine Funktion erstellen:
x Werte
y Wert

0
0,81

100
0,82

200
0,83

300
0,843

400
0,86

500
0,88

600
0,903

700
0,93

800
0,96

900
1

Tach,

und dazwischen soll es annähernd linear verlaufen.

Die Punkte liegen eindeutig nicht auf einer Geraden. Die Steigung nimmt für größere x-Werte zu. Eine Gerade ist zwar erstmal das einfachste Modell, aber hier auch ein ganz sicher schlechtes Modell. Bei einer zugrundeliegenden Funktion könnte es sich damit im einfachsten Fall um eine nach oben offene Parabel oder eine Exponentialfunktion handeln. Natürlich kommen auch alle anderen Funktionen in betracht, deren Datenwerte in einem gegebenen x-Bereich immer steiler ansteigen, aber man sollte vermeiden, unbegründet komplizierte Funktionen anzunehmen.

Nur wie kann ich mir nun daraus mir ne Funktion f(x)
bestimmen?

Ganz allgemein:

  1. Man formuliert eine allgemeine Funktion mit variablen Parametern. Beispiel: Suche ich eine Gerade, so habe ich die variablem Parameter Steigung und Achsenabschnitt. Bezeichne ich die Parameter mit dem Buchstaben b und nummeriere sie durch, bekomme ich zB. die Formel f(x) = b1*x + b0. Diese Formel beschreibt die allgemeine Gerade mit der Steigung b1 und dem Achsenabschnitt 0. Eine Parabel hätte dann die Form f(x) = b2*x² + b1*x + b0, eine Exponentialfunktion könnte so aussehen: f(x) = x^(b1) + b0.

  2. Man bestimmt die Werte der Parameter bi so, dass die Abstände zwischen den Datenwerten und den Modellwerten minimal werden. Weil sich schönere mathematische Eigenschaften ergeben, verwendet man hier nicht einfach die Abstände, sondern in der Regel die quadrierten Abstände. Für jeden x-Datenwert wird also die Differenz von dem zugehörigen y-Datenwert und dem für diesen x-Wert berechneten Modellwert f(x) berechnet. Diese Differenz wird dann quadriert und schließlich werden diese ganzen Quadrate für alle Punkte summiert. So erhält man die sog. Quadratesumme oder Summe der Abweichungsquadrate, mitunter auch als Fehlerquadratsumme bezeichnet. Man „sucht“ dann diejenigen Werte für die Parameter, für die diese Summe minimal wird. Im Falle von Polynomen (was auch die Gerade einschließt) geht das wirklich einfach, weil es dazu eine analytische Lösung gibt: Man kann die Ableitung der Fehlerquadratsumme bestimmen, setzt diese Null und kann daraus die Parameterwerte direkt bestimmen.

Speziell:

Es gibt sehr viele Computerprogramme, die eine Kurvenanpassung machen. Weit verbreitet sind sicher MS Excel oder OO Calc. Der für viele einfachste Weg ist hier, die Daten in einem XY-Punktdiagramm darzustellen und der Datenreihe eine Trendlinie hinzuzufügen. Man kann dort auch angeben, dass man die Formel im Diagramm angezeigt haben möchte.

Es gibt auch online-Tools, die einem solche Kurvenanpassungen rechnen (zB. http://www.akiti.ca/LinLeastSqPoly4.html).

LG
Jochen

Herzlichen Dank Jochen,
ne einfache Funktion zu erstellen war kein Problem, nur halt aus so vielen Punkten.
Schönes Wochenende ich muss nun erstmal ne Funktion für mein Programm basteln :smile:

Speziell:

Es gibt sehr viele Computerprogramme, die eine Kurvenanpassung
machen. Weit verbreitet sind sicher MS Excel oder OO Calc. Der
für viele einfachste Weg ist hier, die Daten in einem
XY-Punktdiagramm darzustellen und der Datenreihe eine
Trendlinie hinzuzufügen. Man kann dort auch angeben, dass man
die Formel im Diagramm angezeigt haben möchte.

Es gibt auch online-Tools, die einem solche Kurvenanpassungen
rechnen (zB. http://www.akiti.ca/LinLeastSqPoly4.html).

LG
Jochen

Moin,

ich möchte den Verlauf in einem Diagramm als Funktion
beschreiben, ich habe mir 10 prägnante Punkte aus dem Diagramm
gesucht und dazwischen soll es annähernd linear verlaufen.
Nur wie kann ich mir nun daraus mir ne Funktion f(x)
bestimmen?

Was hälst Du von einer Regressionsrechnung. Ist schnell gemacht mit einer Tabellenkalkulation wie Openoffice Calc oder MS Excel:

Ich erhalte z.B. für eine Parabel:

y = 0,0000001750x^2 + 0,0000479545x + 0,8121454545
R2 = 0,9992636215

bzw.

y = 0,000000000082x^3 + 0,000000064860x^2 + 0,000085565268x + 0,810089510489
R2 = 0,999827381928

Gruß HW
Hans W. Hofmann

Wie kommt ihr denn auf die so genauen Werte, wenn ich mir die Trendfunktion anzeigen lasse, dann wirft er sie mir sehr ungenau z.b. 2E-18 x^4 usw und dann nutzt mir die Funktion auch nichts.

y = 0,0000001750x^2 + 0,0000479545x + 0,8121454545
R2 = 0,9992636215

bzw.

y = 0,000000000082x^3 + 0,000000064860x^2 + 0,000085565268x +
0,810089510489
R2 = 0,999827381928

Gruß HW
Hans W. Hofmann

Wie kommt ihr denn auf die so genauen Werte, wenn ich mir die
Trendfunktion anzeigen lasse, dann wirft er sie mir sehr
ungenau z.b. 2E-18 x^4 usw und dann nutzt mir die Funktion
auch nichts.

Ich komme darauf, indem ich die Anzahl der Nachkommestelle erhöhe - Genauso, wie man es gemeinhin mit jedem anderen Wert in Excel auch macht!

Gruß HW
Hans W. Hofmann

So hab nun alles, hatte zu hohe Polynome genommen, sodass der Fehler gewachsen ist. Hab das nun mit Excel gemacht, hab ne ganz gute Beschreibung unter:
http://www.mp.haw-hamburg.de/pers/Abulawi/Polynomreg…
gefunden in der ich meine Koeffizienten fast exakt bekomme.

Vielen Dank nochmal an meine 2 Beantworter.
Schönes Wochenende