У меня есть следующие два дифференциальных уравнения
y'[t] == k1*y[t] - k3*y2[t]
y2'[t] == k2*y2[t] - k4*y[t]
Я могу решить уравнения, используя функцию Mathematicas DSolve:
DSolve[{y'[t] == k1*y[t] - k3*y2[t], y2'[t] == k2*y2[t] - k4*y[t],
y[0] == y10, y2[0] == y20}, {y[t], y2[t]}, t]
Mathematica дает мне аналитический результат этой системы дифференциальных уравнений в следующей форме:
y[t] = f{t}
а также
y2[t] f{t}
Но мне нужна функция для y[t], которая зависит не только от t, но и от y2[t].
y[t] = f{t, y2[t]}
Причина в том, что у меня есть экспериментальные данные (концентрации y и y2 по t), и я хочу подобрать кривую для y (а позже и y2). Я благодарен за любой вклад! :-)
Вы действительно хотите f(t, y2)
? Это звучит немного произвольно, поскольку y2
также зависит от t
. Я бы понял, если бы вам нужно было f(y2)
, но зависимость от обеих переменных не даст вам однозначного результата. Это все равно, что сказать, что вам нужен объем куба на основе длины его стороны a
и площади основания A(a) = a^2
. Это может дать вам множество решений, включая V(a, A) = a^3 = a^2 * sqrt(A) = a * A = A^(3/2)
.
Спасибо за ваш вклад. Дело в том, что я измерял y и y2 (которые представляют собой концентрации различных веществ во время химической реакции) в течение времени (8 образцов в течение 60 минут). Теперь я хочу подогнать кинетическую модель к курсам концентрации. Поэтому я подумал, что было бы неплохо иметь уравнение y2 = f(y2, t). Еще одна идея, которая пришла: нужно ли использовать обе функции с общими параметрами (k должны быть одинаковыми для обеих функций)?
Я бы просто оставил это как комментарий, но я не могу (слишком низкая репутация), но Попытка упростить ваш код:
DSolve[{D[y1[t, y2[t]], t] == 3*y1[t, y2[t]], D[y2[t], t] == 2*y1[t, y2[t]], y1[0, 0]
== 0,
y2[0] == 2}, {y1[t, y2[t]], y2[t]}, t]
Выдает ошибку
DSolve::ivar2: The independent variable t should not appear in two different arguments of the dependent variable y1[t,y2[t]].
Поэтому я не совсем уверен, сможете ли вы заставить Mathematica делать то, о чем вы просите, если я правильно понимаю, что вы хотели. Я предлагаю спросить в Stack Overflow на русском, так как они, скорее всего, гораздо более опытны в подобных вопросах.
Похоже, что опубликованный код является неполным или неправильным.
Solve
оценивается как{{}}
.