数学建模实验4 联系客服

发布时间 : 星期二 文章数学建模实验4更新完毕开始阅读c86d2853670e52ea551810a6f524ccbff121ca2a

数学建模实验4

1、上机实现蒙特卡洛随机方法计算圆周率近似值的程序,并对计算结果作出分析。

可以采用蒲丰投针的方法计算π的值: 解答过程:

(1) 蒲丰投针问题:在平面上画一些平行线,使他们的间距都为a,向此平面

2l投一长度为l的针(l

a?=

2l。利用该方法可以计算π的值,具体方法是:投针N次,算出与平apn,带入上式可以计算出π的值。 N(2) 用Matlab软件进行模拟实验,即用Matlab编写程序来进行“蒲丰投针实

验”。基本原理:由于针投到平面上时有各种不同的方向和位置,但是每一次投针时,其位置和方向都可以用两个量来唯一确定,就是针的中点和偏离的水平的角度,于是我们可以生成两个n*1的随机矩阵,分别设为x和y,x表示此时针的中点位置,y表示此时针偏离水平方向的角度,当x<0.5*l*sin(y)时可以认为针和横线相交,只要随机产生n对这样的x,y就可以模拟n次投针试验,然后统计x<0.5*l*sin(y)时x的个数,就可以认为是相交的次数,然后利用公式来计算。 (3) Matlab编程

function PI=P_Buffon(a,l,n); If l>a error

return ;end;

x=unifrnd(0,a/2,[n,1]); f=unifrnd(0,pi,[n,1]); m=sum(y)

PI=vpa(2*l*n/(a*m)); (4)计算结果分析: 实验数据如下 L a 投针次数 相交次数 π的值 0.5 1 10000 3080 3.24653 100000 31570 3.16756 1000000 318125 3.14342 5000000 1590912 3.14285 0.55 1 5000000 1749593 3.14359 0.6 5000000 1908733 3.14345 0.65 5000000 2070039 3.140037 0.7 5000000 2227800 3.142113 0.75 5000000 2387434 3.141448 0.8 5000000 2547718 3.140064 行线相交的n次,p=

1)由数据可以看出,当l和a为定值,而次数改变时,相交次数也会改变,相交次数与投掷次数有个近似的线性关系,这个关系就是P,即相交的概率,但是n越大,对结果只是变化减小,n越大,并不会使得结果越准确。

2)由上面的实验数据第二部分可知,当间距和n(投掷次数)不变时,针长越大或是越小,都会越偏离π的真实值,一般来说,a可能在[0.65*l,0.8*l]之间时,会接近真实结果一些

2、甲,乙两公司通过广告来竞争销售商品的数量,广告费用分别是x和y。设甲乙公司商品的销售量中占的份额,是它们的广告费中所占的份额的函数

?x??y???f?和f?x?y??x?y??.又设公司的收入与售量成正比,从收入中扣除广告费即为????公司的利润。试构造模型的图形,并讨论甲公司怎么确定广告费才能使利润最大。

x,则f(t)+f(1-t)=1.画出f(t)的示意图。 x?y(1)令t=

(2)写出甲公司利润的表达式p(x).对于一定的y,使p(x)最大的x的最优值应满足什么关系。用图解法确定这个最优值。 解答过程:

(1)由f(t)+f(1-t)=1可得:f(t)是以(1/2,1/2)为中心对称图形。如图所示

其中设实线曲线为f(t)函数的图像。

x)-x,a为常数,下面求p(x)的最大值的x?y(2)设甲公司的利润为p(x)=af(最大值点x*:

y?1?由p’(x)=0可得f’(x*)=??,记c是任意常数,则曲线g(t)与f(t)

a?1?t*?*

2x*

相切的那条曲线为的切点坐标为t,则t=*,如图所示:

x?y

*

*

x,在曲线上找一点M,使其横坐标x*>y,使过M点的切a*

线平行于h(x),x即为所求,如图所示:

在f(t)~t图形中作h(x)=