实验内容 | 1.(简答题) 某箱中有28个红球与49个黑球,从中任取5球,则取得2红3黑的概率为多少?(写出随机模拟M程序,并模拟与理论结果比较) 2. (简答题) 袋中有a个红球与b个黑球,甲乙轮流在口袋中摸球,每次摸得一球且不放回,则在以下情形下甲先取得红球的概率为多少?(1)a=10,b=10;(2)a=6,b=8(写出随机模拟M程序,并模拟与理论结果比较) 3. (简答题) 使用随机模拟方法计算圆周率。(写出随机模拟M程序) 4. (简答题) 青菜的购进价:2.2元/斤,零售价:3.5元/斤,处理价:1.2元/斤。若每天卖出的青菜服从N(320,28^2)的正态分布,问每天应该购进多少斤青菜可以使得收益最大?(写出随机模拟M程序,并模拟与理论结果比较) 5. (简答题) 随机模拟求解全局最优化问题,求解以下函数的最大值。f(x)=(1-x³)sin(3x),x∈(-2π,2π)。(写出详细的求解M程序,并展示求解结果) |
实 验 步 骤、过 程
1.
解:引入77个数1~77,其中1~28表示红球,29~77表示黑球。将这77个数组成的向量随机打乱1e+5次,形成一个(1e+5)*77的数组。在这个数组中任意选取5列,(不妨选前五列)设其中满足“1~28的个数=2 且 29~78的个数=3”的有C组,则所求的概率为P=C/100000。
编制函数文件:
s=zeros(1e+5,5);
for k=1:1e+5
s(k,:)=randperm(77,5);
end
A1=sum(s<29,2);
A2=sum(s>=29,2);
C=A1==2 & A2==3;
P=sum(C)/100000
2.(1)
编制函数文件:
m=1000;
n=20;%红球是1到10,黑球是11到20
c=20;
p=0;
for t=1:m
k1=0;%甲红球次数
k2=0;%甲黑球次数
k3=0;%乙红球
k4=0;%乙黑球
for a=1:c
x=randperm(c);%将20个数打乱位置
if x(1,1)<=10
k1=k1+1;
end
if x(1,2)<=10
k3=k3+1;
end
x(1:2)=[];%默认第一个数是甲的,第二个数是乙的
if k1==1
p=p+1
break%甲抽到红球跳出循环
end
if k3==1
break
end
end
end
pp=p/m
(2)
编制函数文件:
m=1000;
n=14;%红球是1到6,黑球是7到14
c=14;
p=0;
for t=1:m
k1=0;%甲红球次数
k2=0;%甲黑球次数
k3=0;%乙红球
k4=0;%乙黑球
for a=1:c
x=randperm(c);%将14个数打乱位置
if x(1,1)<=6
k1=k1+1;
end
if x(1,2)<=8
k3=k3+1;
end
x(1:2)=[];%默认第一个数是甲的,第二个数是乙的
if k1==1
p=p+1
break%甲抽到红球跳出循环
end
if k3==1
break
end
end
end
pp=p/m
3.
编制函数文件:
n=1000000;
a=rand(n,1);
%必须用rand指令而不能用randn指令因为产生的随机数必须是均匀的
b=rand(n,1);
c=find(a.^2+b.^2<=1);
d=length(c);
pi=d/n*4
4.
编制函数文件:
function[number ,val]=su(a,b,c,mu,sigma,n)
%报童问题,a售出价格,b进购价格,c退回价格
%mu、sigma分别表示正态分布的期望与根方差,n表示生成随机向量维数号number为最优值,,val为平均收益
v1=round(normrnd(mu,sigma,[1,n]));
v2=(mu-3*sigma):(mu+3*sigma);
m=length(v2);
v3=zeros(1,m);
for i=1:m
x=v2(i);
ss=0;
for j=1:n
y=v1(j);
if x<=y
ss=ss+(a-b)*x;
else
ss=ss+y*(a-b)-(x-y)*(b-c);
end
end
v3(i)=ss;
end
v3=v3/n;
test=v3(1);
tt=1;
for i=2:m
if test<v3(i);
test=v3(i);
tt=i;
end
end
number=v2(tt);
val=test;
在命令行输入
>> [x1,x2]=su(3.5,2.2,1.2,320,28,100000)
5.
在命令行输入
>> x=unifrnd(-2*pi,2*pi,10000,1);
>> f=-(1-x.^3).*sin(3.*x);
>> fmax=max(f)
答案供参考,如有错误请自行改正,本人只是随意分享之前的作业,代码均来源于网络+个人稍微修改,认为有用可参考哈~