Tengo un pequeño problema matemático. Me gustaría tener una función con estas propiedades:¿Qué función matemática simple f (x) tiene estas propiedades?
- para x mucho más grandes que 0: lim f (x) = x
- para x mucho más pequeñas que 0: lim f (x) = 0
- y f (0) = 1 (lo siento, tuve aquí f (1) = 1, que estaba mal!)
- f (x) debe ser monotonically increasing
Así que la función debe parecerse esto:
^
| /
|/
|/
___.-+´
--´-----+------>
|
Lo mejor que tengo hasta ahora es x/(1 + e^(-x))
pero luego reconozco que cae por debajo de 0 y no aumenta monótonamente.
Una gran ayuda para jugar con esta función es GraphFunc Online.
Además, sería útil si la función es rápida de calcular ya que necesito ejecutarla muy a menudo.
EDIT: Estoy usando esto en un programa para limitar los valores. Tengo un algoritmo de optimización que usa ajuste de curvas con un algoritmo Levenberg-Marquardt. Pero este algoritmo no permite restricciones y optimiza en toda la gama de valores reales. Así que necesito una función como esta para poder agregar una restricción artificial para que la función sea mayor que 0. Un enfoque simple sería usar f(x) = x²
pero luego la función no es monótonamente creciente y tiene dos minimas.
El Levenberg-Marquardt se aproxima a las derivadas, por lo que creo que sería mejor si la función es suave también. Pero no estoy seguro si esto es absolutamente necesario.
No veo cómo esto está relacionado con la programación. –
En este punto, esperaría ver algo más que una etiqueta de idioma. Explica por qué estás haciendo esto programáticamente o algo así. – EBGreen
Pude ver fácilmente cómo esto está relacionado con la programación, pero quizás el OP podría agregar un contexto para satisfacer a los demás. –