实验十一,MATLAB模拟
matlab模拟(word文档良心出品)

MATLAB模拟太阳系实验报告小组成员:邹智康U201313766王思懋U201313475陈桃斌U201313531杨飞U201313530陈铁U201313522班级:信卓1301指导老师:文灏一、实验目的1、熟悉MATLAB的基本功能,了解MATLAB的编译环境。
2、掌握MATLAB的基本绘图函数,熟悉绘图函数的用法、简单图形标注、简单颜色鉴定。
3、通过组内分工、协商合作,增强组员自主学习的能力,加强组员间团结合作的能力。
二、预期目标1、绘制太阳系三维动态图形。
2、模拟八大行星和彗星绕太阳运行动态轨道。
3、模拟月球绕地球运动.小星星带及土星环。
4、模拟出大致的行星大小.轨道大小及运行周期的比例三、实验前的准备工作1、对MATLAB的初步了解:MATLAB(矩阵实验室)是MATrix LABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。
MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。
除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++和FORTRAN)编写的程序。
2、组内进行多次讨论,并明确组员分工:陈铁、王思懋两人负责前期资料(包括太阳系的各种所需数据、MATLAB的编译环境等)的收集,陈桃斌负责ppt的制作,杨飞负责主体代码,邹智康负责实验报告的书写。
由杨飞将主题代码写好后,再把其余代码分块分给其余组员各自书写,以保证每个组员的参与度。
四、实验成果展示1、全部代码2、%³õʼÉèÖÃ3、figure('name','ÐÇϵÑÝʾ');%ÉèÖñêÌâÃû×Ö4、pausetime=.01;%ÉèÖÃÔÝͣʱ¼ä5、set(gca,'xlim',[-50 50],'ylim',[-50 30],'zlim',[-5050]);6、set(gcf,'doublebuffer','on') %Ïû³ý¶¶¶¯7、xlabel('xÖá'),ylabel('yÖá'),zlabel('zÖá');8、axis equal;9、grid on;10、view([3 5 2]);11、hold on12、a=[8.5 12.5 20 30 50 60 80 100 90 1.5];%³¤Öá13、b=[8 12 18 26 45 55 70 90 30 1.5];%¶ÌÖá14、omga=[4 1.25 1 0.5 0.1 0.05 0.1 0.09 0.1 5];%½ÇËÙ¶È15、r=[0.35 0.8 0.8 0.5 3 2.5 1.5 1.5 0.5 0.35];%ÇòÌå°ë¾¶Ç°°Ë¸öΪ¶ÔÓ¦ÐÐÐÇ£¬µÚ¾Å¸öΪåçÐÇ£¬µÚÊ®¸öΪÔÂÇò16、c=sqrt(a.^2-b.^2);h=pi/18;h1=pi/10;f=pi/9;g=pi/8;g1=pi/6;17、aby=[h h 0;h1 h 0;h h 0;h h 0;h h 0;h h 0;h g 0;h h h;g0 g;0 g1 0];%ÿ¸ö¹ìµÀÆ½ÃæÆ«ÒÆÉèÖÃ18、19、%СÐÐÐÇ´øÓëÍÁÐÇ»·ÉèÖÃ20、runu=35:0.5:40;theta=(0:0.05*pi:2*pi)';runa=2.8:0.4:5.6;21、xx=cos(theta)*runu+20;22、yy=0.9*sin(theta)*runu;23、zz=-0.17*xx-0.17*yy; plot3(xx,yy,zz,':k'); %СÐдøÉèÖÃ24、hx=cos(theta)*runa;hy=sin(theta)*runa;hz=-0.1*hx-0.2*hy; %color={'y','m','b','m','r','c','b','b'};25、26、%Ì«ÑôÉèÖÃ27、[X,Y,Z]=sphere(40);28、surf(5*X,5*Y,5*Z);colormap(autumn) %ÉèÖÃÌ«Ñô29、light ('position',[1 0 2],'style','infinite')30、lighting phong31、material shiny32、t=0:0.01*pi:50*pi; t';33、num=length(a);34、35、%¹ìµÀ·½³Ì36、for n=1:num37、x(:,n)=a(n)*cos(omga(n)*t)+c(n);38、y(:,n)=b(n)*sin(omga(n)*t);39、z(:,n)=0*t;40、xuanz(:,:)=[1 0 0;0 cos(aby(n,1)) -sin(aby(n,1));0sin(aby(n,1)) cos(aby(n,1))]*[cos(aby(n,2)) 0sin(aby(n,2));0 1 0;-sin(aby(n,2)) 0cos(aby(n,2))]*[cos(aby(n,3)) -sin(aby(n,3))0;sin(aby(n,3)) cos(aby(n,3)) 0;0 0 1];41、xyz(:,:)=[x(:,n) y(:,n) z(:,n)]*xuanz(:,:);42、x(:,n)=xyz(:,1);43、y(:,n)=xyz(:,2);44、z(:,n)=xyz(:,3);45、if n<=946、p(n)=surf(r(n)*X+x(1,n),r(n)*Y+y(1,n),r(n)*Z+z(1,n));shading interp47、plot3(x(:,n),y(:,n),z(:,n),'-k');%»-³öËùÓй켣Ïß48、else49、p(n)=surf(r(n)*X+x(1,n)+x(1,3),r(n)*Y+y(1,n)+y(1,3),r(n)*Z+z(1,n)+z(1,3));shading interp50、pmuw(n-9)=plot3(x(:,n)+x(1,3),y(:,n)+y(1,3),z(:,n)+z(1,3),'-k');%ÔÂÇò¹ìµÀÉèÖÃ51、end52、end53、54、%ÍÁÐÇ»·55、for n=1:length(runa)56、ph(n)=plot3(hx(:,n)+x(1,6),hy(:,n)+y(1,6),hz(:,n)+z(1,6),'-c');57、end58、59、%ÐÐÐÇÑÕÉ«60、set(p(1),'facecolor','y');set(p(2),'facecolor','m');set(p(3),'facecolor','b');set(p(4),'facecolor','m');61、set(p(5),'facecolor','r');set(p(6),'facecolor','c');set(p(7),'facecolor','b');set(p(8),'facecolor','b');62、set(p(9),'facecolor','r');set(p(10),'facecolor','k');63、64、%»-³öͼÐÎ65、for m=1:500066、for n=1:num67、if n<=968、set(p(n),'xdata',r(n)*X+x(m,n),'ydata',r(n)*Y+y(m,n),'zdata',r(n)*Z+z(m,n));%ËùÓеļ´Ê±Î»ÖÃ69、else70、set(p(n),'xdata',r(n)*X+x(m,n)+x(m,3),'ydata',r(n)*Y+y(m,n)+y(m,3),'zdata',r(n)*Z+z(m,n)+z(m,3));71、set(pmuw(n-9),'xdata',x(:,n)+x(m,3),'ydata',y(:,n)+y(m,3),'zdata',z(:,n)+z(m,3));72、end73、end74、75、for n=1:length(runa)76、set(ph(n),'xdata',hx(:,n)+x(m,6),'ydata',hy(:,n)+y(m,6),'zdata',hz(:,n)+z(m,6));%¹â»·¼´Ê±Î»ÖÃ77、end78、79、pause(pausetime); %ÔÝÍ£Ò»»á80、drawnow81、end2、分块诠释(1)这是初始的设置,包括一些必要数据的设置以及后面要用到的参数的设置。
11自动控制原理MATLAB实验指导书

