有没有人在使用 MATLAB 时遇到过这种绘图错误?
Does anyone had this plotting error with MATLAB?
我已经在 matlab 中完成了关于轨道传播器的工作,现在我正在尝试借助主脚本来模拟轨道。
tspan=[0 :860];
Position and velocity
y0(1,1)= 743322.3616 ;
y0(2,1)= -6346021.219 ;
y0(3,1)= -3394131.349 ;
y0(4,1)= 5142.38067;
y0(5,1)= 4487.44895 ;
y0(6,1)= -7264.00872;
%%%% Mass(kg) /surface(m^2)
m = 217 ; %320;
A = 1.2; %8;
%%%% RK4
h=1;
y = zeros(6, tspan(end)/h);
y(:,1) = y0;
for i=1:1:(tspan(end)/h)
H=sqrt(y(1,i)^2+y(2,i)^2+y(3,i)^2);
k_1 = proiectia(tspan(i), y(:,i), H, m, A, y(4:6, i));
k1=k_1;
k_2 = proiectia(tspan(i)+0.5*h, y(:,i)+0.5*h*k_1, H, m, A, y(4:6, i));
k2=k_2;
k_3 = proiectia((tspan(i)+0.5*h), (y(:,i)+0.5*h*k_2), H, m, A, y(4:6, i));
k3=k_3;
k_4 = proiectia((tspan(i)+h),(y(:,i)+k_3*h), H, m, A, y(4:6, i));
k4=k_4;
y(:,i+1) = (y(:,i) + (1/6)*(k1+2*k2+2*k3+k4)*h);
plot3(y(1,:),y(2,:),y(3,: ));
drawnow
end
轨道描述得很好,但它一直在从 0 到点 (x,y,z) 所在的位置画一条额外的线。在表示所有值之后,从 0 开始的线消失了,它只剩下曲线(轨道)。有谁知道为什么它在 Runge Kutta 循环上时从 0 开始绘制那条线?
您正在绘制一个包含大量零的向量。因此绘制的线结束于 (0,0,0)。
尽量不要绘制零点:
plot3(y(1,1:i+1),y(2,,1:i+1),y(3,,1:i+1));
我已经在 matlab 中完成了关于轨道传播器的工作,现在我正在尝试借助主脚本来模拟轨道。
tspan=[0 :860];
Position and velocity
y0(1,1)= 743322.3616 ;
y0(2,1)= -6346021.219 ;
y0(3,1)= -3394131.349 ;
y0(4,1)= 5142.38067;
y0(5,1)= 4487.44895 ;
y0(6,1)= -7264.00872;
%%%% Mass(kg) /surface(m^2)
m = 217 ; %320;
A = 1.2; %8;
%%%% RK4
h=1;
y = zeros(6, tspan(end)/h);
y(:,1) = y0;
for i=1:1:(tspan(end)/h)
H=sqrt(y(1,i)^2+y(2,i)^2+y(3,i)^2);
k_1 = proiectia(tspan(i), y(:,i), H, m, A, y(4:6, i));
k1=k_1;
k_2 = proiectia(tspan(i)+0.5*h, y(:,i)+0.5*h*k_1, H, m, A, y(4:6, i));
k2=k_2;
k_3 = proiectia((tspan(i)+0.5*h), (y(:,i)+0.5*h*k_2), H, m, A, y(4:6, i));
k3=k_3;
k_4 = proiectia((tspan(i)+h),(y(:,i)+k_3*h), H, m, A, y(4:6, i));
k4=k_4;
y(:,i+1) = (y(:,i) + (1/6)*(k1+2*k2+2*k3+k4)*h);
plot3(y(1,:),y(2,:),y(3,: ));
drawnow
end
轨道描述得很好,但它一直在从 0 到点 (x,y,z) 所在的位置画一条额外的线。在表示所有值之后,从 0 开始的线消失了,它只剩下曲线(轨道)。有谁知道为什么它在 Runge Kutta 循环上时从 0 开始绘制那条线?
您正在绘制一个包含大量零的向量。因此绘制的线结束于 (0,0,0)。
尽量不要绘制零点:
plot3(y(1,1:i+1),y(2,,1:i+1),y(3,,1:i+1));