用蒙特卡洛计算积分文档格式.docx
《用蒙特卡洛计算积分文档格式.docx》由会员分享,可在线阅读,更多相关《用蒙特卡洛计算积分文档格式.docx(9页珍藏版)》请在冰豆网上搜索。
n=1000;
a=(pi)/2*rand(1,n);
fori=1:
n
b(i)=(pi)/2*a(i)*sin(a(i));
end
c(t)=mean(b);
c
mean((c-true).*(c-true))
结论
当N为200时计算的值分别为
c=
Columns1through8
1.07770.86191.06771.01511.03111.02910.96750.9751
Columns9through16
0.95020.96720.92710.94160.98991.08541.01750.9739
Columns17through24
0.96121.05550.95261.03751.02331.03610.96940.9995
Columns25through32
1.05380.99411.01141.05761.10290.92441.08310.9029
Columns33through40
1.03290.89191.03620.98080.97241.02331.03860.9858
Columns41through48
0.97040.98250.97411.10601.05210.87511.06420.9985
Columns49through50
0.99150.9792
ans=
0.0032
当N为500时计算的值分别为
0.96140.97480.96870.96461.04410.98160.88641.0066
0.96730.98971.05020.97131.02771.00711.02521.0193
1.02360.98990.98830.99831.03000.92591.03850.9855
1.00571.00561.09181.03270.96011.02320.98061.0470
1.05050.99451.02871.03171.02481.03161.02481.0013
0.98630.96960.99931.02071.03331.06181.07051.0144
0.94541.0030
0.0014
当N为1000时计算的值分别为
1.00360.99880.98480.95980.96530.95951.00151.0034
1.03781.02911.00061.05481.01781.02271.00870.9922
1.03890.99560.96691.01351.03921.02281.00881.0390
0.98711.02361.02451.00381.00650.97010.99181.0066
0.97900.99851.04740.97830.99971.04500.95241.0147
1.00010.99291.03840.98130.96961.00881.00850.9837
0.99381.0066
6.1578e-004
再用莱姆大为1的指数分布估计
b=exprnd(1,1,n);
if(b(i)>
0&
b(i)<
pi/2)
c(i)=b(i)*sin(b(i))*exp(b(i));
else
c(i)=0;
end
mean(c)
a(t)=mean(b);
a
mean((a-true).*(a-true))
a=
1.02240.92851.09071.05640.96231.03280.92280.9933
1.02220.93121.03150.95991.04531.06581.08170.9649
0.99710.98260.88820.94940.96741.04741.06871.0541
1.00601.16861.05890.95041.02681.03300.95791.0636
0.95170.95191.06331.04310.98550.95630.99030.9968
0.93070.97991.08111.02760.97050.86760.98111.0085
1.00980.9820
0.0025
的真值为
用拉姆大为1的指数来估计
true=sqrt(pi)/2;
c(i)=exp(-b(i)*b(i))*exp(b(i));
a(t)=mean(c);
0.87310.85770.87390.90430.88380.87240.86570.8881
0.89380.91130.89490.87570.92130.88210.90730.8923
0.87770.89290.89460.89930.84570.86430.88720.8875
0.88050.89900.88110.87930.88940.87830.88780.8769
0.86270.90530.90280.86980.88250.90200.86860.9112
0.89880.89730.89930.86810.88770.87940.88780.8926
0.89190.8751
2.2562e-004
它的真值为pi*(exp
(1)-1)=5.3981
r=sqrt(rand(1,n));
seta=2.*pi.*rand(1,n);
x=r.*cos(seta);
y=r.*sin(seta);
c(i)=pi*exp(x(i)*x(i)+y(i)*y(i));
5.50055.30365.43495.41695.41035.35955.44345.4036
5.29615.40385.40615.40205.45385.40225.36715.4742
5.45455.30345.40845.39175.37205.49105.43415.3817
5.45415.41855.38125.40765.39535.38285.44475.5184
5.39665.41735.42585.32665.41995.31245.34205.3596
5.43915.34715.44565.33455.37285.43665.44635.3684
5.33475.4452
0.0027
2用蒙特卡洛方法估计积分
的值,并对误差进行估计。
b=rand(1,1,n);
1)
c(i)=exp(b(i)*b(i));
var(a)
1.46751.45311.45911.47541.47121.47651.44611.4575
1.46291.45691.45411.46631.46051.44981.45051.4620
1.46751.47271.47721.46621.46501.45001.45461.4426
1.46351.48341.45131.45251.49111.44881.47981.4437
1.45251.47241.44571.46221.45881.44981.45041.4606
1.46311.47721.46891.46121.46991.45741.47151.4678
1.46001.4531
1.2042e-004
1.4629
c(i)=pi/sqrt(1+x(i)*x(i)*x(i)*x(i)+y(i)*y(i)*y(i)*y(i));
2.84522.83042.85012.84002.84242.84352.83252.8475
2.83902.84172.83502.84442.84172.84952.82562.8448
2.85892.84152.83642.85882.84872.85182.84262.8409
2.84402.82952.85502.84702.83772.84762.85542.8342
2.83812.85452.83952.84372.84982.84752.83192.8399
2.84922.82672.86142.84132.83812.85112.85372.8430
2.84102.8543
6.9356e-005
2.8447