Find general non-constant solution for differential equation

조회 수: 5 (최근 30일)
Borjan Trajanoski
Borjan Trajanoski 2020년 5월 7일
댓글: Ameer Hamza 2020년 5월 8일
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!

채택된 답변

Ameer Hamza
Ameer Hamza 2020년 5월 7일
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);

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Mathematics에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by