% 定义并绘制一个圆,r为圆的半径 clc;clear;close all r=5; % 圆的半径 f=@(x,y) x.^2/r^2+y.^2/r^2-1; % 圆的隐函数方程 fimplicit(f,'LineWidth',2,'Color','r'); % 使用隐函数绘图命令绘制圆 set(gcf,'units','normalized','position',[0.2 0.2 0.6 0.6]); % 设置 figure 窗口的位置和尺寸 grid on axis equal axis([-(r+0.5),(r+0.5),-(r+0.5),(r+0.5)]) % 设置坐标轴刻度范围 pause(2) hold on % 绘制圆的包络矩形 rectangle('Position',[-r,-r,2*r,2*r],'EdgeColor','b','LineWidth',2) % 绘制圆的包络矩形 A=4*r*r; % 计算包络矩形的面积 pause(2)
% 往矩形区域里, 投放 N 个均匀分布的随机点,N的值越大求得的圆周率的近似值精度越高 N=50000; xk=-r+(r+r)*rand(1,N); % 随机点的 x 坐标 yk=-r+(r+r)*rand(1,N); % 随机点的 y 坐标 scatter(xk,yk,'g.'); % 统计落在圆里面的, 随机点的个数, 近似求圆周率 r2=xk.^2/r^2+yk.^2/r^2; % 随机点是否落在圆里的判据 m=find(r2<=1); % 找到落在圆里面的随机点 n=length(m); % 统计落在圆里面的, 随机点的个数 S=((n/N)*A)/r^2 % 蒙特卡洛法, 近似求圆周率
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)