Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab:在不工作的条件下求解_Matlab_Symbolic Math_Differential Equations_Dsolve - Fatal编程技术网

Matlab:在不工作的条件下求解

Matlab:在不工作的条件下求解,matlab,symbolic-math,differential-equations,dsolve,Matlab,Symbolic Math,Differential Equations,Dsolve,我试图求解由变量eqn1和eqn2给出的微分方程组 lambda1 = 3; lambda2 = 2; gamma1 = 1; gamma2 = 1; delta1 = 1; delta2 = 1; syms n1(t) n2(t) eqn1 = diff(n1) == (lambda1 - gamma1)*n1 - delta1*(n1 + n2)*n1; eqn2 = diff(n2) == (lambda2 - gamma2)*n2 - delta1*(n1 + n2)*n2; c1

我试图求解由变量eqn1和eqn2给出的微分方程组

lambda1 = 3;
lambda2 = 2;
gamma1 = 1;
gamma2 = 1;
delta1 = 1;
delta2 = 1;

syms n1(t) n2(t)
eqn1 = diff(n1) == (lambda1 - gamma1)*n1 - delta1*(n1 + n2)*n1;
eqn2 = diff(n2) == (lambda2 - gamma2)*n2 - delta1*(n1 + n2)*n2;

c1 = n1(0) == 10;
c2 = n2(0) == 10;
[a, b] = dsolve(eqn1, eqn2, c1, c2)
如果我没有指定条件c1和c2并运行:

[a, b] = dsolve(eqn1, eqn2)
然后一切都很好,我得到:

a =

(6*exp(2*t)*n1(0))/(3*exp(2*t)*n1(0) + 4*exp((3*t)/2)*n2(0) + 6)


b =

(6*exp(t/2)*exp(t)*n2(0))/(3*exp(2*t)*n1(0) + 4*exp((3*t)/2)*n2(0) + 6)
但是,正如您在源代码中看到的,当我尝试指定n1(0)和n2(0)时,我得到了以下警告:

a =

Warning: The result cannot be displayed due a previously interrupted     computation or out of memory. Run 'reset(symengine)' and rerun the commands to regenerate the result. 
> In sym.disp at 36
  In sym.display at 37
  In competingForResources at 15 

b =

     []

我也无法预测结果。我错过了什么?如何以正确的方式指定条件,以便获得可绘制的结果?

您可以使用
subs

[a, b] = dsolve(eqn1, eqn2);
a=subs(a,'n1(0)',10);
a=subs(a,'n2(0)',10)

a =

(60*exp(2*t))/(30*exp(2*t) + 40*exp((3*t)/2) + 6)
b相同