请用解析方法求出抛物线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取得足够大,精度还可以提高本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
- ¥20 有关区间dp的问题求解
- ¥15 多电路系统共用电源的串扰问题
- ¥15 slam rangenet++配置
- ¥15 有没有研究水声通信方面的帮我改俩matlab代码
- ¥15 ubuntu子系统密码忘记
- ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
- ¥15 保护模式-系统加载-段寄存器
- ¥15 电脑桌面设定一个区域禁止鼠标操作
- ¥15 求NPF226060磁芯的详细资料