给定心形曲线(x2+y2−1)3=x2y3(x^2+y^2-1)^3=x^2y^3,给定任意一点的坐标(X,Y)(X,Y)其中X~N(X,σx)X~N(X,\sigma_x),Y~N(Y,σy)Y~N(Y,\sigma_y)求点(X,Y)(X,Y)落入心形曲线内的概率。
思路:
以(X,Y)(X,Y)为中心,画出3∗σ3*\sigma半径的椭圆,求和心形曲线相交的体积。注意:心形曲线方程可化为x2+y2−1=x2/3yx^2+y^2-1=x^{2/3}y,满足x2+y2−1<=(x2)1/3yx^2+y^2-1在曲线内。利用心形曲线上下左右都有最大值且约等于正负1。可以设定一个分辨率画出图形。
上代码:

# -*- coding: utf-8 -*-
import numpy as np
import matplotlib.pyplot as pltres=0.01#单位每像素
RES=1/res#像素每单位
block=256
map1=np.ones([block,block])
CX=block/2.0
CY=block/2.0
for y in np.arange(0,block):for x in np.arange(0,block):if (res*(x-CX))**2+(res*(y-CX))**2-1<=(res*np.abs(x-CX))**(2.0/3.0)*(res*(y-CY)):map1[y,x]=0
plt.figure(1)
plt.imshow(map1,cmap='gray')sigmax=0.3
sigmay=0.1
X=0
Y=0
l=max(CX+(X-3*sigmax)*RES,0)
r=min(CX+(X+3*sigmax)*RES,block)
t=max(CY+(Y-3*sigmay)*RES,0)
b=min(CY+(Y+3*sigmay)*RES,block)
print(l,r,t,b)
theta=1/((2.0*np.pi)*(sigmax*sigmay))
ssum=0;
for y in np.arange(l,r+1):for x in np.arange(t,b+1):if map1[y,x]==0:map1[y,x]=np.exp(-0.5*((((x-CX)*res-X)/sigmax)**2+(((y-CY)*res-Y)/sigmay)**2))ssum=ssum+theta*map1[y,x]plt.figure(2)
plt.imshow(map1,cmap='gray')
#print(ssum/(np.sum(np.sum(f))))
#print(res**2*theta*np.sum(np.sum(f)))
print(res**2*ssum)
print(np.round(res**2*ssum*10)/10)
plt.show()

效果图:

心形

p=1.0

p=0.9

p=0.5

p=0.4

高斯分布的点落入心形曲线的一个解决方案相关推荐

  1. 打开一个解决方案时弹出“项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序”问题的解决方案

    打开一个解决方案时弹出"项目所需的应用程序未安装,确保已安装项目类型(.csproj)的应用程序"问题的解决方案 参考文章: (1)打开一个解决方案时弹出"项目所需的应用 ...

  2. Java黑皮书课后题第8章:*8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的。重写该程序,通过检验是否每行、每列、每个小方盒中具有

    *8.24(检验数独的解决方案)程序清单8-4通过检测棋盘上的每个数字是否是有效的,从而检验一个解决方案是否是有效的.重写该程序 题目 题目描述 程序清单8-4 破题 代码 题目 题目描述 *8.24 ...

  3. Java黑皮书课后题第7章:***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行、同列、同一对角线)。编写程序显示一个解决方案

    7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能相互攻击(没有两个皇后在同行.同列.同一对角线).编写程序显示一个解决方案 题目 题目描述 破题 题目 题目描述 ...

  4. WSS 3.0中An unexpected error has occurred的一个解决方案

    之前在CodePlex上讨论到我在WSS v3里遇到的一个Bug,CKS团队的TheKid向我引用了他的一个解决方案,大意如下 如果需要了解WSS 3.0中An unexpected error ha ...

  5. [转]关于数据库的并发性的一个解决方案

    我先把流程说出来,,比如修改一个记录: 当用户点修改时,从数据库读出数据并显示到编辑菜单中,然后再编辑数据,再点确定保存到数据库中.如果多 个用户,当A用户点修改到保存该数据这一时间段,,B用户不能修 ...

  6. 一个做法是给一个解决方案一个ComDLL的目录

    一个做法是给一个解决方案一个ComDLL的目录,把有版本问题的DLL都放入这个目录中,并加入解决方案.check in到VSS中,解决方案中所有的项目引用都引用这个目录下的DLL,这样,即使不同的系统 ...

  7. tolua#是Unity静态绑定lua的一个解决方案

    tolua#是Unity静态绑定lua的一个解决方案 参考文章: (1)tolua#是Unity静态绑定lua的一个解决方案 (2)https://www.cnblogs.com/Leo_wl/p/6 ...

  8. vscode突然无法登上remote端的一个解决方案

    vscode突然无法登上remote端的一个解决方案 如图,这时候只需要按照其要求去disable remote.ssh.uselocalServer 项目,进入首选项-设置即可.目前没有发现这种做法 ...

  9. 请教,一个解决方案中包含多个相互引用的项目,该如何配置?

    真是郁闷!最近把原来写的一个项目重新整理,将原来的一个项目分解成了多个项目. 其中有2个Web项目WebA,WebB,3个类库BClass,DataClass,TempClass,web项目中需要引用 ...

最新文章

  1. 为什么说Netty是性能之王,因为它用了 Reactor 模型啊
  2. 使用ESP32 MicroPython I2C功能读取 BH1750光度传感器模块数据
  3. linux c fopen open 互相转换 文件指针 到 文件描述符 FILE* 转 FD
  4. 【Flutter】JSON 模型转换 ( JSON 序列化工具 | JSON 手动序列化 | 根据 JSON 编写 Dart 模型类 | 在线自动根据 JSON 转换 Dart 类 )
  5. python图像锐化_opencv实现图片模糊和锐化操作
  6. Github 本周最有趣的 10 款「机器学习」开源项目 | PaperDaily #32
  7. 【java学习笔记-io流 文件读写和键盘读写】带缓存的输入/输出流和数据输入/输出流
  8. android 屏幕切换监听
  9. 智能视频内容生产中专业视频数据导出工具的研发
  10. 深入理解JVM逃逸分析
  11. 简单的Flash网络游戏源代码
  12. Elite Software DuctSize v6.01.224 1CD(风管测算软件)
  13. 工厂车间现场管理必备利器,MES生产管理系统
  14. waves效果器_waves效果器:《我不是药神》配乐炼成记—Waves访时俊峰黄超
  15. 炸了~Redis bigkey导致生产事故-bigkey问题全面分析
  16. 关于电脑程序无响应的常见原因以及解决办法
  17. 西宾知乎语音下载工具(zhihudownload)
  18. 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  19. unity2d物体3d效果
  20. maven读取不到包,项目名爆红

热门文章

  1. 直播app平台搭建需要那些技术流程
  2. jieba-词性标注
  3. OAuth2.0实践之foursquare客户端登录
  4. 学习屏幕保护制作方法
  5. 黄浩老师cpp平时作业(十三)圆形正方形类 运算符重载组合类圆和点(排序与查找题目重复)
  6. 网工必备命令:思科、华为、H3C交换机巡检命令全收录
  7. 亿纬锂能拟募资90亿:刘金成骆锦红夫妇合计认购60亿 布局光谷
  8. 小凯的疑惑 原题+Plus 证明
  9. ffmpeg-实现视频 metadata(moov) 前置
  10. CEC13BenchMark测试