• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

蒙特卡罗算法求积分(matlab)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
  1. 下面以一个具体的例子来说明,所求积分如图所示。

  2. 启动matlab,新建一个函数文件。

  3. 在弹出的编辑窗口中输入如下代码。该代码的目的是创建蒙特卡洛主函数。

    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

     

  4. 保存该函数文件。

  5. 再建立一个函数文件,输入代码如下。该代码的目的是构造积分函数。

    function f =monte_carlo_f(x)
    f=x.^2+cos(x);
    end

     

  6. 保存上面的积分函数文件。

  7. 在命令行窗口中直接调用该函数,求得的结果如图所示。

  8. 下面的命令主要是绘制出积分区域。

    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

     

  9. 可以从下图中看到积分区域如图所示。

  10. 由于蒙特卡洛是通过抽样来解决问题,可以看到没次求解,结果都不一样,但是差别并不大,最后一次还将抽样数提高了一个数量级,结果相差还是并不大。

     


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
rust trait 熟识系列:一日一trait之Seek trait发布时间:2022-07-18
下一篇:
【Rust】Option-然后发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap