大学数学实验之蒙特卡洛方法

上传人:桔**** 文档编号:487849029 上传时间:2023-05-16 格式:DOC 页数:22 大小:202.50KB
返回 下载 相关 举报
大学数学实验之蒙特卡洛方法_第1页
第1页 / 共22页
大学数学实验之蒙特卡洛方法_第2页
第2页 / 共22页
大学数学实验之蒙特卡洛方法_第3页
第3页 / 共22页
大学数学实验之蒙特卡洛方法_第4页
第4页 / 共22页
大学数学实验之蒙特卡洛方法_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《大学数学实验之蒙特卡洛方法》由会员分享,可在线阅读,更多相关《大学数学实验之蒙特卡洛方法(22页珍藏版)》请在金锄头文库上搜索。

1、大学数学实验之蒙特卡洛方法数学实验报告班级:序号:姓名:1问题描述I 、用蒙特卡罗方法计算以下函数在区间上的积分,并改变随机点数目观察对结果的影响。(1) y=1/(1+x), 0=x=1;( 2) y= (exp(3*x)*sin(2*x), 0=x=2 ;( 3) y=(1+x2)0.5, 0=x=2;( 4) y=(1/(2*pi)0.5)*exp(-x( i)2/2), 0=x=2;( 5) y=exp(x(i)/2)*(sin(x(i)2,0=x=2*pi;( 6) f(x,y)=exp(-x2-y2) 0=x=pi, 0=y=sin(x);II 、用蒙特卡罗法求解全局最优化及约束问

2、题并通过图形做出评论, 求下列函数的最大值。( 1) f(x)=(1-x.2).*sin(3*x),-2*pi=x=0,x1+2x2+2x3=72,10=x 2=20,x1-x2=10;( 3) f(x,y)=(X.2+2*(Y.2)+X. *Y).*exp(-X.2-Y.2), abs(x)1.5,abs(y) p=shell1(0,1,10000)p = 0.6922 p=shell1(0,1,100)p =0.7001 p=shell1(0,1,500)p = 0.6890结果分析:改变了四次随机点数,结果都趋近于 0.69 ,说明积分值约等于 0.69 ,但是点数越多,值越接近。I 、

3、(2) 使用均值估计法程序:function p=shell2(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(exp(3*x(i)*sin(2*x(i);z=z+u;endp=(b-a)*z/n;运行结果: p=shell2(0,2,1000)p =-24.4911 p=shell2(0,2,100)p =-43.8720 p=shell2(0,2,10000)p = -30.8699 p=shell2(0,2,500)p = -23.2955 p=shell2(0,2,100000)p =-30.0058结果分析:改变了 5次随机点数,结果变化较大,但是点

4、数越多,值越接近真实积分值。所以积分值近似于 -30 。 I 、(3) 使用均值估计法程序:function p=shell3(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(1+x(i)2)0.5;z=z+u;endp=(b-a)*z/n;运行结果: p=shell3(0,2,100)p =2.9293 p=shell3(0,2,1000)p = 2.9516 p=shell3(0,2,10000)p =2.9512 p=shell3(0,2,100000)p =2.9600结果分析:改变了四次随机点数,结果都趋近于 2.95 ,说明积分值约等于 2.95

5、,而且点数越多, 值越接近真实积分值。I 、(4) 使用均值估计法程序:function p=shell4(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=(1/(2*pi)0.5)*exp(-x(i)2/2);z=z+u;endp=(b-a)*z/n;运行结果: p=shell4(0,2,100000)p = 0.4783 p=shell4(0,2,10000)p =0.4777 p=shell4(0,2,1000)p = 0.4765 p=shell4(0,2,100)p = 0.4432结果分析:改变了四次随机点数,结果都趋近于 0.47 ,说明积分值约等

6、于 0.47 ,而且点数越多, 值越接近真实积分值。I 、(5) 使用均值估计法程序:function p=shell5(a,b,n)z=0;x=unifrnd(a,b,1,n);for i=1:nu=exp(x(i)/2)*(sin(x(i)2;z=z+u;endp=(b-a)*z/n;运行结果: p=shell5(0,2*pi,100)p = 22.0140 p=shell5(0,2*pi,1000)p =20.2718p=shell5(0,2*pi,10000)p =20.9394p=shell5(0,2*pi,100000)p =20.7968结果分析:改变了四次随机点数,结果都趋近于

7、 20.8 ,说明积分值约等于 20.8 ,而且点数越多, 值越接近真实积分值。I 、(6) 使用均值估计法程序:functionp=shell6(a1,b1,a2,b2,n)z=0;x=unifrnd(a1,b1,1,n);y=unifrnd(a2,b2,1,n);for i=1:nif y(i) p=shell6(0,pi,0,1,100)p = 0.4368p=shell6(0,pi,0,1,1000) p =0.3378p=shell6(0,pi,0,1,10000)p =0.3674p=shell6(0,pi,0,1,100000)p =0.3610结果分析:改变了四次随机点数,结果

8、都趋近于 0.36 ,说明积分值约等于 0.36 ,而且点数越多, 值越接近真实积分值。II 、(1) 使用蒙特卡罗法分析:将 x 在它被允许的范围内生成多个随机的数值,利用 max函数可以近似地求出结果。然后做出图像,进行结果的比较。程序:function f81(n)x=unifrnd(-2*pi,2*pi,1,n);y=(1-x.2).*sin(3*x);max(y)x=-2*pi:0.001:2*pi;y=(1-x.2).*sin(3*x);plot(x,y)xlabel(x);ylabel(y);运行结果: f81(1000) ans =32.3293 f81(10000) ans

9、=32.4002 f81(100000) ans =32.4006做出函数的图像,并且标出最高点的值结果分析:可以看到,蒙特卡罗法求出的最大值接近于 32.4 ,而从图中可以看出最大值是 32.33 ,求出的结果比较符合。II 、(2) 使用均值估计法分析:由于 x1=x2+10, 所以可以消元,使其变为两个自变量 x2和x3。 x2,x3 在它们被允许的范围内生成多个随机的数值,利用 max函数可以近似地求出结果。然后做出图像,进行结果的比较。程序:function f82(n)x2=unifrnd(10,20,1,n);x1=10+x2;x3=unifrnd(-10,20,1,n);for

10、 i=1:nif-x1(i)+2*x2(i)+2*x3(i)=0ifx1(i)+2*x2(i)+2*x3(i)=72y(i)=(x1(i)*(x2(i)*(x3(i);endendendmax(y)x2=10:0.1:20;x3=-5:21/100:16;X,Y=meshgrid(x2,x3);err1 = X+2*Y62;X(err1) = nan;Y(err2) = nan;surf(X,Y,Z)运行结果: f82(1000) ans =3.3889e+03 f82(10000)ans =3.4357e+03 f82(100) ans =3.3726e+03 f82(100000) ans =3.4441e+03结果分析:可以看到,蒙特卡罗法求出的最大值接近于 3400 ,而从图中可以看出最大值是 3437 ,求出的结果比较符合。II 、(3) 使用蒙特卡罗法分析: x,y 在它们被允许的范围内生成多个随机的数值,利用 max函数可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 演讲稿/致辞

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号