当前位置:文档之家› Matlab作业习题与答案详解(附程序)

Matlab作业习题与答案详解(附程序)

clear all;clc;close all;
x=-10:0.01:20;
y=4*sin(x)./x;
ymin=min(y)
二、蒙特卡罗算法的数值计算
当前的油位高度是2.3米,见图1。

模拟油流进储油罐的过程(图维数任选),请计算罐内油量。

三维的效果图参见图2。

储油罐由两部分组成,中间是圆柱体,两端是球罐体。

(本题简化自2011年UCMCM A题《储油罐的变位识别与罐容表标定》,细节参见原题原题附件2 cumcm2010A.doc。


图1
图2
主程序:
clc;
clear all;
close all;
center1=[-3.375,0,1.5]; %左球罐中心center2=[3.375,0,1.5]; %右球罐中心
n=10000; %每次的撒点数
delta=0.02; %层高
h=3;
en=h/delta;
Show; %画出油罐
for i=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>-4&x<4)&dis2<1.5)|(x<-4|x>4)&dis1<1.625); %找出在罐内的点
plot3(x(index),y(index),z(index),'.k'); %画出在罐内的点
drawnow
end
子程序1:
function [dis1 dis2]=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(d1>d2)=d2(d1>d2);
dis1=d1;
dis2=sqrt(d12.^2+d13.^2);
子程序2:
function tu=Show
%===圆柱部分==
figure('color','w')
h=3;
y='3/2*cos(s)';
z='3/2*sin(s)+1.5';
x='t';
ezmesh(x,y,z,[0 pi*2 -4 4]);
axis equal
hidden off
hold on
%===左罐部分==
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,[0 pi*2 -1.625 -0.625]);
axis equal
hidden off
hold on
%===右罐部分===
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,[0 pi*2 0.625 1.625]);
colormap(gray)
axis equal
hold on
axis off
hidden off
三、元胞自动机的简单应用
1.简单交通流模拟
请模拟一个4车道的交通流,车辆密度为0.3,其余规则自行定义。

clc;
clear all;
close all;
A=zeros(1,n);
p1=0.5;
p2=0.4;
A(rand(1,n)<p1)=2;
A(rand(1,n)<0.9&rand(1,n)>0.5)=1;
t=0;
while t<100
Aa=A;
ne1=A([n 1:n-1]);
ne2=A([2:n 1]);
A(Aa==1&ne2==0&rand(1,n)<0.6)=0;
if A(Aa==1&ne2==0)==0
A(Aa==0&ne1==2)=1;
end
A(Aa==2&ne2==0)=0;
A(Aa==0&ne1==2)=2;
image(A*30);
drawnow
t=t+1;
pause(0.1)
2.元胞自动机模拟排队系统
(本题简化自2007年MCM B题登机问题,细节参见原题。


N1食堂快餐店老板为了更好经营生意,他请你模拟一个排队系统,以便决策。

排队系统参数如下:
表1
名称定义或参数矩阵
排队系统一条道,80个站位,即
80个元胞
80 1
到达快餐店的人群有三种可能:成人和小孩、或
没人到达
是成人的概率为0.5 是小孩的概率为0.4 没人到达的概率为0.1
速度小孩的行驶速度是的成
人的0.6倍
提示:①此题类似元胞自动机交通流模拟;
②人的速度可以用概率表示;
③效果参考(局部图):
图3
四、图论算法
图4给出了某市13个交通站点,表1列出了它们的坐标,请求出任意站点间的最短距离矩阵。

(本题简化自2011年UCMCM B题《交巡警服务平台的设置与调度》)
clc;
clear all; close all;
n=13;
dis=xlsread('dis.xls');
dis(dis>=10000000)=inf;
for k=1:n
for i=1:n
for j=1:n
if dis(i,j)>(dis(i,k)+dis(k,j));
dis(i,j)=dis(i,k)+dis(k,j);
R(i,j)=k;
end
end
end
end
第二部分提高题(选做)
一、
现有直径为4, 8, 14和 18 mm的小圆,要在长轴长60mm,短轴长34mm的椭圆中进行填充,使椭圆被覆盖的面积最大,且各小圆不能相交,试给出一个较好的方案。

(本题简化自2003年MCM B题《Gamma刀治疗方案》,细节参见原题附件5 原题.doc。


图5。

相关主题