慕喏 2021-09-11 11:33 采纳率: 100%
浏览 32
已结题

matlab,求思路,过程, 答案

请用解析方法求出抛物线y=2-x^2与直线y=0所围区域的面积表达式,然后采用蒙特卡罗方法仿真计算该区域的近似面积。

  • 写回答

1条回答 默认 最新

  • 技术专家团-Joel 2021-09-11 13:01
    关注

    你好,同学!
    解析方法你应该会的,自己手动积分就行啦,我这里给个符号求解方案作为解析解:
    首先要确定左右两个端点即正负根号2,所以直接

    syms x %定义符号
    y = 2-x^2;  %写出符号表达式
    S = int(y,x,-sqrt(2),sqrt(2)) %S即所求区域面积
    

    即解析解为

    S =
     
    (8*2^(1/2))/3
    

    下面讲蒙特卡洛模拟方法,这个要用到概率论的知识,即点落在所围区域的概率,等于区域面积除以大一点的矩形区域面积。我们知道这个所围区域是被x=-根号2,x=+根号2, y=0, y=2的一个矩形内,所以我们要生成在这个矩形内的随机均匀的n个点,然后统计满足y<2-x^2的点的个数m,m除以n就是面积之比,知道了矩形面积,就可以知道被围区域面积。

    n = 1000;
    x = 2*sqrt(2)*rand(n,1) - sqrt(2); % x坐标随机出现在x=-sqrt(2)到x=+sqrt(2)区间内
    y = 2*rand(n,1); % y坐标随机出现在y=0到y=2区间内
    q = y<2-x.^2; %判断物质点是否在所围的区域内,q是一个逻辑列向量,如果在对应的q是真(也即1),如果不在对应的q是假(也即0)
    S_juxing = 2*sqrt(2)*2; %矩形面积
    m = sum(q); %点在所围成区域出现的次数
    S = S_juxing * m/n% m/n就是统计的概论,这样S就是所谓区域的面积
    

    结果为

    S =
    
       3.750494367413448
    

    我们比较一些数值解和解析解
    解析解化成小数为3.771236166328254,可见蒙特卡洛方法得到的结果跟解析解比较接近,如果蒙特卡罗方法的试验次数n取得足够大,精度还可以提高

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 9月19日
  • 已采纳回答 9月11日
  • 创建了问题 9月11日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料