实验一 典型环节的MATLAB 仿真一、实验目的1.熟悉MATLAB 桌面和命令窗口,初步了解SIMULINK 功能模块的使用方法。
2.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
3.定性了解各参数变化对典型环节动态特性的影响。
二、SIMULINK 的使用MATLAB 中SIMULINK 是一个用来对动态系统进行建模、仿真和分析的软件包。
利用SIMULINK 功能模块可以快速的建立控制系统的模型,进行仿真和调试。
1.运行MATLAB 软件,在命令窗口栏“>>”提示符下键入simulink 命令,按Enter 键或在工具栏单击按钮,即可进入如图1-1所示的SIMULINK 仿真环境下。
2.选择File 菜单下New 下的Model 命令,新建一个simulink 仿真环境常规模板。
3.在simulink 仿真环境下,创建所需要的系统。
以图1-2所示的系统为例,说明基本设计步骤如下:1)进入线性系统模块库,构建传递函数。
点击simulink 下的“Continuous ”,再将右边窗口中“Transfer Fen ”的图标用左键拖至新建的“untitled ”窗口。
2)改变模块参数。
在simulink 仿真环境“untitled ”窗口中双击该图标,即可改变传递函数。
其中方括号内的数字分别为传递函数的分子、分母各次幂由高到低的系数,数字之间用空格隔开;设置完成后,选择OK ,即完成该模块的设置。
图1-1 SIMULINK 仿真界面 图1-2 系统方框图3)建立其它传递函数模块。
按照上述方法,在不同的simulink 的模块库中,建立系统所需的传递函数模块。
例:比例环节用“Math ”右边窗口“Gain ”的图标。
4)选取阶跃信号输入函数。
用鼠标点击simulink 下的“Source ”,将右边窗口中“Step ”图标用左键拖至新建的“untitled ”窗口,形成一个阶跃函数输入模块。
如何在MATLAB中进行模拟实验

