Comment peut-on calculer le taux de variation (dérivée) de données en continu?

StackOverflow https://stackoverflow.com/questions/4819503

  •  26-10-2019
  •  | 
  •  

Question

J'ai un flux de données que les tendances au fil du temps. Comment puis-je déterminer le taux de changement en utilisant C #?

Il a été longtemps que la classe de calcul, mais est maintenant la première fois que je réellement besoin (en 15 ans). Maintenant, quand je recherche sur le terme « dérivés » Je reçois des choses financières, et d'autres choses de mathématiques, je ne pense pas que j'ai vraiment besoin.

Esprit me pointant dans la bonne direction?

Était-ce utile?

La solution

Si vous voulez quelque chose de plus sophistiqué qui Fluidifie les données, vous devriez regarder dans un algorithme de filtrage numérique. Il n'est pas difficile à mettre en œuvre si vous pouvez couper à travers le jargon de l'ingénierie. La méthode classique est Savitzky-Golay

Si vous avez les derniers échantillons de n stockés dans un y de tableau et chaque échantillon est également espacées dans le temps, alors vous pouvez calculer la dérivée en utilisant quelque chose comme ceci:

deriv = 0
coefficient = (1,-8,0,8,-1)
N = 5 # points
h = 1 # second
for i range(0,N):
   deriv += y[i] * coefficient[i]
deriv /= (12 * h)

Cet exemple se trouve être un N = 5 filtre de « 3/4 (cubique / quartique) » filtre. Le plus grand N, le plus de points, il est moyenne et le plus lisse, il sera, mais aussi le temps d'attente sera plus élevé. Vous devrez attendre N / 2 points pour obtenir le dérivé au moment « maintenant ».

Pour plus de coefficients, regardez ici à l'Annexe

https://en.wikipedia.org/wiki/Savitzky%E2% 80% 93Golay_filter

Autres conseils

Vous avez besoin à la fois la valeur des données V et la T de temps correspondant, au moins pour le dernier point de données et celle d'avant. Le taux de changement peut alors être approchée par Eulers formule arrière , ce qui se traduit

dvdt = (V_now - V_a_moment_ago) / (T_now - T_a_moment_ago);

en C #.

Taux de variation est calculé comme suit

  1. Calculer un delta comme "prix moins - il y a 20 jours Prix"
  2. Taux Calculer des changements tels que "delta / prix il y a 99 jours"

Taux total de changement, à savoir? (New_value - original_value) / heure

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top