静電場を求める際に使った積分を SymPy で確認すると…
from sympy import *
from sympy.abc import *
from sympy import I, pi, E
pip show sympy
1
$$\int_{-\infty}^{\infty}
\frac{1}{\left(x^2 + y^2 + (z-z’)^2\right)^{3/2}} dz’ = \frac{2}{x^2 + y^2}$$
の確認。
# from sympy.abc import * 済みなので,残りの変数のみを宣言
z1 = Symbol('z1')
integrate(1/(sqrt(x**2 + y**2 + (z-z1)**2)**3), (z1, -oo, oo))
SymPy は計算できない。
2
$$\int_{-\infty}^{\infty}
\frac{z – z’}{\left(x^2 + y^2 + (z-z’)^2\right)^{3/2}} dz’ = \int_{-\infty}^{\infty}
\frac{Z}{\left(x^2 + y^2 + Z^2\right)^{3/2}} dZ =0$$
の確認。
integrate((z-z1)/(sqrt(x**2 + y**2 + (z-z1)**2)**3), (z1, -oo, oo))
これは SymPy でも計算できる。
3
$$\int_{-\infty}^{\infty} \int_{-\infty}^{\infty}\frac{x }{\left(x^2 + (y-y’)^2 + (z-z’)^2\right)^{3/2}}dy’ dz’ = 2 \pi \frac{x}{|x|}$$
の確認。
y1 = Symbol('y1')
integrate(
integrate(x/(sqrt(x**2 + (y-y1)**2 + (z-z1)**2)**3), (y1, -oo, oo)),
(z1, -oo, oo))
SymPy は polar_lift
などという怪しげな文句を言いながら計算してくれない。
静磁場を求める際に使った積分を SymPy で確認すると…
from sympy import *
from sympy.abc import *
from sympy import I, pi, E
pip show sympy
1
$$\int_{-\infty}^{\infty}
\frac{1}{\left(x^2 + y^2 + (z-z’)^2\right)^{3/2}} dz’ = \frac{2}{x^2 + y^2}$$
の確認。(電場を求めるときにも出ました。)
# from sympy.abc import * 済みなので,残りの変数のみを宣言
z1 = Symbol('z1')
integrate(1/(sqrt(x**2 + y**2 + (z-z1)**2)**3), (z1, -oo, oo))
SymPy は計算できない。
2
$$\int_{-\infty}^{\infty}
\frac{z – z’}{\left((x-x’)^2 + (y-y’)^2 + (z-z’)^2\right)^{3/2}} dz’ =0$$
の確認。
x1, y1 = symbols('x1 y1')
integrate((z-z1)/(sqrt((x-x1)**2 + (y-y1)**2 + (z-z1)**2)**3), (z1, -oo, oo))
これは SymPy でも計算できる。
3
\begin{eqnarray}
\int_0^{2\pi} \,d\phi’ \frac{ a^2 – a y\sin\phi’ – a x\cos\phi’ }{x^2 + y^2 + a^2 – 2 a x \cos\phi’ – 2 a y \sin\phi’ } && \\
= \left\{
\begin{array}{ll}
2\pi & (a > \sqrt{x^2 + y^2})\\
0 & (a < \sqrt{x^2 + y^2})
\end{array}
\right.
\end{eqnarray}
の確認。
上記のままだと固まるので,$y=0$ の場合にして解くと…
phi1=Symbol("phi1")
Integral((a**2 - a*x*cos(phi1))
/(x**2 + a**2 - 2*a*x*cos(phi1)),
(phi1, 0, 2*pi))
_.doit()
SymPy は,上記のように間違った結果を出す。