Ich habe ein kleines mathematisches Problem. Ich möchte eine Funktion mit diesen Eigenschaften haben:Welche einfache mathematische Funktion f (x) hat diese Eigenschaften?
- für x viel größer als 0: lim f (x) = x
- für x viel kleiner als 0: lim f (x) = 0
- und f (0) = 1 (sorry, ich hatte hier f (1) = 1, die falsch war!)
- f (x) monotonically increasing
sein sollte, so sollte die Funktion etwas aussehen dies:
^
| /
|/
|/
___.-+´
--´-----+------>
|
Das beste, was ich bisher bekommen habe, ist x/(1 + e^(-x))
, aber dann erkannte ich, dass es unter 0 fällt und nicht monoton ansteigt.
Eine große Hilfe zum Spielen mit diesen Funktionen ist GraphFunc Online.
Es wäre auch hilfreich, wenn die Funktion schnell berechnet wird, da ich sie sehr oft ausführen muss.
EDIT: Ich verwende dies in einem Programm, um Werte zu begrenzen. Ich habe einen Optimierungsalgorithmus, der Kurvenanpassung mit einem Levenberg-Marquardt Algorithmus verwendet. Aber dieser Algorithmus erlaubt keine Beschränkungen und optimiert über den gesamten Bereich der realen Werte. Also brauche ich eine Funktion wie diese, so dass ich eine künstliche Einschränkung hinzufügen kann, so dass die Funktion größer als 0 ist. Ein einfacher Ansatz wäre die Verwendung von f(x) = x²
, aber dann ist die Funktion nicht monoton steigend und hat zwei Minimas.
Die Levenberg-Marquardt nähert Derivate, so denke ich, es wäre am besten, wenn die Funktion auch glatt ist. Aber ich bin mir nicht sicher, ob das unbedingt notwendig ist.
Ich sehe nicht, wie das Programmieren ist. –
An dieser Stelle würde ich erwarten, mehr als ein Sprach-Tag zu sehen. Erkläre, warum du das programmatisch oder so machst. – EBGreen
Ich könnte leicht sehen, wie das Programmieren ist, aber vielleicht könnte das OP einen Kontext hinzufügen, um andere zu befriedigen. –