Pee*_*oot 3 wolfram-mathematica
我想尝试制定规范平方积分.例如,而不是以下内容:
Integrate[ Conjugate[Exp[-\[Beta] Abs[x]]] Exp[-\[Beta] Abs[x]],
{x, -Infinity, Infinity}]
Run Code Online (Sandbox Code Playgroud)
我尝试创建一个函数来执行此操作,但需要函数来执行函数:
Clear[complexNorm, g, x]
complexNorm[ g_[ x_ ] ] := Integrate[ Conjugate[g[x]] * g[x],
{x, -Infinity, Infinity}]
v = complexNorm[ Exp[ - \[Beta] Abs[x]]] // Trace
Run Code Online (Sandbox Code Playgroud)
Mathematica在执行第一个积分时没有任何问题,但是当使用我的辅助函数时,跟踪的最终结果只显示:
complexNorm[E^(-\[Beta] Abs[x])]
Run Code Online (Sandbox Code Playgroud)
没有评估所需的积分?
语法密切关注我发现了一个例子http://www.mathprogramming-intro.org/download/MathProgrammingIntro.pdf [第155页],但它并没有为我工作.
你的表达式没有评估你期望的原因complexNorm
是因为期望表单的模式f_[x_]
.它返回了你输入的内容,因为它无法模仿你给它的模式.如果您仍想使用您的功能,可以将其修改为以下内容:
complexNorm[g_] := Integrate[ Conjugate[g] * g, {x, -Infinity, Infinity}]
请注意,您现在只是与任何东西匹配.然后,你只需将其称为complexNorm[expr]
.这需要expr
有x
它虽然某个地方,或者你会得到各种搞笑业务.
另外,你不能只Abs[x]^2
用于常态平方吗?Abs[x]
通常会给你一个表格的结果Sqrt[Conjugate[x] x]
.
这样你就可以写:
complexNorm[g_] := Integrate[Abs[g]^2, {x, -Infinity, Infinity}]
既然你正在做量子力学,你可能会发现以下一些很好的合成糖:
\[LeftAngleBracket] f_ \[RightAngleBracket] :=
Integrate[Abs[f]^2, {x, -\[Infinity], \[Infinity]}]
Run Code Online (Sandbox Code Playgroud)
这样,您可以完全按照您的预期编写您的期望值.