我想要一个任意函数p [x],它集成到1并且对于所有x,0 <= p [x]&lt; = 1.某种转换规则?
答案 0 :(得分:12)
你可以使用ProbabilityDistribution
和x
的未定义函数:
dist = ProbabilityDistribution[p[x], {x, -Infinity, Infinity}];
现在知道要应用的一些规则:
连续概率密度:单个值的概率为零
In[26]:= Probability[x == 0, x \[Distributed] dist]
Out[26]= 0
完全拥有价值的可能性
In[28]:= Probability[x > 0 || x <= 0, x \[Distributed] dist]
Out[28]= 1
CDF at - infinity
In[29]:= CDF[dist][-\[Infinity]]
Out[29]= 0
CDF at + infinity
In[30]:= CDF[dist][\[Infinity]]
Out[30]= 1
In[32]:= PDF[dist][x]
Out[32]= p[x]
但是,它不会假设分发的PDF已标准化:
In[33]:= Integrate[PDF[dist][x], {x, -Infinity, Infinity}]
Out[33]= Integrate[p[x], {x, -Infinity, Infinity}]
可以教授后者,为p:
定义UpValuep /: Integrate[p[x], {x, -Infinity, Infinity}] = 1;
现在它可以整合PDF:
In[4]:= Integrate[PDF[dist][x], {x, -Infinity, Infinity}]
Out[4]= 1
你知道你的第二个要求,即0 <= p[x] <= 1
,对于概率密度函数一般都不正确,对吗?
答案 1 :(得分:0)
如果你只是要求提供符合你标准的密度函数(PDF)的例子,这里有两个(不计其数很多):
p(x) = 1 if 0 < x < 1
0 otherwise
p(x) = x/2 if 0 < x < 2
0 otherwise
我们甚至可以稍微概括一下:
p(x) = 1/k if 0 < x < k
0 otherwise
p(x) = 2x/k^2 if 0 < x < k
0 otherwise
后者适用于k&gt; = 2。 我们甚至可以用另一个参数推广它,以获得具有任意指数
的一类此类函数p(x) = (a+1)/k^(a+1)*x^a if 0 < x < k
0 otherwise
适用于所有&gt; 1和k>一个+ 1。
对于更有趣的例子,我认为你需要提供更多标准。 你提到了一个转换规则,所以也许你想在R1上采用一个任意的有界函数并对它进行平移/缩放,使它总是在0和1之间并且积分为1。 只要你能得到给定函数的最小值,最大值和积分,这将有一个简单的答案。 继续编辑问题,询问是否确实如此。