如何在MATLAB中进行模拟实验在科学研究和工程设计中,模拟实验是一种常用的工具。
通过在计算机中运行虚拟的实验环境,模拟实验可以帮助研究人员更好地理解问题的本质、验证理论模型的有效性以及预测系统的行为。
MATLAB作为一种强大的数值计算和工程仿真软件,其具备了丰富的工具箱和函数库,能够方便地进行各种模拟实验。
本文将介绍一些常见的MATLAB模拟实验方法和技巧,希望能够帮助读者更好地应用MATLAB进行科研和工程实践。
首先,我们来介绍一下在MATLAB中进行物理仿真的方法。
物理仿真是一种基于物理模型的模拟实验方法,通过对系统的物理规律进行建模和求解,可以模拟出系统的运动轨迹、受力情况等。
在MATLAB中,可以利用一个强大的工具箱——Simulink来进行物理仿真实验。
Simulink是一种基于图形化界面的系统仿真工具,它可以将复杂的系统模型分解成多个子模块,并通过连接这些子模块的信号来构建整个系统模型。
Simulink提供了丰富的组件库,其中包含各种传感器、执行器、控制器等元件,可以方便地构建系统模型。
在构建好系统模型后,通过设置模型的参数和初始条件,并选择合适的仿真方法,就可以进行仿真实验了。
Simulink中的仿真结果可以以图形或数据的形式展示,为科研和工程分析提供了重要的依据。
除了物理仿真外,MATLAB还可以进行电路仿真实验。
在电子电路设计和分析中,MATLAB提供了一种强大的工具箱——电路设计工具箱,可以帮助研究人员模拟和分析各种电子电路。
电路设计工具箱提供了各种电子元件的模型,包括电阻、电容、电感、二极管、晶体管等,可以用来构建完整的电子电路模型。
在构建好电路模型后,可以通过设置元件的参数,并选择合适的交流或直流分析方法进行仿真实验。
仿真结果可以帮助研究人员验证电路设计的正确性,分析电路中各个元件的功耗、电压和电流等信息,以及优化电路的性能。
不仅如此,MATLAB还提供了丰富的数学建模和优化工具箱,可以在MATLAB中进行数学和最优化的模拟实验。
如何在MATLAB中进行模拟实验设计

