-
启动matlab,新建一个函数文件。
-
在弹出的编辑窗口中输入如下代码。该代码的目的是创建蒙特卡洛主函数。
function s =monte_carlo(a,b,n)
t=rand(1,n);
x=a+(b-a)*t;
s=sum(monte_carlo_f(x));
s=s*(b-a)/n
end
-
保存该函数文件。
-
再建立一个函数文件,输入代码如下。该代码的目的是构造积分函数。
function f =monte_carlo_f(x)
f=x.^2+cos(x);
end
-
保存上面的积分函数文件。
-
在命令行窗口中直接调用该函数,求得的结果如图所示。
-
下面的命令主要是绘制出积分区域。
x=-0.5:0.01:1.5;
y=x.^2+cos(x);
plot(x,y)
axis([-0.5 1.5 0 2.5]);
hold on;
x1=0:0.01:1;
y1=x1.^2+cos(x1);
area(x1,y1)
grid on
-
可以从下图中看到积分区域如图所示。
-
由于蒙特卡洛是通过抽样来解决问题,可以看到没次求解,结果都不一样,但是差别并不大,最后一次还将抽样数提高了一个数量级,结果相差还是并不大。