Wolfram mathematica 如何修复mathematica中嵌套函数的语法?

Wolfram mathematica 如何修复mathematica中嵌套函数的语法?,wolfram-mathematica,Wolfram Mathematica,我想尝试制定一个规则来做范数平方积分。例如,代替以下内容: Integrate[ Conjugate[Exp[-\[Beta] Abs[x]]] Exp[-\[Beta] Abs[x]], {x, -Infinity, Infinity}] 我尝试创建一个函数来执行此操作,但要求该函数接受一个函数: Clear[complexNorm, g, x] complexNorm[ g_[ x_ ] ] := Integrate[ Conjugate[g[x]] * g

我想尝试制定一个规则来做范数平方积分。例如,代替以下内容:

Integrate[ Conjugate[Exp[-\[Beta] Abs[x]]]  Exp[-\[Beta] Abs[x]], 
           {x, -Infinity, Infinity}] 
我尝试创建一个函数来执行此操作,但要求该函数接受一个函数:

Clear[complexNorm, g, x] 
complexNorm[ g_[ x_ ] ] := Integrate[ Conjugate[g[x]]  * g[x], 
                                      {x, -Infinity, Infinity}]
v = complexNorm[ Exp[ - \[Beta] Abs[x]]]  // Trace
Mathematica在进行第一次积分时没有任何问题,但使用my helper函数时,跟踪的最终结果仅显示:

complexNorm[E^(-\[Beta] Abs[x])]
不计算所需积分


语法与我在[第155页]中找到的一个示例非常相似,但它对我不起作用。

表达式的计算结果没有达到预期值的原因是
complexNorm
需要一种形式为
f\ux\ux]
的模式。它返回您输入的内容,因为它与您提供的内容不匹配。如果仍要使用函数,可以将其修改为以下内容:

Integrate[ Conjugate[Exp[-\[Beta] Abs[x]]]  Exp[-\[Beta] Abs[x]], 
           {x, -Infinity, Infinity}] 
complexNorm[g_]:=Integrate[共轭[g]*g,{x,-无穷大,无穷大}]

请注意,您现在正在匹配任何内容。然后,您只需将其称为
complexNorm[expr]
。这需要
expr
在某个地方有
x
,否则你会得到各种有趣的事情


另外,你不能用Abs[x]^2作为范数平方吗
Abs[x]
通常以
Sqrt[x]x]
的形式给出结果

这样你就可以写:

complexNorm[g]:=Integrate[Abs[g]^2,{x,-Infinity,Infinity}]


因为你在做量子力学,你可能会发现以下一些很好的合成糖可以使用:

\[LeftAngleBracket] f_ \[RightAngleBracket] := 
 Integrate[Abs[f]^2, {x, -\[Infinity], \[Infinity]}]

这样,您就可以完全按照您的期望值来编写期望值。

Re:。是的,但我想接下来做g^*d g的积分,其中d是一个二阶导数运算符。@PeeterJoot:我在我的文章末尾又加了一点额外的东西。你可能会发现它很有趣。我应该在那页上对该模式的适用性添加一些评论。不过,这个例子的目标有些不同。无论何时我提出这本书的新版本,都会使这一部分更加清晰。