发布网友 发布时间:2022-10-05 22:50
共2个回答
热心网友 时间:2023-10-21 01:56
% ode45没有像你那么用的!具体doc ode45查看帮助!
% 你就是想在一幅图上画出k分别为0和0.1的
% plot3(y(:,1),y(:,3),y(:,5))图像是不?可以这样如下,
% 而且你的g未定义!
function dy=rigid(t,y)
global m g k w r ;
dy=zeros(6,1);
dy(1)=y(2);
dy(2)=2*w*y(4)*sin(r)-k*y(2);
dy(3)=y(4);
dy(4)=-2*w*(y(6)*cos(r)+y(2)*sin(r))-k*y(4);
dy(5)=y(6);
dy(6)=2*w*y(4)*cos(r)-k*y(6)-g;
%以上的微分方程没有变
global w r k g;
w=0;
r=pi/4;
g=10;%我自己随意定义的
t0=linspace(0,21);
a=200*cos(pi/4);
b=200*cos(pi/4);
c=200*cos(pi/4);
kk=[0,0.1];
color=['r','b'];%我定义了颜色,要不全是蓝色,k=0对应红色k=0.1对应蓝色
for i=1:2
k=kk(i);
[t,y]=ode45('rigid',t0,[0 a 0 b 0 c]);
plot3(y(:,1),y(:,3),y(:,5),color(i))
hold on
end
title('考虑和不考虑空气阻力的运动轨迹');
xlabel('x')
ylabel('y')
zlabel('z')
grid on
legend('考虑空气','不考虑空气')
热心网友 时间:2023-10-21 01:56
错误