Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Richtigen Funktionstyp wählen für Werte Bereich.

Richtigen Funktionstyp wählen für Werte Bereich.

Universität / Fachhochschule

Tags: Funktion, Funktionanalyse, Funktionswert

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
DerNoob

DerNoob aktiv_icon

23:29 Uhr, 15.03.2018

Antworten
Hallo,
Wie erkenne ich an Werten, welchen Funktionstyp besser geeignet ist, mit dem man diesen Wertebereich hinkriegt.
Ich habe folgende Werte:
f(0)=0
f(2)=0
f(5)=4
f(10)=5

Die funktion ist steigend, aber nicht linear. Also exponentialfunktion? Oder eine andere?
Danke für die Hilfe voraus!

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich benötige bitte nur das Ergebnis und keinen längeren Lösungsweg."
Hierzu passend bei OnlineMathe:
Funktion (Mathematischer Grundbegriff)

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
Roman-22

Roman-22

00:12 Uhr, 16.03.2018

Antworten
Zunächst musst du mal erklären, ob du eine Interpolation oder eine Regression suchst. Dann sind schlappe 4 Punkte ja recht wenig, um einen Funktionstyp einzugrenzen.
Da kann man eine Kubik durchlegen oder auch eine Sigmoide, logistisches Wachstum könnte ebenso passend sein wie MMF, Hoerl oder DR-Hill, ja auch eine Summe von ein paar Schwingungen könnte sich ganz gut machen.

Es könnte hilfreich sein, wenn du wüsstest, zu welchem Vorgang diese Daten gehören, denn damit ist idR auch bereits ein Funktionstyp verknüpft. Denn die Frage, welche Funktion hier "richtig" ist, lässt sich nur durch Kenntnis der vier Punkte allein nicht beantworten.

Im Anhang siehst du drei Möglichkeiten einer Interpolation, also von Kurven, die exakt durch die vier vorgegebenen Punkte laufen.
In blau eine Summe von ein paar Schwingungen
in rot eine Kubik
und in grüne eine Sigmoide vom Typ Morgan-Mercer-Flodin (MMF).
Letztere ist eigentlich eine Regression, denn sie verläuft nicht ganz exakt durch die vier Punkte.


2018-03-16_00-11-48
DerNoob

DerNoob aktiv_icon

01:20 Uhr, 16.03.2018

Antworten
Danke für die Hilfe,
Es ist eine Interpolation, allerdings in dem Intervall vom ersten Punkt bis zum letzten Punkt. Die Funktion muss da also immer steigend sein. Wie die Funktion sich danach verhält, oder im Minus Bereich ist irrelevant. Die grüne Linie aus deinem Anhang entspricht allen Kriterien. Mit welche Gleichung erreicht man das? :-)
Antwort
pleindespoir

pleindespoir aktiv_icon

01:26 Uhr, 16.03.2018

Antworten
"Die Funktion muss da also immer steigend sein."

wieso? wo steht das ?
DerNoob

DerNoob aktiv_icon

01:34 Uhr, 16.03.2018

Antworten
@pleindespoir
bei mir in der Aufgabe :-)

@Roman-22
Wobei ideal wäre es wenn die Steigung zwischen x=5 und x=10 linear verlaufen würde :-)
Antwort
pleindespoir

pleindespoir aktiv_icon

01:51 Uhr, 16.03.2018

Antworten
Dann schreib doch mal die Aufgabe komplett hier rein - meine Kristallkugel ist leider vom Schreibtisch gerollt und zerbrochen !
Antwort
Roman-22

Roman-22

12:26 Uhr, 16.03.2018

Antworten
Die grüne Linie ist eine sigmoidale Regression vom genannten Typ und verläuft nicht exakt durch die Punkte. Außerdem muss sie zwangsläufig nach x=0 ins Negative fallen, sonst könnte sie kaum wieder bei x=2 einen Nulldurchgang haben.

> Wobei ideal wäre es wenn die Steigung zwischen x=5 und x=10 linear verlaufen würde :-)
na prima, dann einfach stückweise aus drei linearen Funktionen zusammen setzen.
Wo liegt jetzt das Problem?
Bild1
DerNoob

DerNoob aktiv_icon

19:04 Uhr, 16.03.2018

