【发布时间】:2012-10-05 11:06:26
【问题描述】:
在我的 Mathematica 程序中,我做了一些熵计算,我想使用这个约定:Log[0]*0 = 0. 有没有一种干净的方法可以做到这一点,或者我必须编写自己的函数?
受http://tinyurl.com/9d8r4rt 启发,我尝试过这样的事情:
Unprotect[Times];
Times[0, -Infinity] := 0;
Protect[Times];
但它似乎不适用于我的情况。有没有优雅的方法来做到这一点?
【问题讨论】:
-
我认为,目前对您没有帮助的观点是,如果您不了解如何颠覆 Mathematica 的评估过程,那么您几乎肯定不应该这样做。例如,如果您(部分)重新定义乘法或
Log[],或者为0提供Up/Down/Own值,您将希望非常确定在使用 Mathematica 时对其他所有运算的影响不洁的状态。为您的熵计算定义自己的函数并在其范围内实现所需的简化,这要更安全、更直接。
标签: wolfram-mathematica undefined logarithm infinity entropy