作业帮 > 综合 > 作业

matlab解非线性微分方程组

来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/06/22 22:57:47
matlab解非线性微分方程组
小弟想求一个微分方程组的解析解,但是遇到了问题.
模型:x,y,z为变量
①dx/dt=ax
②dy/dt=(bQx-S-T)*(1-z/Zm)*y
③dz/dt=(cDx+P-M)*z+eyE
我的程序:
syms a b Q S T z Zm c A P M e E;
SS=dsolve('Dx=a*x','Dy=(b*Q*x-S-T)*y*(1-z/Zm)','Dz=(c*A*x+P-M)*z+e*E');
结果:没有求到解析解,小弟是新手,不知道这个方程组是真的木有解,还是我的方法不对或有其他方法,
matlab解非线性微分方程组
人家问的就是解析解,不知道上边几个在说什么
你这个方程高版本的matlab可以解,只是算出来之后带积分项目:
syms a b Q S T z Zm c A P M e E
SS=dsolve('Dx=a*x','Dy=(b*Q*x-S-T)*y*(1-z/Zm)','Dz=(c*A*x+P-M)*z+e*E')
SS =
y: [1x1 sym]
x: [1x1 sym]
z: [1x1 sym]
>> SS.x

ans =

C5*exp(a*t)

>> SS.y

ans =

C9*exp(int((C7*exp((P*a*t - M*a*t + A*C5*c*exp(a*t))/a)*(S + T - C5*Q*b*exp(a*t)))/Zm + (exp((P*a*t - M*a*t + A*C5*c*exp(a*t))/a)*int(e*exp(M*t - P*t - (A*C5*c*exp(a*t))/a + 1), t, IgnoreAnalyticConstraints)*(S + T - C5*Q*b*exp(a*t)))/Zm, t, IgnoreAnalyticConstraints) - T*t - S*t + (C5*Q*b*exp(a*t))/a)

>> SS.z

ans =

C7*exp((P*a*t - M*a*t + A*C5*c*exp(a*t))/a) + exp((P*a*t - M*a*t + A*C5*c*exp(a*t))/a)*int(e*exp(M*t - P*t - (A*C5*c*exp(a*t))/a + 1), t, IgnoreAnalyticConstraints)
IgnoreAnalyticConstraints是忽略分析限制,这个一般来说是可以忽略的
再问: 不好意思哈,非常感谢你,那个我输入公式的时候有点问题,最后的e*E->e*y*E',能麻烦你再用matlab求解一下吗?谢谢啦,分肯定是你的了,灰常感谢。 syms a b Q S T z Zm c A P M e E SS=dsolve('Dx=a*x','Dy=(b*Q*x-S-T)*y*(1-z/Zm)','Dz=(c*A*x+P-M)*z+e*y*E')
再答: 第一组:{x(t) = _C2*exp(a*t)}, {y(t) = 0}, {z(t) = _C1*exp(Int(c*A*x(t)+P-M, t))}], 第二组:{x(t) = _C1*exp(a*t)}, {diff(y(t), t, t) = (2*e*y(t)^3*E*b*Q*x(t)*T-y(t)^2*Zm*b^2*Q^2*x(t)^3*c*A-2*y(t)^2*Zm*b*Q*x(t)*M*S+2*y(t)^2*Zm*b*Q*x(t)*P*T-2*y(t)^2*Zm*b*Q*x(t)*M*T+2*y(t)^2*Zm*b*Q*x(t)*P*S-2*y(t)^2*Zm*S*x(t)*c*A*T-y(t)*Zm*(diff(y(t), t))*b*Q*x(t)*M+y(t)*Zm*(diff(y(t), t))*b*Q*x(t)*P-y(t)*Zm*(diff(y(t), t))*x(t)*c*A*T-y(t)*Zm*(diff(y(t), t))*x(t)*c*A*S+Zm*(diff(y(t), t))*y(t)*b*Q*a*x(t)-e*y(t)^3*E*b^2*Q^2*x(t)^2+y(t)^2*Zm*b^2*Q^2*x(t)^2*M-y(t)^2*Zm*b^2*Q^2*x(t)^2*P-y(t)^2*Zm*S^2*x(t)*c*A-y(t)^2*Zm*T^2*x(t)*c*A-Zm*(diff(y(t), t))^2*S-Zm*(diff(y(t), t))^2*T+y(t)^2*Zm*S^2*M-y(t)^2*Zm*S^2*P-y(t)^2*Zm*T^2*P+y(t)^2*Zm*T^2*M-e*y(t)^3*E*S^2-e*y(t)^3*E*T^2+Zm*(diff(y(t), t))^2*b*Q*x(t)-2*e*y(t)^3*E*S*T+y(t)*Zm*(diff(y(t), t))*M*S-y(t)*Zm*(diff(y(t), t))*P*T+y(t)*Zm*(diff(y(t), t))*M*T-y(t)*Zm*(diff(y(t), t))*P*S-2*y(t)^2*Zm*S*P*T+2*y(t)^2*Zm*S*M*T+2*e*y(t)^3*E*b*Q*x(t)*S+y(t)*Zm*(diff(y(t), t))*b*Q*c*A*x(t)^2+2*y(t)^2*Zm*b*Q*x(t)^2*c*A*T+2*y(t)^2*Zm*b*Q*x(t)^2*c*A*S)/(y(t)*b*Q*x(t)*Zm-y(t)*S*Zm-y(t)*T*Zm)} {z(t) = (-(diff(y(t), t))*Zm+y(t)*b*Q*x(t)*Zm-y(t)*S*Zm-y(t)*T*Zm)/(y(t)*b*Q*x(t)-y(t)*S-y(t)*T)}] 你如果把参数都给出来(而不是只告诉我那是一个常量字母),可以很方便的求数值解