当前位置: 首页 > 知识库问答 >
问题:

计算两个函数的重叠面积

公良英资
2023-03-14

我需要计算两个函数重叠的区域。我在这个特殊的简化示例中使用正态分布,但我需要一个更通用的过程来适应其他函数。

请看下图,了解我的意思,红色区域是我想要的:

这是我到目前为止拥有的MWE:

import matplotlib.pyplot as plt
import numpy as np
from scipy import stats

# Generate random data uniformly distributed.
a = np.random.normal(1., 0.1, 1000)
b = np.random.normal(1., 0.1, 1000)

# Obtain KDE estimates foe each set of data.
xmin, xmax = -1., 2.
x_pts = np.mgrid[xmin:xmax:1000j]
# Kernels.
ker_a = stats.gaussian_kde(a)
ker_b = stats.gaussian_kde(b)
# KDEs for plotting.
kde_a = np.reshape(ker_a(x_pts).T, x_pts.shape)
kde_b = np.reshape(ker_b(x_pts).T, x_pts.shape)


# Random sample from a KDE distribution.
sample = ker_a.resample(size=1000)

# Compute the points below which to integrate.
iso = ker_b(sample)

# Filter the sample.
insample = ker_a(sample) < iso

# As per Monte Carlo, the integral is equivalent to the
# probability of drawing a point that gets through the
# filter.
integral = insample.sum() / float(insample.shape[0])

print integral

plt.xlim(0.4,1.9)
plt.plot(x_pts, kde_a)
plt.plot(x_pts, kde_b)

plt.show()

这就是我如何应用珍雅的答案

# Calculate overlap between the two KDEs.
def y_pts(pt):
    y_pt = min(ker_a(pt), ker_b(pt))
    return y_pt
# Store overlap value.
overlap = quad(y_pts, -1., 2.) 

共有1个答案

景建业
2023-03-14

图上的红色区域是min(f(x),g(x))的积分,其中fg是两个函数,绿色和蓝色。要计算积分,可以使用scipy.integrate(quad是默认的)中的任何一个积分器--当然也可以使用MC积分器,但我不太明白这一点。

 类似资料:
  • 这是一个基于我的编程问题的几何问题。基本上,我有一个充满经纬度点的MySQL数据库,每个经纬度点间隔为1km,对应于每个点周围平方公里内居住的人口。然后,我想知道,这些网格中每一个的相对分数,被一个任意大小的圆圈所占,这样我就可以计算出,在一个给定的圆圈内,大致住着多少人。 以下是问题的一种形式(距离不按比例)的一个实际例子: 我想知道居住在X点半径内的人口数量。我的数据库计算出a点和B点的条目与

  • 问题内容: 是否有内置函数来计算两个离散间隔之间的重叠,例如[10,15]和[20,38]之间的重叠?在这种情况下,重叠为0。如果为[10,20],[15,20],则重叠为5。 问题答案: 您可以使用max和min:

  • 本文向大家介绍PHP程序计算两个数字的重复减法,包括了PHP程序计算两个数字的重复减法的使用技巧和注意事项,需要的朋友参考一下 要计算两个数字的重复减法,代码如下- 示例 输出结果 定义了一个名为“ repeated_sub”的函数,该函数检查两个值是否完全相除,如果为真,则将数字相除并给出商的下限值。否则,它将给出商的下限值和通过对第二个值调用'repeated_sub'函数而计算出的值,以及在

  • 本文向大家介绍Python计算两个矩形重合面积代码实例,包括了Python计算两个矩形重合面积代码实例的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Python 实现两个矩形重合面积代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 代码如下 计算两个矩形的重合面积 字符串重叠输出 以上就是本文的全部内容,希望对大家的学习有所帮

  • 本文向大家介绍JavaScript计算出两个数的差值,包括了JavaScript计算出两个数的差值的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了JavaScript计算两个数差的具体代码,供大家参考,具体内容如下 需求 在两个输入框中输入两个数字,点击按钮的时候,计算出两个数字的差并且显示到id为result的div中。 实现代码 上面代码实现刚开始说的需求,希望对学习前端开发的小

  • 我想计算两个集合中不同元素的数量。这就是集合1和集合2的并集。 如何将以下伪SQL格式化为有效的SQL 编辑set1和set2是表1的两列 下面是一个简短的例子: 在一个班里安排1名学生: 在一个班里安排两名学生: 我想要两个班的学生人数不同: 所以,一个工会就行了,我可以数一数。