Matlab课程设计报告.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab课程设计报告 Matlab课程设计报告全文共4页,当前为第1页。Matlab课程设计报告 Matlab课程设计报告全文共4页,当前为第1页。 课程名称:MATLAB通信工程仿真 设计题目:基于蒙特卡洛下的正三角形面积算法 姓名: 专业班级: 所在学院: 学校: 时间: 蒙特卡洛计算图形面积的原理 设想有一袋豆子,把豆子均匀地朝图形上撒(假定豆子都在一个平面上,相互之间没有重叠),然后数这个图形之中有多少颗豆子,得出豆子数目就是图形面积。当豆子越小,散得越多、越均匀的时候,结果就越精确。以数学语言来描述就是:对于求平面上一个边长为1的正方形的内部一个形状不规则的“图形”面积,Monte Carlo方法为:向该正方形均匀地随机投掷M个点,如果其中有N个点落于“图形”内,则该“图形”的面积近似为N/M。投掷的点数越多,结果越准确。 数学模型 如图一所示,可以很容易得到一个边长为1的正三角形的面积: Matlab课程设计报告全文共4页,当前为第2页。 图一 正三角形面积求解 图二 用Monte Carlo方法求正三角形面积 Matlab课程设计报告全文共4页,当前为第2页。 设有两个相互独立的随机变量,,服从上均匀分布。那么,由它们所确定的坐标点是均匀分布于半径为的一个圆区域中,又该圆内的正三角形的边长为1,如图二所示。显然,坐标点落入正三角形中的概率等于该正三角形的面积与圆的面积的比,即: 因此,只要通过随机试验统计出落入正三角形中的频度,即可计算出正三角形的近似面积来。当随机试验的次数充分大的时候,计算结果就趋近于理论真值。 仿真试验 其实现的MATLAB程序代码如下: clear all; s=0:0.01:2*pi; x=sin(s); y=cos(s); n=3; Matlab课程设计报告全文共4页,当前为第3页。r=sqrt(3)/3; Matlab课程设计报告全文共4页,当前为第3页。 theta = (0:1/n:1)*2*pi; [x,y]=pol2cart(theta,r); m=0; x1=2*r*rand(999,1)-r; y1=2*r*rand(999,1)-r; index=find(x1.^2+y1.^2r.^2); x1(index)=[]; y1(index)=[]; N=999; for n=1:N p1=x1(1:n); q1=y1(1:n); if (y1(n)(-sqrt(3)/3).*x1(n)+1/3)(y1(n)(sqrt(3)/3).*x1(n)-1/3)-sqrt(3)/6y1(n)sqrt(3)/3 m=m+1; end plot(p1,q1,.,x,y); axis equal; axis([-1 1 -1 1]); text(-0.5,-0.6,[试验总次数n=,num2str(n)]); text(-0.5,-0.7,[落入正三角形的数目m=,num2str(m)]); text(-0.5,-0.8,[近似正三角形面积S`=,num2str(m/n)]); set(gcf,DoubleBuffer,on); drawnow; End Matlab课程设计报告全文共4页,当前为第4页。 图三 Monte Carlo方法随机试验计算正三角形面积的过程 Matlab课程设计报告全文共4页,当前为第4页。 程序执行中,将动态显示随机落点情况和当前的统计计算结果。图三为重复落点999次的计算结果。随着试验次数增加,计算结果将趋近于边长为1的正三角形的面积0.4330127。 动画模式适合于原理演示。但是,如果要提高程序效率,就应该取消仿真过程中的可视化显示,并利用MATLAB的矩阵运算机制来改造程序。下面的程序将随机试验次数提高到了1000万次,计算得到的结果精度提高到了小数点后大约2位。程序中同时使用了矩阵运算机制和循环结构来负责完成重复随机试验,其目的是为了兼顾计算速度和程序内存占用量。矩阵运算是一种并行计算机制,计算速度快,但是矩阵越大,内存占用就越多;而循环结构则可重复使用相同的内存区域,尽管速度较慢。这是MATLAB语言固有的特点,在编程中因当就具体问题作出权衡。 tic n=10000; r=sqrt(3)/3 for k=1:1000 x1=2*r*rand(999,1)-r; y1=2*r*rand(999,1)-r; index=find(x1.^2+y1.^2r.^2); x1(index)=[]; y1(index)=[]; m(k)=sum((y1(-sqrt(3)/3).*x1+1/3)(y1(sqrt(3)/3).*x1-1/3)(-sqrt(3)

文档评论(0)

武松 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档