点電荷の電界

点電荷による電界の式は
  Er=(Q/(4  π(Subscript[ϵ, 0]) (r^2)))
  で与えられる。しかしこれは大きさだけしか取り扱っていない。
  電界はベクトルであり、ベクトルは大きさと方向を持つ。方向は動径方向である。

たとえば大きさを縦軸に、動径を横軸にとれば以下のようになる。ただしQ/4π(Subscript[ϵ, 0])は簡単のために1にした。

Plot[1/r^2, {r, 0.1, 2}]

これに方向を付けると次のようになるだろう。r=0で発散するのである程度で抑えている。

Needs["Graphics`PlotField3D`"];
Needs["Graphics`PlotField`"]

Clear[Ex, Ey, Ez];
Ex[x_, y_, 
          z_] := ((Cos[phi[x, y, z]] Sin[th[x, y, z]])/((x^2) + (y^2) + (z^2))) ; 
Ey[x_, y_, 
          z_] := ((Sin[phi[x, y, z]] Sin[th[x, y, z]])/((x^2) + (y^2) + (z^2))) ;
Ez[x_, y_, z_] := 
        Cos[th[x, y, z]]/((x^2) + (y^2) + (z^2)) ;
Ex[x_, y_, z_] := 
        0  /;  x^2 + y^2 + z^2 < 0.1;
Ey[x_, y_, z_] := 
        0  /;  x^2 + y^2 + z^2 < 0.1;
Ez[x_, y_, z_] := 0  /;  x^2 + y^2 + z^2 < 0.1;

\(\(phi[x_, y_, z_] := 
        Which[x > 0, 
          ArcTan[y/
              x], 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ x < 0, 
          Pi + ArcTan[y/x], 
				x == 0\  && \ y > 0, 
          Pi/2, 
				x == 0 && y < 0, \ 
          3\ Pi/2];\)\)
\(\(th[x_, y_, z_] := 
        Which[z > 0, 
          ArcTan[Sqrt[x^2 + y^2]/
              z], 
\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ z < 0, 
          Pi + ArcTan[Sqrt[x^2 + y^2]/z], 
				z == 0, 
          Pi/2];\)\)

PlotVectorField3D[{Ex[x, y, z], Ey[x, y, z], Ez[x, y, z]}, {x, -2, 
        2}, {y, -2, 2}, {z, -2, 2}]

上の図で分かるように中心から放射状に四方八方に飛び出しているのがわかる。大きさを無視して方向だけを示すようにすれば下の図のようになる。

gra1 = 
      PlotVectorField3D[{Ex[x, y, z], Ey[x, y, z], Ez[x, y, z]}, {x, -2, 
          2}, {y, -2, 2}, {z, -2, 2}, VectorHeads -> True, 
        Graphics`Common`GraphicsCommon`ScaleFunction -> (0.5 &), 
        PlotPoints -> 5]

上の図で分かるように中心から放射状に四方八方に飛び出しているのがわかる。

通常よく見る絵は以下のようなものである。これはz=0に固定して上から覗き込んだ図になっている。

PlotVectorField[{Ex[x, y, 0], Ey[x, y, 0]}, {x, -2, 2}, {y, -2, 
        2}, Graphics`Common`GraphicsCommon`ScaleFunction -> (0.5 &)]

電磁気に現れるベクトルは本来は3次元に大きさと方向を持って描かれるべきであるが、これは難しいので上のような2次元の図で表現されることが多い。きちんと3次元で想像できるようになれるといい。

追加の事項

2004/5/19 白石さんからの指摘でもっと簡単に表示ができることがわかった。Ex=x/r^(3/2)ということを導くことができるので、それで表示することができる。ただし、中心付近の発散は考慮していないのでエラーは出る。

PlotVectorField3D[{x/(x^2 + y^2 + z^2)^(3/2), 
        y/(x^2 + y^2 + z^2)^(3/2), 
        z/(x^2 + y^2 + z^2)^(3/2)}, {x, -2, 2}, {y, -2, 
        2}, {z, -2, 2}, VectorHeads -> True, 
      Graphics`Common`GraphicsCommon`ScaleFunction -> (0.5 &), 
      PlotPoints -> 5]

等電位面とあわせて表示する

Clear[v, r, phi];
v[r_] := If[r == 0, 0, 1/r];
r[x_, y_, z_] := Sqrt[x^2 + y^2 + z^2];

Needs["Graphics`ContourPlot3D`"]

点電荷の等電位面は点電荷から等距離にある点の集合である球面になる。

gra2 = 
      ContourPlot3D[
        v[r[x, y, z]], {x, -2, 2}, {y, -2, 2}, {z, -2, 2}, 
        Contours -> {0.5}]

実際には電位の違ういくつもの球面があり、たとえば断面を見れば次のようになっている。

gra3 = 
      ContourPlot3D[
        v[r[x, y, z]], {x, -2, 2}, {y, -2, 2}, {z, -2, 0}, 
        Contours -> {0.9, 0.7, 0.5}]

電界ベクトルと等電位面を重ねて表示すればそれぞれが直交していることが分かる。

Show[gra1, gra2]