mathematica 解微分方程组并画出图形总报错。。

为什么我用NDsolve语句解微分方程组并画图

solution = NDSolve[{x'[t] = 0.03*x*(1 - x) - 0.49608*x*y - 0.3816*x^2*y -
0.5724*x*y^2,y'[t] = 0.067*y - 1.04*y*(-1.2 )y^2 - 0.8*x*y}, {x, y}, {t, 0, 10}];
ParametricPlot[Evaluate[{x[t], y[t]} /. solution], {t, 0, 10}]
总是报错 我看了很多遍应该没问题的
各位大神 帮我看下 小弟不胜感激

第1个回答  2012-08-28
solution 可以缩写为s,另外“=”应改为“==”,(-1.2)应改为 (-1.2) 中英文
我只能说这么多,帮不了你
第2个回答  2012-09-02
除了楼上那位说的以外,还需要修改以下几点。
第一,求解微分定解问题是视问题不同是需要初始条件和边界条件的,你的这个,我试了下,补充两个初始条件的话即可解,当然可能还有其他可用的初始条件,你可以自己试试。
第二,ParametricPlot这里,你在第一点之后,可以单独执行下y[t] /. solution试试,你会发现这样得到的是个列表。疑似参数绘图并不能这样塞列表,虽然这只是个单元素的列表。所以这里要把这个元素给提取出来,这里可以用First。
综上所述,正确的代码是:
sol = NDSolve[{Derivative[1][x][t] ==
0.03` x[t] (1 - x[t]) - 0.49608` x[t] y[t] -
0.3816` x[t]^2 y[t] - 0.5724` x[t] y[t]^2,
Derivative[1][y][t] ==
0.067` y[t] - 1.04` y[t] (-1.2`) y[t]^2 - 0.8` x[t] y[t],
y[0] == 0.01, x[0] == 0.01}, {x[t], y[t]}, {t, 0, 10}]

ParametricPlot[{First@(x[t] /. sol), First@(y[t] /. sol)}, {t, 0, 10},
PlotRange -> All]

当然,x[0]和y[0]是我随便赋的,你得依你的具体问题去赋值。
相似回答
大家正在搜