substitute only first derivative in symbolic toolbox

1 view (last 30 days)
I am considering a second order differential equation (mass - spring system), and I want to substitute the first derivative with another symbolic function.
syms x(t) v(t) m k
expr = m * diff(x, t, 2) + k * x(t) == 0;
expr2 = subs(expr, diff(x, t, 1), v(t));
Anyway, result of expr2 still containts the second derivative of x(t) and not the first derivative of v(t). Is there a way I can solve it and make it explicit?
>> expr2
expr2(t) =
m*diff(x(t), t, t) + k*x(t) == 0
  1 Comment
VBBV
VBBV on 12 Oct 2020
Edited: VBBV on 12 Oct 2020
Try this
%f true
% code
%end
syms x(t) v(t) m k
expr = m * diff(x, t, 2) + k * x(t) == 0;
expr2 = subs(expr, diff(x, t, 2), diff(v,t,1)); % the old is diff(x,t,2)

Sign in to comment.

Accepted Answer

madhan ravi
madhan ravi on 12 Oct 2020
I remember doing vibration analysis, used to be pretty tricky:
expr2 = subs(expr, diff(x, 2), diff(v))
  1 Comment
Antonio d'Aniello
Antonio d'Aniello on 12 Oct 2020
well honestly I didn't think about that. Thank you so much!

Sign in to comment.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by