matlab 如何求一组微分方程组的通解?
如题dy1/dt=Vx;dy2/dt=-b/m*(Vx^2+Vy^2+Vz^2)*Vx;dy3/dt=Vy;dy4/dt=-b/m*(Vx^2+Vy^2+Vz^2)*Vy...
如题
dy1/dt = Vx;
dy2/dt = -b/m*(Vx^2+Vy^2+Vz^2)*Vx;
dy3/dt = Vy;
dy4/dt =-b/m*(Vx^2+Vy^2+Vz^2)*Vy;
dy5/dt = Vz;
dy6/dt = -b/m*(Vx^2+Vy^2+Vz^2)*Vz;
b,m都为常数项参数
我想知道y1~y6 与 t 的函数表达式,如何获得?
(我知道可以用ode45求出值,但是我需要求得表达式是什么) 展开
dy1/dt = Vx;
dy2/dt = -b/m*(Vx^2+Vy^2+Vz^2)*Vx;
dy3/dt = Vy;
dy4/dt =-b/m*(Vx^2+Vy^2+Vz^2)*Vy;
dy5/dt = Vz;
dy6/dt = -b/m*(Vx^2+Vy^2+Vz^2)*Vz;
b,m都为常数项参数
我想知道y1~y6 与 t 的函数表达式,如何获得?
(我知道可以用ode45求出值,但是我需要求得表达式是什么) 展开
1个回答
展开全部
可这样:
>> syms Vx Vy Vz b m y1(t) y2(t) y3(t) y4(t) y5(t) y6(t)
y1=dsolve(diff(y1)==Vx)
y2=dsolve(diff(y2)==-b/m*(Vx^2+Vy^2+Vz^2)*Vx)
y3=dsolve(diff(y3)==Vy)
y4=dsolve(diff(y4)==-b/m*(Vx^2+Vy^2+Vz^2)*Vy)
y5=dsolve(diff(y5)==Vz)
y6=dsolve(diff(y6)==-b/m*(Vx^2+Vy^2+Vz^2)*Vz)
y1 =
C2 + Vx*t
y2 =
C4 - (t*(b*Vx^3 + b*Vx*Vy^2 + b*Vx*Vz^2))/m
y3 =
C6 + Vy*t
y4 =
C8 - (t*(b*Vx^2*Vy + b*Vy^3 + b*Vy*Vz^2))/m
y5 =
C10 + Vz*t
y6 =
C12 - (t*(b*Vx^2*Vz + b*Vy^2*Vz + b*Vz^3))/m
>> syms Vx Vy Vz b m y1(t) y2(t) y3(t) y4(t) y5(t) y6(t)
y1=dsolve(diff(y1)==Vx)
y2=dsolve(diff(y2)==-b/m*(Vx^2+Vy^2+Vz^2)*Vx)
y3=dsolve(diff(y3)==Vy)
y4=dsolve(diff(y4)==-b/m*(Vx^2+Vy^2+Vz^2)*Vy)
y5=dsolve(diff(y5)==Vz)
y6=dsolve(diff(y6)==-b/m*(Vx^2+Vy^2+Vz^2)*Vz)
y1 =
C2 + Vx*t
y2 =
C4 - (t*(b*Vx^3 + b*Vx*Vy^2 + b*Vx*Vz^2))/m
y3 =
C6 + Vy*t
y4 =
C8 - (t*(b*Vx^2*Vy + b*Vy^3 + b*Vy*Vz^2))/m
y5 =
C10 + Vz*t
y6 =
C12 - (t*(b*Vx^2*Vz + b*Vy^2*Vz + b*Vz^3))/m
追问
可是Vx Vy Vz不是定值,它们也是随着时间变化的, 用ode45可求出Vx Vy Vz的值
追答
你把变化情况代入上式,就可以了。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询