Использование Mathematica для решения этого дифференциального уравнения - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу описать кинетику химической реакции, и мое представление о модели реакции приводит (упрощенно) к дифференциальному уравнению следующего вида:

y1'(t)=y1(t)+y2(t)

, где y1 - результат эксперимента, измеренногоконцентрация реагента и y2 измеренная концентрация продукта во времени.Дифференциальное уравнение имеет следующие граничные условия:

y1(0) = A
y2(0) = 0

Теперь я не мог самостоятельно решить это уравнение, поэтому я пытался использовать Mathematica, но всегда получаю ошибку при применении второго граничного условия:

In:  DSolve[{y'[t] == k*y[t] + k2*y2[t], y[0] == A, y2[0] == 0}, y[t], t]
Out: DSolve::deqx: Supplied equations are not differential equations of the given functions.

Означает ли это, что это дифференциальное уравнение не имеет аналитического решения?У кого-нибудь есть идея?

Заранее спасибо!

С наилучшими пожеланиями Мануэль

1 Ответ

0 голосов
/ 28 февраля 2019

У вас есть только одно уравнение для решения уравнения одновременности.

Например, это работает: -

vars = {x[t], y[t]};
eqns = {x'[t] == y[t], y'[t] == x[t]};
inits = {x[0] == 1, y[0] == 0};
DSolve[eqns, vars, t] // Simplify
sol = vars /. DSolve[Join[eqns, inits], vars, t][[1]]
Plot[sol, {t, 0, 2}]

Но ваше уравнение одновременности недоопределено.

vars = {y[t], y2[t]};
eqns = {y'[t] == k*y[t] + k2*y2[t]};
inits = {y[0] == A, y2[0] == 0};
DSolve[eqns, vars, t] // Simplify

DSolve: Есть больше зависимых переменных, чем уравнений, поэтому система недостаточно определена.

...