Second time derivative of function?

4 vues (au cours des 30 derniers jours)
Christian Aranas
Christian Aranas le 25 Juil 2018
Commenté : Beau Olafson le 30 Mai 2019
I have defined a model of displacement 'x' and represented its first derivative with 'v' using the code below. However, when I want to differentiate 'v' using the same function it does not work. Is there a different approach to differentiating derivatives in MATLAB? here is the code:
h = 60 ;
b =130 ;
r = 28 ;
w = 2*pi; % angular velocity
t =0:(1/36):1 ;
x = b*(r*sin(w*t))./(h-r*cos(w*t));
v = diff(x)./diff(t) ; % derivative of x w.r.t t
a = diff(v)./diff(t) ; % derivative of v w.r.t t

Réponse acceptée

Aquatris
Aquatris le 25 Juil 2018
It does not work, because the length of diff(x) and diff(t) are not the same. diff function takes the difference between each element. However returns 1 element less than the original vector since there is no way to find the difference for the last element.
Since you have fixed step size you can use
v = diff(x)./(1/36);
td = t(1:end-1); % time vector for plotting first derivative
a = diff(v)./(1/36) ;tdd = t(1:end-2)
tdd = t(1:end-2); % time vector for plotting second derivative
Alternatively you might try symbolic toolbox to derive the derivative of the expression symbolicly and then plug in numbers.
  1 commentaire
Christian Aranas
Christian Aranas le 25 Juil 2018
Thank you so much for the context

Connectez-vous pour commenter.

Plus de réponses (1)

KSSV
KSSV le 25 Juil 2018
diff reduces the dimension of vector by one. You may use gradient
h = 60 ;
b =130 ;
r = 28 ;
w = 2*pi; % angular velocity
t =0:(1/36):1 ;
x = b*(r*sin(w*t))./(h-r*cos(w*t));
v = gradient(x)./gradient(t) ; % derivative of x w.r.t t
a = gradient(v)./gradient(t) ; % derivative of v w.r.t t
Or, reduce the time step by one and use _diff_
h = 60 ;
b =130 ;
r = 28 ;
w = 2*pi; % angular velocity
t =0:(1/36):1 ;
x = b*(r*sin(w*t))./(h-r*cos(w*t));
v = diff(x)./diff(t) ; % derivative of x w.r.t t
a = diff(v)./diff(t(1:end-1)) ; % derivative of v w.r.t t
  1 commentaire
Beau Olafson
Beau Olafson le 30 Mai 2019
That gradient code 'literally' saved my life. I was so dang lost until then!

Connectez-vous pour commenter.

Catégories

En savoir plus sur Physics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by