¿Hay alguna herramienta que convierta una representación gráfica de una ecuación en esa ecuación? (Representación gráfica a la ecuación matemática aproximada)Math Graph para la ecuación
Respuesta
Este es un problema complicado, generalmente conocido como interpolation. Para gráficos polinomiales simples, es un problema fácil. (Siempre puede encontrar una "coincidencia exacta"). Eche un vistazo a polynomial interpolation. Pero también podría tener un gráfico que represente alguna función trigonométrica. ¿O qué tal las funciones exponenciales o las funciones logarítmicas? ¡O peor, combinaciones! Incluso para gráficos simples puede haber miles de ecuaciones potenciales interesantes.
Incluso si hace compruebe todas las ecuaciones interesantes, debe tener cuidado. Considere la ecuación y = A * sin(B*x)
, con valores extremadamente grandes para A
y B
. ¿Cómo se ve ese gráfico? Bueno, sube y baja entre A
y -A
una y otra vez, realmente muy rápido, y "hits" o "casi hits" casi todos los puntos. Es una fórmula "simple", que matemáticamente se ve como una buena aproximación, pero es probable que no sea algo que quieras al final.
@aioobe: cualquier función continua se puede aproximar muy de cerca por polinomios, ya sea trigonométricos o una combinación peor de ellos.Un polinomio de alto grado debería ser lo suficientemente bueno para la mayoría de las funciones, especialmente las que se pueden graficar. Entonces, aunque la ecuación real sea diferente, los polinomails darán una muy buena aproximación del gráfico. Ver: http://mathworld.wolfram.com/WeierstrassApproximationTheorem.html –
Bueno, ¿has oído hablar del [fenómeno de Runge] (http://en.wikipedia.org/wiki/Runge%27s_phenomenon)? Claro, un polinomio de alto grado lo "resolverá" pero probablemente aún no sea lo que estás buscando. – aioobe
@Moron: no es una función continua. Por ejemplo, 'y = sin (1/x)' es continuo sobre el intervalo abierto '0
He visto algunas herramientas que se ajustan a las ecuaciones de los gráficos pero no recuerdo sus nombres en este momento. Una búsqueda rápida en Google encontró esta aplicación comercial: http://imagedig-2d-3d-image-digitizer.smartcode.com/info.html
Un problema común que podría adaptarse a su descripción se llama curve fitting: tiene algunos datos (que, en su caso, ha leído de un gráfico) y tiene en tenga en cuenta una forma de ecuación, y quiera encontrar qué parámetros necesita para ajustar mejor la ecuación al gráfico.
Un enfoque útil para esto se ajusta al error least squares. Un paquete de mínimos cuadrados estará disponible en la mayoría de los kits de herramientas de análisis de datos.
Aquí hay un ejemplo: digamos que la ecuación es A * sin (2 * pi * 100.x) * x^B, y necesito encontrar los valores de A y B que me den el mejor ajuste (A = 10.0 y B = 3.0 en este ejemplo).
alt text http://i47.tinypic.com/k3x9fk.png
Aquí está el código utilizado para generar este ajuste. Utiliza Python y Scipy y se modifica a partir de un el ejemplo here.)
from numpy import *
from scipy.optimize import leastsq
import matplotlib.pyplot as plt
def my_func(x, p): # the function to fit (and also used here to generate the data)
return p[0]*sin(2*pi*100.*x)*x**p[1]
# First make some data to represent what would be read from the graph
p_true = 10., 3.0 # the parameters used to make the true data
x = arange(.5,.5+12e-2,2e-2/60)
y_true = my_func(x, p_true)
y_meas = y_true + .08*random.randn(len(x)) # add some noise to make the data as read from a graph
# Here's where you'd start for reading data from a graph
def residuals(p, y, x): # a function that returns my errors between fit and data
err = y - my_func(x, p)
return err
p0 = [8., 3.5] # some starting parameters to my function (my initial guess)
plsq = leastsq(residuals, p0, args=(y_meas, x)) # do the least squares fit
# plot the results
plt.plot(x, my_func(x, plsq[0]), x, y_meas, '.', x, y_true)
plt.title('Least-squares fit to curve')
plt.legend(['Fit', 'Graph', 'True'])
plt.show()
+1 por el esfuerzo de explicación. Solo quiero señalar que existen otros métodos, como la extimación de máxima verosimilitud, que son más precisos en algunos casos. Vea este artículo para una explicación introductoria agradable http://www.scribd.com/doc/7372377/Tutorial-on-Maximum-Likelihood-Estimation – nico
@nico - Tiene razón en que MLE es más preciso en algunos casos, pero no éste. Mínimos cuadrados es un trazador de líneas preciso, común, rápido y fácil, y es la elección correcta para una pregunta en la que necesito definir "ajuste de curvas". De todos modos, aunque usualmente estoy contigo pensando que las distribuciones normales son sobreutilizadas, aquí es una suposición razonable, y para este caso, los mínimos cuadrados y MLE son la misma cosa. – tom10
El uso de cualquier enfoque de adaptación requiere que tenga una suposición (o un conjunto de conjeturas) sobre qué forma funcional tendrá la solución. En consecuencia, este enfoque es útil en algunos casos y no en otros. – dmckee
- 1. necesita ayuda para entender la ecuación
- 2. C# dll para resolver la ecuación simple
- 3. Python resolver la ecuación para una variable
- 4. NSString a la ecuación
- 5. Cardio graph para android
- 6. Encuentra la ecuación "mejor ajustada"
- 7. Buscando un .NET Math Equation Editor y Solver Control
- 8. Math redondo para siempre número entero superior
- 9. CGFloat-based math functions?
- 10. Math behind Bump (ing)?
- 11. Parse Math Expression
- 12. Ejemplo para ast.NodeTransformer que muta una ecuación
- 13. C# Math Calculator
- 14. resolviendo una ecuación para el cuadrado de la variable?
- 15. (Z3Py) comprobando todas las soluciones para la ecuación
- 16. JavaScript math parser library
- 17. Ecuación cuadrática en Ada
- 18. transformada de Hough Ecuación
- 19. ecuación de trigonometría 3D
- 20. Resolviendo una ecuación lineal
- 21. Obtener puntos de ramificación de la ecuación
- 22. Resuelva la ecuación cuadrática en C++
- 23. Ejecución de la ecuación matemática en Android
- 24. Loess Fit y la ecuación resultante
- 25. Algoritmo de boost :: math :: erf
- 26. Cómo evitar la sobreimpresión (para puntos) usando base-graph?
- 27. flot graph, use legend para activar/desactivar la serie
- 28. utilidad C/C++ call-graph para la plataforma Windows
- 29. Java - ¿Cuál es la mejor estructura de implementación para Graph?
- 30. Boolean y Math Expression Parser
gráfica como en "estructura gráfico" o como "imagen de trama" en? –
equestion to equestion? ¿Qué es una pregunta? Pregunta electrónica? –
a) Gráfico como gráfico de eje x-y b) Tipo de pregunta: sin (x) * x^3 + 3 etc. – Mathie