我最近重新发现了 Roman Maeder 的一个小程序包,它告诉 Mathematica 自动将算术和类似函数应用于表达式,例如 x == y。链接到 Maeder 的包。
首先,为了演示,这是 Maeder 给出的一个例子:
In[1]:= Needs["EqualThread`"]
现在继续使用线程行为来“手动”求解 x 的以下方程:
In[7]:= a == b Log[2 x]
In[8]:= %/b
Out[8]:= a/b == Log[2 x]
现在取幂:
In[9]:= Exp[%]
Out[9]= E^(a/b) == 2 x
并除以 2:
In[10]:= %/2
Out[10]= (E^(a/b))/2 == x
问:从设计的角度来看,有人能解释一下为什么 Mathematica 会默认设置为这种行为吗?自动线程似乎是 Mathematica 初学者所期望的行为类型——至少对我而言——也许有人可以提供一两个会导致整个系统出现问题的示例。(并随时指出任何数学无知......)