2012-03-05 135 views
0

我一般不使用Mathematica,我需要它与其他程序进行比较。我想解决三个微分和非线性方程组的系统。为此我使用Dsolve。当我放置非线性项(指数)时,一切都会出错。非线性微分方程的求解

这里是我的代码:

equa = {x'[t] == z[t] - Exp[y[t]], 
y'[t] == z[t] - y[t], 
z'[t] == x[t] + y[t] - z[t], 
x[0] == 0, 
y[0] == 0, 
z[0] == 0}; 
slt = DSolve[equa, {x, y, z}, t] 
Plot[{x[t] /. slt}, {t, 0, 10}] 

,并且错误是这样的:

DSolve :: dsvar:0.1不能用作变量。

的replaceAll ::代表:{Dsolve [< < 1 >>]}既不是更换规则列表,也没有一个有效的调度表,所以不能用于替换

是否有人知道为什么指数术语会带来麻烦吗?

感谢

+1

尝试mathematica.stackoverflow.com – 2012-03-05 12:25:50

回答

2

您可以尝试

s = NDSolve[equa, {x, y, z}, {t, 0, 10}]; 
Plot[Evaluate[({x[t], y[t], z[t]} /. s)], {t, 0, 1}] 

enter image description here

+0

我想你的解决方案,但它并没有给我写的答案! – PanAkry 2012-03-05 15:59:06

+1

这是数值解决方案... – 2012-03-06 01:13:00

+0

对于这个系统肯定,但对于我的枫树和python给出与mathematica答案不同甚至不同的行为! – PanAkry 2012-03-06 13:30:31