【问题标题】:Mathematica DSolve for two functions两个函数的 Mathematica DSolve
【发布时间】:2019-03-17 20:54:06
【问题描述】:

我有以下两个微分方程

y'[t] == k1*y[t] - k3*y2[t]
y2'[t] == k2*y2[t] - k4*y[t]

我可以使用 Mathematicas DSolve Function 求解方程:

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]}

原因是我有实验数据(t 上的浓度 y 和 y2),我想为 y(以及后来的 y2)拟合曲线。我感谢任何输入! :-)

【问题讨论】:

  • 看起来发布的代码不完整或不正确。 Solve 的计算结果为 {{}}
  • 你真的想要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(它们是化学反应期间不同物质的浓度)(60 分钟内有 8 个样本)。现在我想为浓度课程拟合一个动力学模型。因此,我认为有一个方程 y2 = f(y2, t) 是个好主意。另一个想法是:是否要用共享参数来拟合两个函数(两个函数的 k 必须相同)?

标签: math wolfram-mathematica differential-equations


【解决方案1】:

我本来想将其作为评论留下,但我不能(声誉太低),但尝试简化您的代码:

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 做您要求的事情。我建议在The Mathematica Stack Exchange 提问,因为他们很可能对这些类型的问题更有经验。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多