Find general non-constant solution for differential equation

4 vues (au cours des 30 derniers jours)
Borjan Trajanoski
Borjan Trajanoski le 7 Mai 2020
Commenté : Ameer Hamza le 8 Mai 2020
eqn=diff(y(t),t) == k*y*(1-y/M);
S=dsolve(eqn);
Sz = S(3) %general non-constant solution
>> Sz = M/(exp(-M*(C1 + (k*t)/M)) + 1)
If I put my code in matlab, for Sz I get an 3x1 array with
S(1) = 0
S(2) = M
S(3) = M/(exp(-M*(C1 + (k*t)/M)) + 1)
Now I know the solution to this problem is in S(3) as seen in the code, but is there a way how Matlab can find the solution without me looking into the array of Sz?
Thanks!

Réponse acceptée

Ameer Hamza
Ameer Hamza le 7 Mai 2020
All three solution given by dsolve() satisfies the differential equation. So, I guess you want to get the solution which depends on time. You can do it like this
syms y(t) M k
eqn=diff(y(t),t) == k*y*(1-y/M);
S=dsolve(eqn);
idx = arrayfun(@(x) ismember(t, symvar(x)), S);
S = S(idx);
  2 commentaires
Borjan Trajanoski
Borjan Trajanoski le 8 Mai 2020
Thank you, that helped me very much!
Ameer Hamza
Ameer Hamza le 8 Mai 2020
I am glad to be of help.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Mathematics 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