如何在MATLAB中进行模拟实验设计一、引言随着科技的飞速发展,模拟实验在各个领域的应用越来越广泛。
而MATLAB作为一种功能强大的数学软件,给实验设计带来了许多便利。
本文将介绍如何在MATLAB中进行模拟实验设计,帮助读者更好地利用这一工具进行科研研究。
二、实验设计的重要性在科学研究中,实验设计起着至关重要的作用。
一个良好的实验设计可以帮助研究人员准确地获得实验结果,进而推导出科学规律或发现新的知识。
而模拟实验作为一种辅助工具,可以帮助研究人员在实验前进行系统地预测和探索。
三、MATLAB的基本功能在开始进行模拟实验设计之前,我们需要了解一些MATLAB的基本功能。
MATLAB是一种面向数值计算和可视化的高级编程语言和环境。
它的功能非常强大,并且由于其简单易用的特点,也得到了广泛的应用。
在MATLAB中,我们可以进行数值计算、数据处理、绘图等操作,这些都为模拟实验提供了良好的基础。
四、构建模型在模拟实验中,首先我们需要构建一个模型。
模型是对实际问题或现象的抽象和简化,通过建立数学方程或算法来描述。
在MATLAB中,我们可以利用其强大的数值计算功能来构建模型。
以抛物线运动为例,我们可以利用MATLAB中的运动学方程来描述抛物线的运动轨迹。
通过引入时间变量t,位置变量x和y,以及速度变量v和加速度变量a,我们可以建立如下的模型:x = v*t;y = (1/2)*a*t^2;通过这个简单的模型,我们就可以预测在给定初速度和加速度的情况下,抛物线的运动轨迹。
五、参数设置在进行模拟实验设计时,我们需要设置一些参数。
参数可以看作是模型中的一些固定变量,通过改变参数的值,我们可以观察模型在不同条件下的行为。
在MATLAB中,我们可以通过创建变量来设置参数,并为其赋予不同的值。
例如,在抛物线模型中,我们可以设置初速度v和加速度a的值,然后观察在不同参数下抛物线的轨迹变化。
六、实验结果分析在模拟实验设计中,我们需要对实验结果进行分析和解释。
matlab 模拟 实验报告

matlab 模拟实验报告Matlab模拟实验报告引言:Matlab作为一种功能强大的数学软件,广泛应用于科学研究和工程领域。
本文将通过模拟实验的方式,探讨Matlab在信号处理和控制系统中的应用。
一、信号处理实验在信号处理领域,Matlab提供了丰富的工具和函数,可以对各种类型的信号进行处理和分析。
我们选择了音频信号作为实验对象,通过Matlab模拟实验,探索不同的信号处理技术。
1.1 信号生成与显示首先,我们使用Matlab生成一个正弦信号,并通过plot函数将其显示出来。
代码如下:```matlabt = 0:0.001:1; % 时间范围为0到1秒,采样率为1000Hzf = 10; % 信号频率为10Hzx = sin(2*pi*f*t); % 生成正弦信号plot(t, x); % 显示信号```通过运行以上代码,我们可以在Matlab的图形界面中看到一个频率为10Hz的正弦信号波形。
1.2 信号滤波接下来,我们将对生成的正弦信号进行滤波处理,以去除其中的高频噪声。
我们使用Matlab中的滤波函数fir1来实现。
代码如下:```matlabfs = 1000; % 采样率为1000Hzfc = 100; % 截止频率为100HzN = 50; % 滤波器阶数b = fir1(N, fc/(fs/2)); % 生成滤波器系数y = filter(b, 1, x); % 对信号进行滤波plot(t, y); % 显示滤波后的信号```通过运行以上代码,我们可以观察到滤波后信号中高频成分的减弱。
二、控制系统实验在控制系统领域,Matlab提供了丰富的工具和函数,可以进行系统建模、控制器设计和系统仿真等操作。
我们选择了一个简单的控制系统作为实验对象,通过Matlab模拟实验,探索不同的控制策略。
2.1 系统建模首先,我们需要对控制系统进行建模。
假设我们的控制系统是一个带有传感器、控制器和执行器的闭环系统。
matlab仿真实训课程设计

