📄 monte_carlo_cs.m
字号:
%Monte-Carlo仿真
clear,clc,close all
n=500;
%----------------
tic;
for kk=1:n
cs;
y(:,:,kk)=x;
end
xx1=y;
time1=toc
%----------------
tic;
for kk=1:n
cs1;
y(:,:,kk)=x;
end
xx2=y;
time2=toc
%----------------
tic;
for kk=1:n
cs2;
y(:,:,kk)=x;
end
xx3=y;
time3=toc
%----------------
tic;
for kk=1:n
cs3;
y(:,:,kk)=x;
end
xx4=y;
time4=toc
%-------------------------------------------------------------
for i=1:length(z)
ss1=0;
ss2=0;
ss3=0;
ss4=0;
for kk=1:n
ss1=ss1+(xx1(1,i,kk)-X(1,i))^2;
ss2=ss2+(xx1(2,i,kk)-X(2,i))^2;
ss3=ss3+(xx1(4,i,kk)-X(4,i))^2;
ss4=ss4+(xx1(5,i,kk)-X(5,i))^2;
end
RMSE_x1(i)=sqrt(ss1/n);
RMSE_vx1(i)=sqrt(ss2/n);
RMSE_y1(i)=sqrt(ss3/n);
RMSE_vy1(i)=sqrt(ss4/n);
end
%-------------------------------------------------------------
for i=1:length(z)
ss1=0;
ss2=0;
ss3=0;
ss4=0;
for kk=1:n
ss1=ss1+(xx2(1,i,kk)-X(1,i))^2;
ss2=ss2+(xx2(2,i,kk)-X(2,i))^2;
ss3=ss3+(xx2(4,i,kk)-X(4,i))^2;
ss4=ss4+(xx2(5,i,kk)-X(5,i))^2;
end
RMSE_x2(i)=sqrt(ss1/n);
RMSE_vx2(i)=sqrt(ss2/n);
RMSE_y2(i)=sqrt(ss3/n);
RMSE_vy2(i)=sqrt(ss4/n);
end
%-------------------------------------------------------------
for i=1:length(z)
ss1=0;
ss2=0;
ss3=0;
ss4=0;
for kk=1:n
ss1=ss1+(xx3(1,i,kk)-X(1,i))^2;
ss2=ss2+(xx3(2,i,kk)-X(2,i))^2;
ss3=ss3+(xx3(4,i,kk)-X(4,i))^2;
ss4=ss4+(xx3(5,i,kk)-X(5,i))^2;
end
RMSE_x3(i)=sqrt(ss1/n);
RMSE_vx3(i)=sqrt(ss2/n);
RMSE_y3(i)=sqrt(ss3/n);
RMSE_vy3(i)=sqrt(ss4/n);
end
%-------------------------------------------------------------
for i=1:length(z)
ss1=0;
ss2=0;
ss3=0;
ss4=0;
for kk=1:n
ss1=ss1+(xx4(1,i,kk)-X(1,i))^2;
ss2=ss2+(xx4(2,i,kk)-X(2,i))^2;
ss3=ss3+(xx4(4,i,kk)-X(4,i))^2;
ss4=ss4+(xx4(5,i,kk)-X(5,i))^2;
end
RMSE_x4(i)=sqrt(ss1/n);
RMSE_vx4(i)=sqrt(ss2/n);
RMSE_y4(i)=sqrt(ss3/n);
RMSE_vy4(i)=sqrt(ss4/n);
end
clear ss1 ss2 ss3 ss4;
%-------------------------------------------------------------
t=1:length(z);
figure(1) ;
plot(t*T,RMSE_x1,'k*-',t*T,RMSE_x2,'ko-',t*T,RMSE_x3,'k:',t*T,RMSE_x4,'k');
xlabel('跟踪时间(秒)');
ylabel('位移误差(米)');
title('x轴位移均方误差');
legend('a=1/40,a^+=40,a^-=-40','a=1/40,a^+=100,a^-=-100','a=1/150,a^+=40,a^-=-40','a=1/150,a^+=120,a^-=-120');
figure(2) ;
plot(t*T,RMSE_vx1,'k*-',t*T,RMSE_vx2,'ko-',t*T,RMSE_vx3,'k:',t*T,RMSE_vx4,'k');
ylabel('速度误差(米/秒)');
xlabel('跟踪时间(秒)');
title('X轴速度均方误差');
legend('a=1/40,a^+=40,a^-=-40','a=1/40,a^+=100,a^-=-100','a=1/150,a^+=40,a^-=-40','a=1/150,a^+=120,a^-=-120');
figure(3) ;
plot(t*T,RMSE_y1,'k*-',t*T,RMSE_y2,'ko-',t*T,RMSE_y3,'k:',t*T,RMSE_y4,'k');
xlabel('跟踪时间(秒)');
ylabel('位移误差(米)');
title('y轴位移均方误差');
legend('a=1/40,a^+=40,a^-=-40','a=1/40,a^+=100,a^-=-100','a=1/150,a^+=40,a^-=-40','a=1/150,a^+=120,a^-=-120');
figure(4) ;
plot(t*T,RMSE_vy1,'k*-',t*T,RMSE_vy2,'ko-',t*T,RMSE_vy3,'k:',t*T,RMSE_vy4,'k');
ylabel('速度误差(米/秒)');
xlabel('跟踪时间(秒)');
title('y轴速度均方误差');
legend('a=1/40,a^+=40,a^-=-40','a=1/40,a^+=100,a^-=-100','a=1/150,a^+=40,a^-=-40','a=1/150,a^+=120,a^-=-120');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -