蒙特卡洛方法模拟小例子

  • 格式:docx
  • 大小:32.99 KB
  • 文档页数:5

下载文档原格式

  / 12
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.

经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部毁伤敌人火炮.

现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。

使用蒙特卡洛方法模拟50次打击结果:

function [out1 out2 out3 out4]=Msc(N)

% N开炮次数

% out1射中概率

% out2平均每次击中次数

% out3击中敌人一门火炮的射击总数

% out4击中敌人2门火炮的射击总数

k1=0;

k2=0;

k3=0;

for i=1:N

x0=randperm(2)-1;

y0=x0(1);

if y0==1

fprintf('第%d次:指示正确||',i);

x1=randperm(6);

y1=x1(1);

if y1==1|y1==2|y1==3

fprintf('第%d次:击中0炮||',i);

k1=k1+1;

elseif y1==4|y1==5

fprintf('第%d次:击中1炮||',i);

k2=k2+1;

else

fprintf('第%d次:击中2炮||',i);

k3=k3+1;

end

else

fprintf('第%d次:指示错误,击中0炮||',i);

k1+1;

end

fprintf('\n');

end

out1=(k2+k3)/N;

out2=(0*k1+k2+2*k3)/20;

out3=k2/N;

out4=k3/N;

运行:

1.[out1 out2 out3 out4]=Msc(50)

结果:

1.第1次:指示正确||第1次:击中2炮||

2.第2次:指示错误,击中0炮||

3.第3次:指示错误,击中0炮||

4.第4次:指示正确||第4次:击中0炮||

5.第5次:指示错误,击中0炮||

6.第6次:指示正确||第6次:击中1炮||

7.第7次:指示正确||第7次:击中0炮||

8.第8次:指示错误,击中0炮||

9.第9次:指示正确||第9次:击中2炮||

10.第10次:指示正确||第10次:击中1炮||

11.第11次:指示正确||第11次:击中1炮||

12.第12次:指示正确||第12次:击中2炮||

13.第13次:指示错误,击中0炮||

14.第14次:指示正确||第14次:击中1炮||

15.第15次:指示错误,击中0炮||

16.第16次:指示错误,击中0炮||

17.第17次:指示正确||第17次:击中0炮||

18.第18次:指示错误,击中0炮||

19.第19次:指示正确||第19次:击中1炮||

20.第20次:指示错误,击中0炮||

21.第21次:指示正确||第21次:击中0炮||

22.第22次:指示正确||第22次:击中1炮||

23.第23次:指示正确||第23次:击中0炮||

24.第24次:指示错误,击中0炮||

25.第25次:指示正确||第25次:击中1炮||

26.第26次:指示错误,击中0炮||

27.第27次:指示正确||第27次:击中1炮||

28.第28次:指示正确||第28次:击中0炮||

29.第29次:指示正确||第29次:击中0炮||

30.第30次:指示正确||第30次:击中0炮||

31.第31次:指示错误,击中0炮||

32.第32次:指示错误,击中0炮||

33.第33次:指示正确||第33次:击中0炮||

34.第34次:指示错误,击中0炮||

35.第35次:指示正确||第35次:击中0炮||

36.第36次:指示正确||第36次:击中0炮||

37.第37次:指示错误,击中0炮||

38.第38次:指示正确||第38次:击中0炮||

39.第39次:指示错误,击中0炮||

40.第40次:指示正确||第40次:击中0炮||

41.第41次:指示正确||第41次:击中1炮||

42.第42次:指示正确||第42次:击中0炮||

43.第43次:指示错误,击中0炮||

44.第44次:指示正确||第44次:击中1炮||

45.第45次:指示正确||第45次:击中0炮||

46.第46次:指示错误,击中0炮||

47.第47次:指示错误,击中0炮||

48.第48次:指示错误,击中0炮||

49.第49次:指示正确||第49次:击中0炮||

50.第50次:指示正确||第50次:击中1炮||

51.

52.out1 =

53.

54. 0.2800

55.

56.

57.out2 =

58.

59. 0.8500

60.

61.

62.out3 =