Central numerical differentiation - Error

2 visualizaciones (últimos 30 días)
Gennaro Arguzzi
Gennaro Arguzzi el 9 de Dic. de 2018
Comentada: Gennaro Arguzzi el 9 de Dic. de 2018
Hello everyone,
I'm trying to implement the numerical differentiation by using central method:
% x[k+1] - x[k-1]
% x_dot [k] = ---------------- = (x[k+1] - x[k-1])*sr/2
% 2*Ts
I wrote the code:
sr = 0.1;
a = 0:0.001:10;
t = a;
b = ( a(2:end) - a(1:end) ) * sr/2;
plot(t,a)
hold on
plot(t,b)
but it does not work; in particular, the statement "b = ( a(2:end) - a(1:end) ) * sr/2;" is wrong.
Is it possible to reach my goal by fixing the above statement? I prefer to avoid to insert additional code lines.
Thank you so much in advance.

Respuestas (1)

Image Analyst
Image Analyst el 9 de Dic. de 2018
Instead of that, use the diff() function
b = diff(a) * sr/2;
  3 comentarios
Image Analyst
Image Analyst el 9 de Dic. de 2018
Try a simple for loop
for k = 2 : length(a)-1
theDiff = a(k+1) - a(k-1);
etc.
Gennaro Arguzzi
Gennaro Arguzzi el 9 de Dic. de 2018
Thank you @ImageAnalyst.

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by