#ode #maxima #wxmaxima
#ode #максимумы #wxmaxima
Вопрос:
Я изучаю, как использовать 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() и т. Д., Но не могу избавиться от log(). Есть ли способ получить более простое решение или кто-нибудь может порекомендовать другое бесплатное программное обеспечение для работы с дифференциальными уравнениями?
Спасибо!
Ответ №1:
Я могу убедить 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 ). Я ничего не знаю о том, как он обрабатывает дифференциальные уравнения.