![]() |
---|
Hallo, Wie erkenne ich an Werten, welchen Funktionstyp besser geeignet ist, mit dem man diesen Wertebereich hinkriegt. Ich habe folgende Werte: 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: |
![]() |
![]() |
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. |
![]() |
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? :-) |
![]() |
"Die Funktion muss da also immer steigend sein." wieso? wo steht das ? |
![]() |
@pleindespoir bei mir in der Aufgabe :-) @Roman-22 Wobei ideal wäre es wenn die Steigung zwischen und linear verlaufen würde :-) |
![]() |
Dann schreib doch mal die Aufgabe komplett hier rein - meine Kristallkugel ist leider vom Schreibtisch gerollt und zerbrochen ! |
![]() |
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 ins Negative fallen, sonst könnte sie kaum wieder bei einen Nulldurchgang haben. Wobei ideal wäre es wenn die Steigung zwischen und linear verlaufen würde :-) na prima, dann einfach stückweise aus drei linearen Funktionen zusammen setzen. Wo liegt jetzt das Problem? |
![]() |
@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 und die Geschwindigkeit der Kamera ist das Y. Durch experementieren fand ich am besten, wenn Kamera sich erst bewegt, wenn ist.Für soll die Geschwindigkeit am besten exponentiell wachsen (könnte auch linear), ab soll dann linear wachsen (könnte auch exponentiell). Was in Minus Bereich passiert, ist egal, da Distanz immer positiv ist, auch was nach passiert ist egal, weil ich nur 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 :-) |
![]() |
Hallo du musst doch auch den Funktionswert an jeder Stelle aufrufen? Was macht dann die stückweise definierte Funktion so viel langsamer? Gruß ledum |
![]() |
dass die Funktion durch die Punkte verlaufen sollte und steigend sein Und wie genau stellst du dir eine steigende Funktion von bis vor, wenn es sich hier nicht um ein Stück der konstanten Funktion 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: mit Die Kurve verläuft nicht exakt durch die vier Führungspunkte, sondern die Funktionswerte bei und sind ca. und . Im Bereich von 0 bis ca. sind die Funktionswerte negativ. Wenn das stört, kannsz du (um den Preis eines geringfügig schlechteren Fit) einfach setzen. Dann dir eben Etwa steiler verläuft in der Mitte die Kurve, wenn man das Modell des logistischen Wachstums zugrunde legt: mit auch hier sind die Funktionswerte an den vier Stützstellen ca. und ![]() |
![]() |
@ledum Nicht die Funktion Berechnung an sich selbst, sondern die Anweisungen welche Funktion notwendig ist. Wenn dann wenn dann fnkt wenn dann fnkt wenn dann fnkt 3 usw. Wenn ich nur eine Funktion habe, dann brauche ich keine Abfragen durchzuführen. @Roman-22 Danke, hat mir sehr geholfen! |