- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
Matlab作业习题与答案详解(附程序)
clearall;clc;closeall;
x=-10:0.01:20;
y=4*sin(x)./x;
ymin=min(y)
二、蒙特卡罗算法的数值计算
当前的油位高度是2.3米,见图1。模拟油流进储油罐的过程(图
维数任选),请计算罐内油量。三维的效果图参见图2。储油罐由两部
分组成,中间是圆柱体,两端是球罐体。(本题简化自2011年
UCMCMA题《储油罐的变位识别与罐容表标定》,细节参见原题原
题附件2cumcm2010A.doc。)
图1
图2
主程序:
clc;
clearall;
closeall;
center1=[-3.375,0,1.5];%左球罐中心center2=[3.375,0,1.5];%
右球罐中心
n=10000;%每次的撒点数
delta=0.02;%层高
h=3;
en=h/delta;
Show;%画出油罐
fori=0:en-1
x=(rand(1,n)-0.5)*10;%随机生成n个点
y=(rand(1,n)-0.5)*h;
z=(rand(1,n)*delta+i*delta);
Z=[x;y;z];
[dis1
dis2]=juli(center1,center2,Z);%算出各点对应的距离
index=find(((x-4x4)dis21.5)|(x-
4|x4)dis11.625);%找出在罐内的点
plot3(x(index),y(index),z(index),.k);%画出在罐内的点
drawnow
end
子程序1:
function[dis1dis2]=juli(a,b,q)
d11=q(1,:)-a(1);
d12=q(2,:)-a(2);
d13=q(3,:)-a(3);
d1=sqrt(d11.^2+d12.^2+d13.^2);
d21=q(1,:)-b(1);
d22=q(2,:)-b(2);
d23=q(3,:)-b(3);
d2=sqrt(d21.^2+d22.^2+d23.^2);
d1(d1d2)=d2(d1d2);
dis1=d1;
dis2=sqrt(d12.^2+d13.^2);
子程序2:
functiontu=Show
%===圆柱部分==
figure(color,w)
h=3;
y=3/2*cos(s);
z=3/2*sin(s)+1.5;
x=t;
ezmesh(x,y,z,[0pi*2-44]);
axisequal
hiddenoff
holdon
%===左罐部分==
z=cos(s)*(2.6406-t.^2).^(1/2)+1.5;y=sin(s)*(2.6406-
t.^2).^(1/2);
x=t-3.375;
ezmesh(x,y,z,[0pi*2-1.625-0.625]);
axisequal
hiddenoff
holdon
%===右罐部分===
z=cos(s)*(2.6406-t.^2).^(1/2)+1.5;
y=sin(s)*(2.6406-t.^2).^(1/2);
x=t+3.375;
ezmesh(x,y,z,[0pi*20.6251.625]);
colormap(gray)
axisequal
文档评论(0)