Wolfram mathematica Wolfram Mathematica,输入微分方程

Wolfram mathematica Wolfram Mathematica,输入微分方程,wolfram-mathematica,differential-equations,Wolfram Mathematica,Differential Equations,我试图用Wolfram Mathematica在本网站上给出的微分方程来模拟疾病的传播 我进入: NDSolve[{i'[t]== 1/2s[t]i[t]-1/3i[t], s[t]==-1/2s[t]i[t],r[t]==1/3i[t], r[0] ==0, s[0]==1, i[0]==1.27*10^-6,s'[0]==0} i, {t, 0, 100}] 并收到了错误 使用2个参数调用NDSolve;应包含3个或更多参数 我也试过了 NDSolve[{i'[t]== 1/2s[t]i

我试图用Wolfram Mathematica在本网站上给出的微分方程来模拟疾病的传播

我进入:

 NDSolve[{i'[t]== 1/2s[t]i[t]-1/3i[t], s[t]==-1/2s[t]i[t],r[t]==1/3i[t], r[0] ==0, s[0]==1, i[0]==1.27*10^-6,s'[0]==0} i, {t, 0, 100}]
并收到了错误 使用2个参数调用NDSolve;应包含3个或更多参数

我也试过了

NDSolve[{i'[t]== 1/2s[t]i[t]-1/3i[t], s[t]==-1/2s[t]i[t],r[t]==1/3i[t], r[0] ==0, s[0]==1, i[0]==1.27*10^-6,s'[0]==0} i, {t, 0, 100}]
也犯了同样的错误


我对微分方程和数学都是新手,如果有人能帮我,我将不胜感激。

正如比尔所说,这不是昏迷。NDSolve的第二个参数是函数集。您可以不带参数或带参数键入它。您的代码应该如下所示:

sol = NDSolve[
  {i'[t] == 1/2 s[t] i[t] - 1/3 i[t],
   s[t] == -1/2 s[t] i[t], r[t] == 1/3 i[t],
   r[0] == 0,
   s[0] == 1,
   i[0] == 1.27*10^-6,
   s'[0] == 0}, {i[t], s[t], r[t]}, {t, 0, 10}]
它会产生与数值问题相关的错误:

NDSolve::ivres:NDSolve已计算初始值,这些初始值为微分代数系统提供零残差,但某些组件与指定的组件不同。如果需要满足这些条件,建议为所有因变量及其导数提供初始条件。>>

但您可以打印结果:

Plot[{Evaluate[i[t] /. sol], Evaluate[s[t] /. sol], 
  Evaluate[r[t] /. sol]}, {t, 0, 10}]

也许在你的S(0)==0 } i的中间,你缺少一个逗号,如果你把它变成s’[0 ]=0 },那么它就起作用了。