Mathematica方程式返回true而不是求解ODE?

时间:2016-09-19 04:03:44

标签: wolfram-mathematica

我想使用mathematica的DSolve函数解决两个ODE的系统。以下是我写下来的内容:

DSolve[{x'[t] == 0.02*x - .00004*x*y, y'[t] == .0004*x*y - .04*y, 
  x[0] == 500, y[0] == 200}, {x[t], y[t]}, t]

但由于某种原因,它只是一直告诉我方程式返回true,我不应该在我的语法中使用它,并且它不会解决它。不确定为什么会发生这种情况或如何解决它。

1 个答案:

答案 0 :(得分:0)

Prolbmes:

  

DSolve :: dvnoarg:函数x出现时没有参数。 >>

您应该在方程中放置x[t]而不是x

  

NIntegrate :: nlim:K [1] = x [t]不是有效的积分限制。 >>

你应该使用数值解,因为分析存在问题。

解决方案:

s = NDSolve[
  {
   x'[t] == 0.02*x[t] - .00004*x[t]*y[t],
   y'[t] == .0004*x[t]*y[t] - .04*y[t],
   x[0] == 500,
   y[0] == 200
   }, {x, y}, {t, 0, 100}]

Plot[{Evaluate[x[t] /. s], Evaluate[y[t] /. s]}, {t, 0, 100}]

结果:

solution.png