gpt4 book ai didi

wolfram-mathematica - 如何修复 Mathematica 中嵌套函数的语法?

转载 作者:行者123 更新时间:2023-12-01 02:53:06 24 4
gpt4 key购买 nike

我想尝试制定一条规则来计算范数平方积分。例如,而不是以下内容:

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 在进行第一个积分时没有任何问题,但是当使用我的辅助函数时,跟踪的最终结果只显示:

complexNorm[E^(-\[Beta] Abs[x])]

没有评估所需的积分?

语法与我在 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]}]

这样您就可以按照您的期望准确地写下您的期望值。

关于wolfram-mathematica - 如何修复 Mathematica 中嵌套函数的语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7630571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com