定义组合物的在Wolfram语言

问题描述:

我一直在试图对Wolfram语言接受两个数学表达式fg和和可变x作为输入,并输出它们的组合物f[g[x]]-g[f[x]]的差定义一个函数compdiff的差(一如果你是抽象代数的话,就是一种换位器)。定义组合物的在Wolfram语言

例如:compdiff[x^2,x+1,x] = (x+1)^2-(x^2+1)

我试着

compdiff[f_,g_,x_]:= Composition[f,g][x]-Composition[g,f][x] 

compdiff[f_,g_,x_]:= f @* g @ x-g @* f @ x 

,但是当我输入

compdiff[x^2,x+1,x] 

它输出

(x^2)[(1 + x)[x]] - (1 + x)[(x^2)[x]] 

我在做什么错了?

您需要使用函数而不是表达式。例如:

f[x_] := x^2 
g[x_] := x+1 

然后compdiff并[f,G,X]将工作:

In[398]:= compdiff[f,g,x] 
Out[398]= -1-x^2+(1+x)^2 

备选地,可以使用纯函数,如下所示:

In[399]:= compdiff[#^2&,#+1&,x] 
Out[399]= -1-x^2+(1+x)^2