Matlab: differential equation: starting conditions are wrong?

1 vue (au cours des 30 derniers jours)
Niklas Kurz
Niklas Kurz le 9 Mai 2021
Commenté : Niklas Kurz le 12 Mai 2021
I solved manually: with
but if I solve it with Matlab:
syms v(t) g alpha m v0;
D = diff(v,t) == g - alpha/m*v;
c1 = v;
cond = c1(0) == v0;
S = dsolve(D,cond);
pretty(S)
I get a different solution, even if I'm sure mine is right.
I know this topic is a little vast, but maybe some of you talented people has time to investigate

Réponse acceptée

Cris LaPierre
Cris LaPierre le 9 Mai 2021
Modifié(e) : Cris LaPierre le 9 Mai 2021
I'm no expert, but isn't the integral equal to
That way, the algebra works out to match the result MATLAB is giving you
syms v(t) g alpha m v0;
D = diff(v,t) == g - alpha/m*v;
cond = v(0) == v0;
S = dsolve(D,cond)
S = 
which simplifies to

Plus de réponses (1)

Walter Roberson
Walter Roberson le 9 Mai 2021
syms v(t) g alpha m v0;
D = diff(v,t) == g - alpha/m*v;
c1 = v;
cond = c1(0) == v0;
S = dsolve(D,cond);
sum(cellfun(@(X) collect(X,[g,m,alpha]), children((collect(expand(S),g)))))
ans = 

Community Treasure Hunt

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

Start Hunting!

Translated by