matlab仿真实训课程设计一、课程目标知识目标:1. 理解Matlab仿真的基本原理,掌握仿真模型的构建方法;2. 学会运用Matlab进行数据可视化,分析仿真结果,并提取有效信息;3. 掌握结合课本知识,运用Matlab解决实际问题的能力。
技能目标:1. 能够独立进行Matlab仿真实验,熟练操作Matlab软件;2. 学会编写简单的Matlab程序,实现对仿真模型的参数调整和优化;3. 能够运用Matlab工具箱进行数据分析和处理,提高问题解决效率。
情感态度价值观目标:1. 培养学生对Matlab仿真的兴趣,激发学生探索科学问题的热情;2. 培养学生的团队协作意识,提高沟通与表达能力;3. 引导学生认识到仿真技术在工程领域的应用价值,树立正确的工程观念。
课程性质:本课程为选修课,旨在帮助学生掌握Matlab仿真的基本技能,提高解决实际问题的能力。
学生特点:学生具备一定的编程基础和数学知识,对Matlab软件有一定了解,但实际操作能力较弱。
教学要求:结合课本内容,注重实践操作,提高学生的动手能力,使学生在实践中掌握理论知识。
将目标分解为具体的学习成果,便于教学设计和评估。
二、教学内容1. Matlab仿真基础- 介绍Matlab软件的安装与基本操作;- Matlab编程基础,包括数据类型、流程控制、函数编写等;- 理解仿真原理,掌握仿真模型构建的基本方法。
2. 数据可视化与分析- 学会使用Matlab进行数据可视化,如二维、三维图形绘制;- 掌握曲线拟合、插值、图像处理等数据分析方法;- 结合课本案例,进行实际操作练习。
3. 仿真实验与问题求解- 根据课本内容,选择合适的问题进行Matlab仿真实验;- 学会调整仿真模型参数,优化实验结果;- 分析实验数据,提取有效信息,解决实际问题。
4. 工具箱应用- 介绍Matlab常用工具箱,如信号处理、控制系统、神经网络等;- 学会运用工具箱进行数据分析和处理,提高问题解决效率;- 结合课本案例,进行实际应用练习。
如何利用Matlab进行模拟和仿真实验

如何利用Matlab进行模拟和仿真实验Matlab是一种功能强大的数学计算和数据可视化软件。
它不仅可以进行数学模拟和仿真实验,还可以处理数据、绘制图表和实施算法。
在工程、物理学、生物学等领域,Matlab被广泛用于解决各种实际问题。
本文将介绍如何利用Matlab进行模拟和仿真实验,并探讨其在实验设计和结果分析中的应用。
一. Matlab的基本功能Matlab具有很多基本功能,如矩阵操作、数值计算、符号计算等。
这些功能使得Matlab成为进行模拟和仿真实验的理想选择。
在Matlab中,可以定义和操作矩阵,进行线性代数运算,如求解方程组、矩阵求逆等。
此外,Matlab还提供了许多内置函数,可以进行数值计算和符号计算,如求解微分方程、积分、数值优化等。
二. 模拟实验的设计在进行模拟实验之前,首先需要设计实验方案。
实验设计包括选择合适的模型和参数设置,确定实验变量和观测指标等。
在Matlab中,可以使用函数或脚本来定义模型和参数,通过修改参数值来观察实验结果的变化。
比如,可以使用Matlab的模型库来选择合适的模型,然后使用函数传入参数值进行求解。
此外,Matlab还提供了绘图功能,可以绘制实验结果的图表,以便更直观地分析数据。
三. 仿真实验的实施在设计好实验方案后,就可以开始进行仿真实验了。
在Matlab中,可以使用已定义的模型和参数进行仿真计算。
可以通过Matlab的编程功能来实现计算过程的自动化。
比如,可以使用循环语句来迭代计算,以观察参数变化对结果的影响。
此外,Matlab还提供了随机数生成和统计分析函数,可以用于生成随机变量和分析实验数据。
四. 实验结果的分析在完成仿真实验后,需要对实验结果进行分析。
Matlab提供了丰富的数据处理和分析工具,可以对实验数据进行统计分析、绘图和可视化展示。
可以使用Matlab的数据处理函数来计算均值、标准差、相关系数等统计指标。
此外,Matlab还可以通过绘图函数来绘制直方图、散点图、线图等图形,以便更好地理解和展示数据。
matlab仿真实验报告

