matlab用龙格库塔法求解微分方程组题目是这样的:将微分方程组重写为一阶以后是这样的初始矢量不知道在matlab中应该怎么写,分数不多,但是是我有的全部了 TAT

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/02 16:47:04
matlab用龙格库塔法求解微分方程组题目是这样的:将微分方程组重写为一阶以后是这样的初始矢量不知道在matlab中应该怎么写,分数不多,但是是我有的全部了 TAT

matlab用龙格库塔法求解微分方程组题目是这样的:将微分方程组重写为一阶以后是这样的初始矢量不知道在matlab中应该怎么写,分数不多,但是是我有的全部了 TAT
matlab用龙格库塔法求解微分方程组
题目是这样的:




将微分方程组重写为一阶以后是这样的

初始矢量



不知道在matlab中应该怎么写,
分数不多,但是是我有的全部了 TAT

matlab用龙格库塔法求解微分方程组题目是这样的:将微分方程组重写为一阶以后是这样的初始矢量不知道在matlab中应该怎么写,分数不多,但是是我有的全部了 TAT
解方程很简单,调用ode45即可
关键是求运动时间,假设z方向坐标变为0即为落至地面运动结束,可求得运动时间的近似值及落地点坐标
代码如下:
clear all
clc
c=0.07;
u0=25;
a=pi/6;
f=@(t,x)([x(2);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(2);
x(4);
-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*(x(4)-7-.35*x(5));
x(6);
-9.81-c*sqrt(x(2)^2+(x(4)-7-.35*x(5))^2+x(6)^2)*x(6)]);
[t,Y]=ode45(f,0:.01:2,[0 u0*cos(a) 0 0 1.4 u0*sin(a)]);
n=max(find(Y(:,5)>0));
t_end=t(n)
s=[Y(n,1),Y(n,3),0]
plot3(Y(1:n,1),Y(1:n,3),Y(1:n,5))
其中t_end为运动时间
s为落地点坐标
看了半天,怎么都觉得方程不太对
再检查一下方程吧,尤其是第二个方程等号右边到底有没有负号
最后一个方程等号右边也有问题,请仔细检查