matlab解非线性微分方程组
各位大神,小弟想求一个微分方程组的解析解,但是遇到了问题。模型:x,y,z为变量①dx/dt=ax②dy/dt=(bQx-S-T)*(1-z/Zm)*y③dz/dt=(c...
各位大神,小弟想求一个微分方程组的解析解,但是遇到了问题。
模型: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');
结果:没有求到解析解,小弟是新手,不知道这个方程组是真的木有解,还是我的方法不对或有其他方法,请大家指点一下。 展开
模型: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');
结果:没有求到解析解,小弟是新手,不知道这个方程组是真的木有解,还是我的方法不对或有其他方法,请大家指点一下。 展开
3个回答
展开全部
人家问的就是解析解,不知道上边几个在说什么
你这个方程高版本的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是忽略分析限制,这个一般来说是可以忽略的
你这个方程高版本的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)}]
你如果把参数都给出来(而不是只告诉我那是一个常量字母),可以很方便的求数值解
展开全部
上面的都说的很对,你的方程组不能使用dsolve来求解。你需要使用数值解法
但是数值解法中不能含有字符。所以你的a、b等参数都需要给定一个值然后使用ode45来求解
祝你学习愉快!
但是数值解法中不能含有字符。所以你的a、b等参数都需要给定一个值然后使用ode45来求解
祝你学习愉快!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能用dsolve这个命令的,应该用ode45,或ode32,具体怎么做你可以help,或者百度
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询