首页 > 解决方案 > 使用 Mathematica 求解这个微分方程

问题描述

我想用以下形式的微分方程来描述化学反应的动力学和我对反应模型的想法(简化):

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.

这是否意味着这个微分方程没有解析解?有人有想法吗?

提前致谢!

最好的问候曼努埃尔

标签: wolfram-mathematicadifferential-equations

解决方案


你只有一个方程来求解联立方程。

例如,这有效: -

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:因变量比方程多,因此系统是欠定的。


推荐阅读