3Dで表示する等電位面

ここではいつも二次元で表示する等電位線を三次元表示させて等電位面をだしてみよう。

Needs["Graphics`ContourPlot3D`"]

等電位面を表示するにあたって、電位を定義しておこう。発散する点ではエラーをなくすために電荷のある点では0を返すようにしている。

Clear[phi];
d = 0.8; 
    phi[x_, y_, z_] := 
      If[(x - d)^2 + y^2 + z^2 == 
            0  ||  (x + d)^2 + y^2 + z^2 == 0, 0, 
        1/(Sqrt[(x - d)^2 + y^2 + z^2]) + 
          1/(Sqrt[(x + d)^2 + y^2 + z^2])];

ここで等高線をみてみよう。両方とも正の電荷を与えているので以下のような図になる。

ContourPlot[phi[x, y, 0], {x, -3, 3}, {y, -3, 3}, 
      PlotPoints -> 30]

これを三次元的に表せば以下のようになる。しかしここでは縦軸は電位である。

Plot3D[phi[x, y, 0], {x, -3, 3}, {y, -3, 3}, 
      PlotPoints -> 30]

実際には電位は(x, y, z)の座標で与えられる関数であるので、上の図はそれを無理やりに表示するためにz=0としている。そこで、本来はどうなっているのか、三次元の等電位面表示を行ってみよう。以下では、電位が2になるところを表している。これは中央でくびれたピーナッツ方をしている。これは上の等高線で、８の字のようになっていたのをx軸を中心にして回転させてできたと考えることができる。あるいは下のピーナッツの図をz=0で切断したのが上の等高線図である。

ContourPlot3D[
      phi[x, y, z], {x, -3, 3}, {y, -3, 3}, {z, -3, 3}, 
      Contours -> {2}, PlotPoints -> {5, 5}]

電位が1になるところで等電位面を表示させてみると卵形になる。これも上の等高線図で楕円になっていた部分と対応している。楕円をｘ軸を中心にして回転させた図が、以下の図であり、また下の図をz=0つまりx-y平面で切断したのが、上の等高線図である。

ContourPlot3D[
      phi[x, y, z], {x, -3, 3}, {y, -3, 3}, {z, -3, 3}, 
      Contours -> {1}, PlotPoints -> {5, 5}]