【问题标题】:Using Mathematica to solve this differential equation使用 Mathematica 求解这个微分方程
【发布时间】:2019-02-28 07:47:54
【问题描述】:

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

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-mathematica differential-equations


    【解决方案1】:

    解联立方程只有一个方程。

    例如,这有效:-

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

    【讨论】:

    • 非常感谢您的解释!
    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多