Что означает True в этом выводе Wolfram? - PullRequest
0 голосов
/ 31 августа 2018

Вот простое вычисление WolframCloud :

enter image description here

Ответ равен 1, если 0 0, когда 0 , так почему же в мире выходные данные связывают True с 0?

(В WolframAlpha выполнение Limit[Boole[0<x<1] (1 + 1/a) ,a->Infinity] отображает правильный ответ, т. Е. Boole[0<x<1], но странный результат все еще обнаруживается при нажатии «Открыть код».)

РЕДАКТИРОВАТЬ: альтернативная форма, которая дает тот же результат является

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

Вывод должен быть Boole[0<x<1], но вместо этого используется странность, включающая True.

Ответы [ 3 ]

0 голосов
/ 31 августа 2018

Похоже, что в песочнице WolframAlpha есть ошибка - она, вероятно, не может сделать вывод, что ваше проанализированное выражение Boole[0 < x < 1] не зависит от расчета лимита и, следовательно, вычисляет неправильно. Чтобы получить правильные результаты - поставьте функцию Boole перед лимитом:

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

Кстати, WolframAlpha онлайн-расчет показывает ответ правильно

0 голосов
/ 05 сентября 2018

Хотя на первый взгляд это кажется довольно странным (или, действительно, ошибкой), в языке Wolfram это стандартное использование True в выходных данных кусочно функций, где оно имеет значение «в противном случае» «(когда все остальные перечисленные условия, которые должны оцениваться по порядку, являются ложными).

Другими словами, такое выходное выражение следует понимать как список пар {значение, условие}, которое оценивается как первое перечисленное значение с условием True, как в следующих примерах:

enter image description here

0 голосов
/ 31 августа 2018

Ваше выражение имеет мало смысла. Это не уравнение и х не определено. что вы пытаетесь рассчитать?

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, как я описал выше ..

...