在Wolfram输出中,True是什么意思?

时间:2018-08-31 05:49:39

标签: wolfram-language

这是一个简单的WolframCloud computation

enter image description here

答案是:当0 0 。那么,为什么世界上输出string type与0相关联呢?

(在WolframAlpha中,执行True显示正确的答案,即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]的奇怪之处。

3 个答案:

答案 0 :(得分:1)

似乎WolframAlpha沙箱中有一个错误-可能无法推断出您分析的import { Observable } from 'rxjs'; import 'rxjs/add/observable/fromPromise'; import 'rxjs/add/observable/throw'; import 'rxjs/add/operator/map'; import 'rxjs/add/operator/catch'; import { Injectable } from '@angular/core'; import * as shajs from 'sha.js'; import * as qz from 'qz-tray'; **import * as RSVP from 'rsvp';** @Injectable() export class QzTrayService { constructor() { } errorHandler(error: any): Observable<any> { console.log('error handler'); return Observable.throw(error); } // Get list of printers connected getPrinters(): Observable<string[]> { console.log(Observable .fromPromise(qz.websocket.connect() .then(() => qz.printers.find())) .map((printers: string[]) => printers) ); return Observable .fromPromise(qz.websocket.connect() .then(() => qz.printers.find())) .map((printers: string[]) => printers) .catch(this.errorHandler); } // Get the SPECIFIC connected printer getPrinter(printerName: string): Observable<string> { return Observable .fromPromise(qz.websocket.connect().then(() => qz.printers.find(printerName))) .map((printer: string) => printer) .catch(this.errorHandler); } // Print data to chosen printer printData(printer: string, data: any): Observable<any> { // Create a default config for the found printer const config = qz.configs.create(printer); return Observable.fromPromise(qz.print(config, data)) .map((anything: any) => anything) .catch(this.errorHandler); } // Disconnect QZ Tray from the browser removePrinter(): void { qz.websocket.disconnect(); } } 表达式与极限计算无关,因此计算不正确。为了获得正确的结果-将Boole函数放在限制的前面:

Boole[0 < x < 1]

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

答案 1 :(得分:0)

您的表情毫无意义。它不是方程式,并且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。

答案 2 :(得分:0)

尽管起初似乎很奇怪(或者确实是一个错误),但是在Wolfram语言中,这是piecewise函数输出中True的标准用法,其含义为“否则”(当所有其他要按顺序评估的条件均为False时)。

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

enter image description here