To the downvoters: this isn't a question about mathematics, it's a question about the programming language Mathematica.
Mathematica 的主要特征之一是它可以象征性地处理许多事情。但如果你仔细想想,许多象征性的特征实际上只是象征性的一半。
以向量为例。我们可以有一个像 {x,y,z} 这样的符号向量,用一个充满符号的矩阵进行矩阵乘法,最后得到一个符号结果,所以我们可以考虑这个符号向量代数。但我们都知道,开箱即用,Mathematica 不允许您说符号 x 是一个向量并且给定一个矩阵一个 , 一个 . x 也是一个向量。这是更高层次的抽象,Mathematica(目前)不能很好地处理。
类似地,Mathematica 知道如何找到仅用符号定义的函数的 5 阶导数,但它并不适合找到 r 阶导数(请参阅“How to find a function's rth derivative when r is symbolic in Mathematica?”问题)。
此外,Mathematica 具有广泛的 Boolean algebra capabilities ,一些石器时代的东西,但最近在第 7 版中获得了很多。在第 8 版中,我们得到了 Probability和 friend (例如 Conditioned ),这使我们能够推理具有给定分布的随机变量的概率。这是一个非常棒的补充,它帮助我熟悉这个领域,我非常喜欢使用它。然而,...
我正在和一位同事讨论某些概率逻辑规则,比如熟悉的
即,事件/状态/结果的条件概率中号给定事件/状态/结果一个 是真的。
具体来说,我们正在研究这个:
尽管我曾高度评价 Mathematica 的
Probability
就在我意识到我不知道如何马上用 Mathematica 解决这个问题之前。同样,就像抽象向量和矩阵以及符号导数一样,这似乎是一个太高的抽象级别。或者是吗?我的问题是:你能找到一种方法来使用 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-is-it-possible
关于wolfram-mathematica - 在更高的抽象级别上进行概率计算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8282225/