parent
95f484af5c
commit
2a3a14b6d9
@ -0,0 +1,61 @@
|
||||
|
||||
%27页例题
|
||||
clc; clear; close all;
|
||||
n = 10000; % 使用较小的 n 值以便更容易可视化
|
||||
x = unifrnd(0, 12, [1, n]);
|
||||
y = unifrnd(0, 9, [1, n]);
|
||||
ans=sum(y < x.^2 & x <= 3)+sum(y < 12 - x & x >= 3);
|
||||
ans=ans/n;
|
||||
% 找出满足条件的点
|
||||
condition1 = y < x.^2 & x <= 3;
|
||||
condition2 = y < 12 - x & x >= 3;
|
||||
condition_met = condition1 | condition2; % 满足任一条件的点
|
||||
condition_not_met = ~condition_met; % 不满足任何条件的点
|
||||
|
||||
% 创建图形窗口
|
||||
figure;
|
||||
hold on;%在同一张图上绘图
|
||||
|
||||
% 绘制不满足任何条件的点
|
||||
scatter(x(condition_not_met), y(condition_not_met), 'k.'); % k----黑色 .----绘制样式
|
||||
%scatter绘制散点图
|
||||
%x(condition_not_met) 会返回一个新的向量,其中只包含 x 中对应 condition_not_met 为 true 的元素。
|
||||
|
||||
% 绘制满足第一个条件的点
|
||||
scatter(x(condition1), y(condition1), 'r.'); % 红色
|
||||
|
||||
% 绘制满足第二个条件的点
|
||||
scatter(x(condition2), y(condition2), 'b.'); % 蓝色
|
||||
|
||||
% 添加图例和标签
|
||||
legend('不满足任何条件的点', '满足 y < x^2 且 x <= 3 的点', '满足 y < 12 - x 且 x >= 3 的点');
|
||||
xlabel('x');
|
||||
ylabel('y');
|
||||
title('随机生成的点和满足条件的点');
|
||||
hold off;
|
||||
|
||||
|
||||
%蒙特卡洛法求圆周率qw
|
||||
clc;clear;close all;
|
||||
|
||||
n=10^5;
|
||||
x=unifrnd(-1,1,[1,n]);
|
||||
y=unifrnd(-1,1,[1,n]);
|
||||
con1=x.^2+y.^2<=1;
|
||||
con2=~con1;
|
||||
ans=sum(x.^2+y.^2<=1);
|
||||
ans=ans/n*4;
|
||||
|
||||
figure ;
|
||||
hold on;
|
||||
|
||||
scatter(x(con1),y(con1),'r.');
|
||||
scatter(x(con2),y(con2),'k.');
|
||||
|
||||
hold off;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in new issue