Antworten
@pleindespoir
Ich hatte gleich am Anfang geschrieben, dass die Funktion durch die Punkte verlaufen sollte und steigend sein, alles andere irrelevant. Die Aufgabe habe ich mir selbst ausgedacht und wollte möglichst knapp das Problem zu beschreiben. Ich denke keiner will hier Romane lesen. Aber wenn du möchstest: ich spiele ein wenig mit OpenGL rum habe ein Objekt und eine Kamera und möchte, dass die Kamera den Objekt bei seiner Bewegung weich verfolgt. Ich messe also die Entfernung des Objekts vom Zentrum der Kamera Sicht und lasse die Kamera dann je nach Dinstanz schneller oder langsamer das Objekt verfolgen. Je größer die Distanz vom Zentrum, desto schneller holt die Kamera das Objekt auf. Die Distanz vom Zentrum des Objekts ist das X und die Geschwindigkeit der Kamera ist das Y. Durch experementieren fand ich am besten, wenn Kamera sich erst bewegt, wenn x>2 ist.Für 2x5 soll die Geschwindigkeit am besten exponentiell wachsen (könnte auch linear), ab x>5 soll dann linear wachsen (könnte auch exponentiell). Was in Minus Bereich passiert, ist egal, da Distanz immer positiv ist, auch was nach x>10 passiert ist egal, weil ich nur 0<x10 Prüfe.

@Roman-22
Für mich als sehr schlechten Mathematiker wäre es am einfachsten wie du bereits vorgeschlagen hast, mit 4 Bediengten Anweisungen und 3 linearen Funktionen zu lösen und das hatte ich auch erst vor, allerdings stört es mich gewaltig, dass diese Lösung mehr Leistung kostet, vor allem weil die Funktion sich jedes Frame aufruft, als wenn ich stattdessen eine Funktion finden könnte, die all diese Kriterien erreicht, wie deine grüne Kurve in Anhang, wo wenigstens die Abweichung recht gering ist. Damit könnte ich schon gut leben :-)
Antwort
ledum

ledum aktiv_icon

11:45 Uhr, 17.03.2018

Antworten
Hallo
du musst doch auch den Funktionswert an jeder Stelle aufrufen? Was macht dann die stückweise definierte Funktion so viel langsamer?
Gruß ledum
Antwort
Roman-22

Roman-22

15:38 Uhr, 17.03.2018

Antworten
> dass die Funktion durch die Punkte verlaufen sollte und steigend sein
Und wie genau stellst du dir eine steigende Funktion von (0/0) bis (2/0) vor, wenn es sich hier nicht um ein Stück der konstanten Funktion y=0 handeln soll?

Generell ist die Auswertung für irgend eine nichtlineare Interpolations- oder Regressionsfunktion sicher aufwändiger als die einfache und elementar zu implementierende lineare Interpolation.

Aber wenn du unbeding möchtest, hier sind die Daten für die MMF-Sigmoide:
f(x):=ab+cxdb+xd
mit
a=-2,42305024560542510-3
b=5,586427342607916105
c=5,002312586565906
d=9,082944533852425

Die Kurve verläuft nicht exakt durch die vier Führungspunkte, sondern die Funktionswerte bei 0;2;5 und 10 sind ca. -0,0024; 0,0024; 4,0005 und 5,000004.
Im Bereich von 0 bis ca. 1,85 sind die Funktionswerte negativ. Wenn das stört, kannsz du (um den Preis eines geringfügig schlechteren Fit) einfach a=0 setzen. Dann dir eben f(2)0,005

Etwa steiler verläuft in der Mitte die Kurve, wenn man das Modell des logistischen Wachstums zugrunde legt:
f(x):=a1+be-cx

mit
a=5,000001741050971
b=7,667456925687515105
c=2,987307336443257
auch hier sind die Funktionswerte an den vier Stützstellen ca. -0,0024; 0,0024; 4,0005 und 5,000004

Bild
Frage beantwortet
DerNoob

DerNoob aktiv_icon

22:36 Uhr, 17.03.2018

Antworten
@ledum
Nicht die Funktion Berechnung an sich selbst, sondern die Anweisungen welche Funktion notwendig ist. Wenn x>2 dann 0, wenn x<5 dann fnkt 1, wenn x<10 dann fnkt 2, wenn x>10 dann fnkt 3 usw. Wenn ich nur eine Funktion habe, dann brauche ich keine Abfragen durchzuführen.

@Roman-22
Danke, hat mir sehr geholfen!