这可以使用 sympy 解决吗? - 1天后没有输出

问题描述 投票:0回答:1

原问题:

我的方法:电场在教科书中已经给出了

\begin{equation}
  E(x, y, z) = \frac{q}{4\pi\epsilon_0} \left[ 
\frac{\hat{x}x + \hat{y}y + \hat{z}(z - z_0)}{(x^2 + y^2 + (z - z_0)^2)^{3/2}} + 
\frac{\hat{x}x + \hat{y}y + \hat{z}(z + z_0)}{(x^2 + y^2 + (z + z_0)^2)^{3/2}} 
\right]
\end{equation}

所以我在课本上使用了这个方程:

\begin{equation}
  U=\frac{\epsilon_0}{2}\int E^2d^3\!x=
\end{equation}

为了计算这个,我要求 GPT-4 编写一个 python 程序来使用

sympy
来计算这个。下面是代码:

from sympy import *

# Define the symbols
x, y, z = symbols('x y z')
q = symbols('q', real=True, positive=True)
epsilon_0 = symbols('epsilon_0', real=True, positive=True)
z0 = symbols('z0', real=True, positive=True)

# Electric field components due to the image charges
E1_x = q / (4 * pi * epsilon_0) * x / ((x**2 + y**2 + (z - z0)**2)**(3/2))
E1_y = q / (4 * pi * epsilon_0) * y / ((x**2 + y**2 + (z - z0)**2)**(3/2))
E1_z = q / (4 * pi * epsilon_0) * (z - z0) / ((x**2 + y**2 + (z - z0)**2)**(3/2))

E2_x = q / (4 * pi * epsilon_0) * x / ((x**2 + y**2 + (z + z0)**2)**(3/2))
E2_y = q / (4 * pi * epsilon_0) * y / ((x**2 + y**2 + (z + z0)**2)**(3/2))
E2_z = -q / (4 * pi * epsilon_0) * (z + z0) / ((x**2 + y**2 + (z + z0)**2)**(3/2))

# Total electric field components
E_x = E1_x + E2_x
E_y = E1_y + E2_y
E_z = E1_z + E2_z

# Squaring the electric field components and summing them
E_squared = E_x**2 + E_y**2 + E_z**2

# Integrate E_squared over the half-space where z > 0
U = (epsilon_0 / 2) * integrate(integrate(integrate(E_squared, (x, -oo, oo)), (y, -oo, oo)), (z, 0, oo))

U.simplify()

我运行了代码并希望有一天能得到结果。我让它运行了大约 1-2 天,没有任何输出。它一直使用 100% CPU(我有 8P+2E 核心)。我不确定这是否无法在

sympy
中解决,还是真的很复杂。

sympy physics calculus
1个回答
0
投票

您的问题具有轴对称性,围绕从点电荷到地平面(并垂直于地平面)的轴。

您需要将其转换为利用对称性的圆柱或二维极坐标,而不是笛卡尔坐标。笛卡尔坐标中的三重积分变成柱坐标中的二重积分,这可能在 sympy 中起作用。

或者,您可以使用图像方法https://en.wikipedia.org/wiki/Method_of_images并考虑两个点电荷而不是点电荷和地平面。该系统仍然具有圆柱对称性,并且二重积分可能可以手动计算 - 查看一些教科书,看看是否有有效的示例。

© www.soinside.com 2019 - 2024. All rights reserved.