You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

获取对应采样点密度图的二元分布函数f(x,y;s)的方法咨询

获取对应采样点密度图的二元分布函数f(x,y;s)的方法咨询

嗨,我来帮你一步步推导出这个二元分布函数哈!首先先拆解你的采样逻辑:你的random_point()里x和y是独立生成的(两次调用独立的均匀随机变量),而且生成规则完全一致,所以这个二元分布其实是两个独立同分布边缘分布的乘积,我们先搞定单个变量的边缘分布,再合并就好啦。

步骤1:明确变量生成关系

你用的是(0,1)上的均匀随机变量U(也就是代码里的random()),单个变量X的生成式是:

X = exp(s / ln(U))

我们先把这个式子变形,解出U关于X的表达式,方便后续用概率密度变换公式:

对X取自然对数:ln(X) = s / ln(U)
移项得:ln(U) = s / ln(X)
再取指数:U = exp( s / ln(X) )

步骤2:确定X的取值范围

因为U∈(0,1),所以ln(U)是负无穷到0的负数,而s>0,所以s/ln(U)也是负无穷到0的负数,因此X=exp(s/ln(U))的取值范围是**(0,1)**。

步骤3:用密度变换公式求边缘分布f_X(x;s)

均匀分布U的密度函数是f_U(u)=1(当u∈(0,1)时)。根据概率密度变换公式:

f_X(x) = f_U(u(x)) * |du/dx|

我们先求du/dx

  1. t = s / ln(x),则u(x) = exp(t)
  2. 求导得:du/dx = exp(t) * dt/dx
  3. 计算dt/dxdt/dx = -s / (x * (ln(x))²)(链式法则:对s*(ln(x))^-1求导)
  4. 代入后取绝对值:|du/dx| = exp(s/ln(x)) * s / (x * (ln(x))²)

因为u(x)∈(0,1)(X∈(0,1)时),所以f_U(u(x))=1,最终得到X的边缘密度:

f_X(x;s) = s * exp( s / ln(x) ) / ( x * (ln(x))² ) ,其中x∈(0,1),s>0

步骤4:得到二元分布f(x,y;s)

因为X和Y是独立同分布的,所以二元密度就是两个边缘密度的乘积:

f(x,y;s) = [s * exp(s/ln(x)) / (x*(ln(x))²)] * [s * exp(s/ln(y)) / (y*(ln(y))²)]

整理后就是:

f(x,y;s) = s² * exp( s*(1/ln(x) + 1/ln(y)) ) / ( x*y*(ln(x))²*(ln(y))² )

其中x∈(0,1),y∈(0,1),s>0。

这个函数完全对应你的采样点分布:当x或y趋近0或1时,密度会降低,中间区域密度更高,和你观察到的采样点密度趋势一致。而且当你调整s的取值时,这个函数会相应变化,符合你提到的参数影响。

备注:内容来源于stack exchange,提问作者J. Zimmerman

火山引擎 最新活动