True 在此 Wolfram 输出中意味着什么?

What does True mean in this Wolfram output?

这是一个简单的 WolframCloud computation:

当 0 < x < 1 为 True 时答案为 1,当 0 < x < 1 为 False 时答案为 0,那么为什么输出关联 True 与 0?

(在WolframAlpha中,执行Limit[Boole[0<x<1] (1 + 1/a) ,a->Infinity]显示正确答案,即Boole[0<x<1],但点击"Open code"时仍然出现奇怪的结果。)

编辑:给出相同结果的另一种形式是

f[x_,a_]:=Boole[0<x<1] (1 + 1/a)
Limit[f[x,a],a->Infinity]

输出应该是Boole[0<x<1],但奇怪的是True

你的表达没有意义。它不是方程式并且 x 未定义。 你想计算什么?

Boole[expr]  (* yields 1 if expr is True and 0 if it is False. *)
Limit[expr,x->Subscript[x, 0]]  (* finds the limiting value of expr when x approaches Subscript[x, 0]. *)

因此,Boole[0<x<1] 将始终产生 1 或 0,并且独立于 a。但是,Limit[1+1/a, a-> Infinity] 与 x 无关,总是会产生 1。

简化这个表达式你得到 n * 1 其中 n 属于 [0,1],并且完全依赖于 x.

我的猜测是您的输入混淆了 Mathematica,因此产生了奇怪的输出。顺便提一句。在 Mathematica 桌面上,输出是

Boole[0 < x < 1]

表明表达式的值完全取决于我上面描述的 x..

似乎 WolframAlpha 沙箱中的错误在哪里 - 它可能无法推断出您分析的 Boole[0 < x < 1] 表达式独立于极限计算,因此计算不正确。要获得正确的结果 - 将 Boole 函数放在 limit 前面:

Boole[0 < x < 1] Limit[(1 + a^(-1)), a -> Infinity]

顺便说一句,WolframAlpha online calculation 正确显示答案

虽然起初看起来很奇怪(或者,实际上是一个错误),但在 Wolfram 语言中,这是 piecewise 函数输出中 True 的标准用法,它的含义是 "otherwise"(当要按顺序评估的所有其他列出的条件均为 False 时)。

换句话说,这样的输出表达式应理解为 {value, condition} 对的列表,其计算结果为 第一个 条件为 True 的列出值,如以下示例所示: