Kirchhoff积分公式验证
mathematica吧
全部回复
仅看楼主
level 6
冉qx 楼主
为了验证Kirchhoff积分公式,代码如下:
In[573]:= \[Lambda] = 10;
k = (2 \[Pi])/\[Lambda];
n = {x, y, z};
R = {1000, 0, 0};
\[Psi] = Exp[-I k Sqrt[(x - R[[1]])^2 + y^2 + z^2]]/Norm[R];
\[ScriptCapitalE] = ({1, -1, 0} Exp[(I k (x + y))/Sqrt[2]])/Sqrt[2];
t1 = 1/(4 Pi) (NSurfaceIntegrate[\[ScriptCapitalE] (
Grad[\[Psi],{x, y, z}] . n) - \[Psi] (\!\(
\*SubscriptBox[\(\[PartialD]\), \({{x, y, z}}\)]\[ScriptCapitalE]\) .
n), {x, y, z} \[Element] Sphere[],
Method -> "LocalAdaptive"] // Norm)
t2 = 1/(4 Pi) (NSurfaceIntegrate[
Grad[(\[Psi] n . \[ScriptCapitalE]),{x, y, z}] -
n (Grad[\[Psi],{x, y, z}] . \[ScriptCapitalE]), {x, y,
z} \[Element] Sphere[], Method -> "LocalAdaptive"] // Norm
t3 = -(1/(
4 Pi)) (NSurfaceIntegrate[((Div[\[ScriptCapitalE],{x, y,
z}]) n + \[ScriptCapitalE]\[Cross](Curl[
n,{x, y, z}])) \[Psi], {x, y, z} \[Element] Sphere[],
Method -> "LocalAdaptive"] // Norm)
Out[579]= 0.000129072
Out[580]= 0.000129072
Out[581]= 0.
按照图片的说法,t2,t3应该为零,但t2怎么不为零。图片如下:
2025年10月09日 06点10分 1
吧务
level 15
……
1. 你这背景信息的介绍完全不够。如果你还没看过,请去读一下精品区《【征集】学习Mathematica时最常见的问题暨Mathematica吧“十戒”》 青衣瓦屋 写在 4 楼的内容。
1.1 你这是什么教材?
2. 你这复数记号和矢量记号怎么混着用的?
2.1 你这 {1, -1, 0} Exp[(I k (x + y))/Sqrt[2]] 是在算共轭吗?如果是的话,请看一下 Conjugate 和 ComplexExpand 的帮助。
3. 你对第3个积分的第1项的理解也是错的。
4. 绝对值号和积分号不能随便交换次序。
此外可能还有别的问题,但我物理学得也不行,所以就先到这儿。如果不熟悉矢量计算的话,请先找份入门材料看一看。(一般涉及矢量教程的课本都会对此有简要介绍,你这本没有吗?)
2025年10月09日 07点10分 2
勘误:一般涉及矢量教程的课本 -> 一般涉及矢量计算的课本
2025年10月09日 07点10分
“你对第3个积分的第1项的理解也是错的。” <- 说得更具体一点,算子的乘法不可交换,v·∇ 和∇·v 不是一个东西。
2025年10月09日 13点10分
1