如何在mathematica中定义抽象奇函数?

pen*_*guo 3 wolfram-mathematica function

如何定义抽象奇函数,比如f [x].

每当出现f [x] + f [-x]时,mathematica将其简化为零.

ein*_*ndi 7

这可以使用upvalues轻松完成

f[x_] + f[y_] /; x == -y ^:= 0
Run Code Online (Sandbox Code Playgroud)

通常情况下,Mathematica会尝试将上述规则分配给Plus,这当然不起作用,因为它受到保护.通过使用^:=而不是:=您可以将规则分配给f.快速检查产生:

In[2]:=   f[3]+f[-3]
Out[2]:=  0
Run Code Online (Sandbox Code Playgroud)

编辑:但是,这仅适用于Plus.使用更通用的东西可能更好,例如:

f[x_?Negative] := -f[-x]
Run Code Online (Sandbox Code Playgroud)

现在这也适用于像

In[4]:=  -f[3] - f[-3]
Out[4]:= 0
Run Code Online (Sandbox Code Playgroud)

如果您还希望函数以符号方式工作,您可以添加如下内容:

f[-a_] := -f[a]
Run Code Online (Sandbox Code Playgroud)