Python - Derivadas numericas

 
Vista:
sin imagen de perfil

Derivadas numericas

Publicado por Julian Estiben (16 intervenciones) el 16/05/2016 00:18:42
Buenas, he leido un archivo .txt del cual saque unos arreglos de tiempo y otras 4 variables cada una de 1001 datos. Lo que necesito es derivar esas otras 4 variables respecto al tiempo, la idea que tuve fue esta:
import numpy as np
derivada = np.diff(V) / np.diff(T)

La variable V es el voltaje y T es el tiempo, ambas son arreglos. Esta bien?. Si no, me podrian decir algunas formas de como hacerlo, en verdad necesito es varias formas de hacerlo, gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jorge De Los Santos
Val: 77
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Derivadas numericas

Publicado por Jorge De Los Santos (54 intervenciones) el 16/05/2016 21:05:31
Estás en lo correcto,

Una derivada numérica viene dada por:

f ' (x0) = ( f(x0 + h) - f(x0) ) / h

Lo que hace la función diff de NumPy es calcular la parte del numerador, luego, es evidente que para calcular el tamaño del incremento
correspondiente a la variable independiente, debes entonces utilizar también diff para tal propósito, tal como lo indicas.

De hecho puedes hacer una pequeña prueba con funciones matemáticas conocidas, derivando numéricamente y de forma simbólica (o tradicional), para verificar, por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as plt
 
t = np.linspace(0, 4*np.pi, 100)
y = np.cos(t) # Función original
kdy = -np.sin(t) # Derivada simbólica
dy = np.diff(y)/np.diff(t) # Derivada numérica
 
plt.plot(t, y, label='FO')
plt.plot(t, kdy, 'o', label='DS')
plt.plot(t[1:], dy, label='DN')
 
plt.legend()
plt.show()



Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar