利用蒙特卡罗法算PI,并绘制曲线图和散点图

2024-01-20 15:10

本文主要是介绍利用蒙特卡罗法算PI,并绘制曲线图和散点图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

原理 落在圆内的概率=圆与正方形面积之比=0.25Π

先上图

在这里插入图片描述

绘制折线图

import random
import matplotlib.pyplot as plt
#原理  落在圆内的概率=圆与正方形面积之比=0.25Π
# total指代在圆里面晒的豆子数
def pi(total):count = 0for i in range(total):x = random.random()y = random.random()x = pow(x, 2)y = pow(y, 2)dis = pow(x + y, 0.5)if dis <= 1:count += 1pi = 4 * count / totalprint(total,"π是", 4 * count / total)return  pi
with open("pi.txt10","w") as f:i=500xx=[]yy=[]for x in range(i):if x!=0:y1=pi(x)xx.append(x)yy.append(y1)f.write("当total为0{},π为{}\n".format(x,y1))plt.plot(xx,yy,linestyle=':', linewidth=1, markersize=10)plt.show()

当total=500

在这里插入图片描述

当total=1000

在这里插入图片描述

当total=10000

在这里插入图片描述

绘制散点图

import randomimport matplotlib.pyplot as plt
import pandas as pddef pi(total):x1=[]y1=[]x2=[]y2=[]count = 0for i in range(total):x = random.random()y = random.random()dis = pow(pow(x, 2) + pow(y, 2), 0.5)if dis <= 1:x1.append(x)y1.append(y)count += 1else:x2.append(x)y2.append(y)pi = 4 * count / totalprint(total,"π是", 4 * count / total)return  pi,x1,y1,x2,y2#定义颜色变量
color = ['c', 'b', 'g', 'r', 'm', 'y', 'k', 'w']
total=5000
PI,x1,y1,x2,y2=pi(total)
#画图fig=plt.figure(figsize=(6,6))#设置画布大小
rect1 = [0.10, 0.1, 0.8, 0.8]#后两个数根据画布比例设置宽和高
ax1 = plt.axes(rect1)
plt.scatter(x1, y1,s=1, c=color[0])#s调整点的大小
plt.scatter(x2, y2,s=1, c=color[2])
plt.title(PI)
plt.xlabel(total)
plt.show()

total=3000

在这里插入图片描述

total=100000

在这里插入图片描述

total=1000000

在这里插入图片描述

这篇关于利用蒙特卡罗法算PI,并绘制曲线图和散点图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/626422

相关文章

【WebGPU Unleashed】1.1 绘制三角形

一部2024新的WebGPU教程,作者Shi Yan。内容很好,翻译过来与大家共享,内容上会有改动,加上自己的理解。更多精彩内容尽在 dt.sim3d.cn ,关注公众号【sky的数孪技术】,技术交流、源码下载请添加微信号:digital_twin123 在 3D 渲染领域,三角形是最基本的绘制元素。在这里,我们将学习如何绘制单个三角形。接下来我们将制作一个简单的着色器来定义三角形内的像素

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

YOLOv8/v10+DeepSORT多目标车辆跟踪(车辆检测/跟踪/车辆计数/测速/禁停区域/绘制进出线/绘制禁停区域/车道车辆统计)

01:YOLOv8 + DeepSort 车辆跟踪 该项目利用YOLOv8作为目标检测模型,DeepSort用于多目标跟踪。YOLOv8负责从视频帧中检测出车辆的位置,而DeepSort则负责关联这些检测结果,从而实现车辆的持续跟踪。这种组合使得系统能够在视频流中准确地识别并跟随特定车辆。 02:YOLOv8 + DeepSort 车辆跟踪 + 任意绘制进出线 在此基础上增加了用户

使用Azure Devops Pipeline将Docker应用部署到你的Raspberry Pi上

文章目录 1. 添加树莓派到 Agent Pool1.1 添加pool1.2 添加agent 2. 将树莓派添加到 Deployment Pool2.1 添加pool2.2 添加target 3. 添加编译流水线3.1 添加编译命令3.2 配置触发器 4. 添加发布流水线4.1 添加命令行4.2 配置artifact和触发器 5. 完成 1. 添加树莓派到 Agent Pool

Banana Pi BPI-F3 进迭时空RISC-V架构下,AI融合算力及其软件栈实践

RISC-V架构下,AI融合算力及其软件栈实践 面对未来大模型(LLM)、AIGC等智能化浪潮的挑战,进迭时空在RISC-V方向全面布局,通过精心设计的RISC-V DSA架构以及软硬一体的优化策略,将全力为未来打造高效且易用的AI算力解决方案。目前,进迭时空已经取得了显著的进展,成功推出了第一个版本的智算核(带AI融合算力的智算CPU)以及配套的AI软件栈。 软件栈简介 AI算法部署旨

使用matplotlib绘制散点图、柱状图和饼状图-学习篇

一、散点图 Python代码如下: num_points = 100x = np.random.rand(num_points) #x点位随机y = np.random.rand(num_points) #y点位随机colors = np.random.rand(num_points) #颜色随机sizes = 1000 * np.random.rand(num_points) # 大

黑神话:悟空》增加草地绘制距离MOD使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验

《黑神话:悟空》增加草地绘制距离MOD为玩家提供了一种全新的视觉体验,通过扩展游戏中草地的绘制距离,增加了场景的深度和真实感。该MOD通过增加草地的绘制距离,使游戏场景看起来更加广阔与自然,增强了游戏的沉浸式体验。 增加草地绘制距离MOD安装 1、在%userprofile%AppDataLocalb1SavedConfigWindows目录下找到Engine.ini文件。 2、使用记事本编辑

Excel绘制CDF图

对如下20个原始数据绘制cdf图 1. 对数据进行排序,从小到大 2. 计算累积分布: 计算公式为: 然后对C3下拉,得到累积分布数据。 3. 选中B、C两列绘制散点图:

基于PI控制算法的异步感应电机转速控制系统simulink建模与仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述        基于PI控制算法的异步感应电机转速控制系统simulink建模与仿真。PI控制器是一种经典的线性控制器,它通过将控制量的比例部分和积分部分相结合来实现对系统输出的调节。比例部分用于快速响应偏差,而积分部分则用于消除稳态误差。 2.系统仿真结果 (完整程