Como dices que tienes una matriz bidimensional de puntos, supongo que tienes una función de dos variables f(x, y)
. Eso significa que no tienes un solo derivado. En cambio, obtienes un conjunto de derivadas parciales.
Puede aproximar las derivadas parciales utilizando fórmulas de diferencias finitas.
La derivada parcial con respecto a x
en f(x, y)
sería (f(x+h, y) - f(x-h, y))/2h
.
La derivada parcial con respecto a y
en f(x, y)
sería (f(x, y+h) - f(x, y-h))/2h
.
En estas fórmulas, h
es el espacio entre los nodos en su cuadrícula, suponiendo que tiene una cuadrícula regularmente espaciada. Si los espaciamientos horizontales y verticales son diferentes, utilice el espaciado horizontal para el parcial con respecto a x
y el espaciado vertical para el parcial con respecto a y
.
Actualización: He entendido mal su pregunta. Pensé que la matriz 2-D era una matriz de valores de dominio. Si tiene una lista de valores x
y f(x)
, puede aproximar f'(x)
como (f(x+h) - f(x-h))/2h
. Esto funcionará en todas partes, excepto en el primer y último punto donde uno de los términos estará fuera de rango. Puede usar (f(x + h) - f(x))/h
en el extremo izquierdo y (f(x) - f(x-h))/h
en el extremo derecho. La aproximación será menos precisa en los puntos finales, pero eso no se puede evitar.
Un punto no tiene una derivada. ¿Intentaría tu biblioteca ideal ajustar una curva a los datos y calcular la derivada de eso? –
¡Sí! Mi biblioteca ideal haría exactamente eso. –
¡Es una idea fascinante y/o increíble! :) Soy un cálculo n00b total, así que, por favor, perdone mi ignorancia, pero: ¿cómo encontraría una curva que se ajuste a los datos (programáticamente)? – tommytwoeyes