在更高的抽象层次上进行概率计算
对于downvoters:这不是一个关于数学的问题,这是一个关于编程语言Mathematica的问题。
Mathematica的主要特征之一是它可以象征性地处理很多事情。 但如果你仔细想想,许多象征性的功能实际上只是一半的符号。
以矢量为例。 我们可以有一个像{x,y,z}这样的符号矢量,用一个满是符号的矩阵进行矩阵乘法运算,最后得到一个符号结果,所以我们可以考虑这个符号矢量代数。 但是我们都知道,Mathematica不会让你说一个符号x是一个向量,并且给出一个矩阵A , A 。 x也是一个向量。 这是一个更高层次的抽象,Mathematica(目前)并不擅长处理。
同样,Mathematica知道如何找到一个函数的第5个导数,它的定义无非是用符号来定义,但它不适合寻找第r个导数(请参见“如何在Mathematica中r是符号时如何找到函数的第r导数?“ 题)。
此外,Mathematica具有广泛的布尔代数能力,一些石器时代的旧版本,但最近在版本7中获得了许多。在版本8中,我们得到了概率和朋友(例如Conditioned),它允许我们用给定分布的随机变量的概率推理。 这是一个非常宏伟的补充,它帮助我熟悉了这个领域,并且我非常喜欢它。 然而,...
我正在和一位同事讨论某些像熟悉的概率逻辑规则
即给定事件/状态/结果A的事件/状态/结果C的条件概率为真。
具体来说,我们看着这个:
虽然在我意识到我不知道如何用Mathematica解决这个问题之前,我已经对Mathematica的Probability
了高度评价。 再次,就像抽象矢量和矩阵以及符号衍生物一样,这似乎是一个抽象层次太高的抽象层次。 或者是? 我的问题是:
你能找到一种方法来找到使用Mathematica程序的上述和类似方程中的真相或虚假吗?
>> Mathematica不允许你说一个符号x是一个向量
无论如何,它确实......足够接近......这是一个Reals的集合。 这就是所谓的假设或条件,取决于你想要做什么。
Refine[Sqrt[x]*Sqrt[y]]
上述内容并没有细化,因为它假定X和Y可以是任何符号,但是如果缩小范围,您会得到结果:
Assuming[ x > 0 && y > 0, Refine[Sqrt[x]*Sqrt[y]]]
有能力说: Element[x,Reals^2]
(二维实矢量),也许在Mathematica 9中将是非常好的。:-)
至于这个问题:
>>您可以通过Mathematica程序找到一种方法来查找上述类似等式中的真相或虚假吗?
请参考我在这个问题上的回答(第一个),看看贝叶斯定理的符号方法:https://stackoverflow.com/questions/8378336/how-do-you-work-out-conditional-probabilities-in-mathematica -可能吗
只是瞥了一眼,从Condition
文档中找到了一个例子:
In[1]:= c = x^2 < 30; a = x > 1;
(对不起,这里的格式...)
In[2]:= Probability[c [Conditioned] a, x [Distributed] PoissonDistribution[2]] ==
Probability[c && a, x [Distributed] PoissonDistribution[2]] / Probability[a, x [Distributed] PoissonDistribution[2]]
其中评估为True
并对应于您给出的第一个示例的不太一般的版本。
如果我有时间,我会在今晚晚些时候再次访问。
链接地址: http://www.djcxy.com/p/35605.html上一篇: Doing probabilistic calculations on a higher abstraction level