我想用以下形式的微分方程来描述化学反应的动力学和反应模型的想法(简化):
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.
这是否意味着该微分方程没有解析解?有人有主意吗?
提前谢谢!
最好的问候 曼努埃尔
答案 0 :(得分:0)
只有一个方程可以求解联立方程。
例如,这有效:-
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:因变量比方程多,因此系统的不确定性。