matlab仿真实验报告Matlab仿真实验报告引言:Matlab是一种广泛应用于科学和工程领域的数值计算软件,它提供了强大的数学和图形处理功能,可用于解决各种实际问题。
本文将通过一个具体的Matlab 仿真实验来展示其在工程领域中的应用。
实验背景:本次实验的目标是通过Matlab仿真分析一个电路的性能。
该电路是一个简单的放大器电路,由一个输入电阻、一个输出电阻和一个放大倍数组成。
我们将通过Matlab对该电路进行仿真,以了解其放大性能。
实验步骤:1. 定义电路参数:首先,我们需要定义电路的各个参数,包括输入电阻、输出电阻和放大倍数。
这些参数将作为Matlab仿真的输入。
2. 构建电路模型:接下来,我们需要在Matlab中构建电路模型。
可以使用电路元件的模型来表示电路的行为,并使用Matlab的电路分析工具进行仿真。
3. 仿真分析:在电路模型构建完成后,我们可以通过Matlab进行仿真分析。
可以通过输入不同的信号波形,观察电路的输出响应,并计算放大倍数。
4. 结果可视化:为了更直观地观察仿真结果,我们可以使用Matlab的图形处理功能将仿真结果可视化。
可以绘制输入信号波形、输出信号波形和放大倍数的变化曲线图。
实验结果:通过仿真分析,我们得到了以下实验结果:1. 输入信号波形与输出信号波形的对比图:通过绘制输入信号波形和输出信号波形的变化曲线,我们可以观察到电路的放大效果。
可以看到输出信号的幅度大于输入信号,说明电路具有放大功能。
2. 放大倍数的计算结果:通过对输出信号和输入信号的幅度进行计算,我们可以得到电路的放大倍数。
通过比较不同输入信号幅度下的输出信号幅度,可以得到放大倍数的变化情况。
讨论与分析:通过对实验结果的讨论和分析,我们可以得出以下结论:1. 电路的放大性能:根据实验结果,我们可以评估电路的放大性能。
通过观察输出信号的幅度和输入信号的幅度之间的比值,可以判断电路的放大效果是否符合设计要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验十MATLAB模拟
一.实验目的
掌握应用matlab进行离散事件的蒙特卡罗方法模拟的一般原理和过程。
二.实验原理和方法
1.模拟的概念:模拟就是利用物理的、数学的模型来类比、模仿现实系统及其演变过程,以寻求过程规律的一种方法。
模拟的基本思想是建立一个试验模型,这个模型包含所研究系统的主要特点.通过对这个实验模型的运行,获得所要研究系统的必要信息。
2.数学模拟:在一定的假设条件下,运用数学运算模拟系统的运行,称为数学模拟。
现代的数学模拟都是在计算机上进行的,称为计算机模拟。
在实际问题中,面对一些带随机因素的复杂系统,用分析方法建模常常需要作许多简化假设,与面临的实际问题可能相差甚远,以致解答根本无法应用。
这时,计算机模拟几乎成为唯一的选择。
蒙特卡洛(Monte Carlo)方法是一种应用随机数来进行计算机模拟的方法.此方法对研究的系统进行随机观察抽样,通过对样本值的观察统计,求得所研究系统的某些参数.
例1.在我方某前沿防守地域,敌人以一个炮排(含两门火炮)为单位对我方进行干扰和破坏.为躲避我方打击,敌方对其阵地进行了伪装并经常变换射击地点.
经过长期观察发现,我方指挥所对敌方目标的指示有50%是准确的,而我方火力单位,在指示正确时,有1/3的射击效果能毁伤敌人一门火炮,有1/6的射击效果能全部消灭敌人.
现在希望能用某种方式把我方将要对敌人实施的20次打击结果显现出来,确定有效射击的比率及毁伤敌方火炮的平均值。
分析:这是一个概率问题,可以通过理论计算得到相应的概率和期望值.但这样只能给出作战行动的最终静态结果,而显示不出作战行动的动态过程.
为了能显示我方20次射击的过程,现采用模拟的方式。
1.问题分析:需要模拟出以下两件事:
[1] 观察所对目标的指示正确与否
模拟试验有两种结果,每一种结果出现的概率都是1/2.
[2] 当指示正确时,我方火力单位的射击结果情况
模拟试验有三种结果:毁伤一门火炮的可能性为1/3(即2/6),毁伤两门的可能性为1/6,没能毁伤敌火炮的可能性为1/2(即3/6).
2. 符号假设
i:要模拟的打击次数;k1:没击中敌人火炮的射击总数;
k2:击中敌人一门火炮的射击总数;k3:击中敌人两门火炮的射击总数.E:有效射击比率;E1:20次射击平均每次毁伤敌人的火炮数.
3.流程框图:
4. 模拟结果
从以上模拟结果可计算出: E =7/20=0.35 20
22012001⨯+⨯+⨯
=E =0.5 5. 理论计算
设:⎩⎨⎧=观察所对目标指示正确
确观察所对目标指示不正
10j
A 0:射中敌方火炮的事件;A 1:射中敌方一门火炮的事件; A 2:射中敌方两门火炮的事件. 则由全概率公式:
E = P(A 0) = P(j=0)P(A 0∣j=0) + P(j=1)P(A 0∣j=1) =
25.02
1
21021=⨯+⨯ P(A 1) = P(j=0)P(A 1∣j=0) + P(j=1)P(A 1∣j=1) =
6
13121021=⨯+⨯ P(A 2) = P(j=0)P(A 2∣j=0) + P(j=1)P(A 2∣j=1)
=
1216121021=⨯+⨯ E 1 = 33.012
1
2611≈⨯
+⨯ 6. 结果比较
理论计算和模拟结果的比较
虽然模拟结果与理论计算不完全一致,但它却能更加真实地表达实际战斗动态过程.
用蒙特卡洛方法进行计算机模拟的步骤:
[1] 设计一个逻辑框图,即模拟模型.这个框图要正确反映系统各部分运行时的逻辑关系。
[2] 模拟随机现象.可通过具有各种概率分布的模拟随机数来模拟随机现象.
产生模拟随机数的计算机命令
在Matlab软件中,可以直接产生满足各种分布的随机数,命令如下:
1.产生m n阶[a,b]均匀分布U(a,b)的随机数矩阵:
unifrnd (a,b,m, n)
产生一个[a,b]均匀分布的随机数:unifrnd (a,b)
2.产生m n阶[0,1]均匀分布的随机数矩阵:rand (m, n)
产生一个[0,1]均匀分布的随机数:rand
3.产生m⨯n阶均值为μ,方差为σ的正态分布的随机数矩阵:
normrnd (μ,σ,m, n)
4.产生m⨯n阶参数为λ的帕松分布的随机数矩阵:poissrnd (λ,m, n)
三.试验内容:
在某商店有一个售货员,顾客陆续来到,售货员逐个地接待顾客.当到来的顾客较多时,一部分顾客便须排队等待,被接待后的顾客便离开商店.设:1.顾客到来间隔时间服从参数为0.1的指数分布.
2.对顾客的服务时间服从[4,15]上的均匀分布.
3.排队按先到先服务规则,队长无限制.
假定一个工作日为8小时,时间以分钟为单位。
[1]模拟一个工作日内完成服务的个数及顾客平均等待时间t.
[2]模拟100个工作日,求出平均每日完成服务的个数及每日顾客的平均等待时间。