2 votos

Ajuste de una curva a un conjunto de datos decreciente e indefinido en cero

Tengo varios puntos en un gráfico. La gráfica es de una curva continua que pasa por los puntos $(0, \infty)$ , $(11, 5000)$ y $(3, 200000)$ . ¿Puedo encontrar la ecuación de esa línea?

Intentemos esto:

Estoy buscando una función que dada una entrada $x$ se acerca al infinito a medida que $x \to 0$ y cuanto más cerca de $0$ el más cercano $x$ llega al infinito.

La cuestión con y = log(x) es que la escala es demasiado pequeña (#1) y la curva demasiado pronunciada (#2).

En cuanto a las restricciones, yo diría x >= 0 && y >= 0 en todo momento.

El propósito de esto (para aquellos que debe o simplemente por curiosidad) es la siguiente:

Tengo un programa que recorre un array de valores un número determinado de veces. El número de veces debe depender del número de valores de la matriz.

Por ejemplo, un array con 5.000 valores debe ser procesado 11 veces. Un array con 250k valores debe ser procesado 3 veces.

int y = // Function goes here, given x;
for(int i = 0; i < y; i++)
{
    // Process
}

He estado jugando con una utilidad gráfica

$$\frac{0.3}{\frac{log(x)}{24}} = y$$

Me da aproximadamente lo que busco, aunque no da unos valores adecuados como $x \to 0$ (o > 4 en realidad). Sin embargo, tiene que haber una forma "adecuada" de hacer esto . En lugar de perforar los números hasta que "parezca" que está bien.

Parece que la forma "correcta" da lo siguiente:

$$y=\frac{C}{x^n}$$

Resolver para $C$ y $n$ da $C ~= 19.3896$ y $n ~= 0.3522$ utilizando $(5, 11), (200, 3)$ como puntos para simplificar.

2voto

Jonik Puntos 7937

Si y = 4525365/x^2,83916, es decir,

$$y = \frac{4525365}{x^2.83916}$$

entonces cuando x = 3, y = 200000,02 y cuando x = 11, y = 5000,04 y cuando x = ∞, y = 0, y cuando x = 0, y = ∞. También satisface y ≥ 0 siempre que x > 0 y x ≥ 0 siempre que y > 0.

Esto se basa en la idea de que cuanto más larga sea la matriz, menos veces podrá permitirse escanearla. La cantidad de trabajo podría ser igual a x*y, por lo que quieres mantener la cantidad de trabajo constante, x*y = C, o y = C/x. Eso no se ajusta del todo a tus puntos, así que decidí usar x^n*y = C en su lugar. Resolví para n usando:

3^n*200000 = 11^n*5000, por lo que 200000/5000 = 11^n/3^n, por lo que 40 = (11/3)^n, por lo que n = log(40)/log(11/3) ≈ 2,83916.

Entonces C = 3^2.83916*200000 ≈ 4525365.

1voto

cjstehno Puntos 131

Como todo el mundo te ha dicho, hay infinitas soluciones para tu problema. Un tipo particularmente simple de ellos son las funciones como:

$$ y = \frac{a}{x} + bx \ . $$

Puede obtener qué constantes $a, b$ encaja con su par de datos $(11, 5.000)$ y $(3, 200.000)$ imponiéndolos:

\begin {align*} 5.000 &= \frac {1}{11}a + 11b
\\ 200.000 &= \frac {1}{3}a + 3b \end {align*}

Se obtiene un sistema lineal de ecuaciones en el que $a,b$ son las incógnitas. Como $\frac{3}{11} - \frac{11}{3} \neq 0$ , tiene una solución única.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X