Максима ODE решатель не может решить логистическое уравнение? - PullRequest
0 голосов
/ 14 апреля 2019

Я учусь использовать wxMaxima для решения дифференциальных уравнений, но уже сталкиваюсь с проблемами с очень простыми ODE.Если, например, я хочу решить логистическое дифференциальное уравнение и использовать ode2:

diffeq: 'diff(S,t)=g*S*(1-S/K);
ode2(diffeq,S,t);

Maxima возвращает

(log(S-K)-log(S))/g=t+%c

И я не знаю, почему Maxima не решает для S(t) или как я могу получить простое решение в виде S (t) = xxx.Я пытался использовать logexpand () и т. Д., Но не могу избавиться от журнала ().Есть ли способ получить более простое решение или кто-то может порекомендовать другое бесплатное программное обеспечение для работы с дифференциальными уравнениями?

Спасибо!

1 Ответ

1 голос
/ 15 апреля 2019

Я могу убедить Maxima создать более удобную форму решения с небольшим подталкиванием. Я позволю вам решить, полезно ли это.

(%i1) eq: (log(S-K)-log(S))/g=t+%c;
                  log(S - K) - log(S)
(%o1)             ------------------- = t + %c
                           g
(%i2) logcontract (%);
                           S - K
                       log(-----)
                             S
(%o2)                  ---------- = t + %c
                           g
(%i3) map (exp, %);
                           S - K
                       log(-----)
                             S
                       ----------
                           g          t + %c
(%o3)                %e           = %e
(%i4) lhs(%)^g = rhs(%)^g;
                      S - K     g (t + %c)
(%o4)                 ----- = %e
                        S
(%i5) solve (%, S);
                                  K
(%o5)               [S = - ----------------]
                             g t + %c g
                           %e           - 1

Что касается другого программного обеспечения, вы можете попробовать Sympy (sympy.org). Я ничего не знаю о том, как он обрабатывает дифференциальные уравнения.

...