ここでは教科書図1.20にある電気双極子の等電位面と電気力線の様子を計算した。
Er, Ethをr, thで表すようにした。
![a = 0.01 ; (* 電荷の位置 z軸に対象の位置 *) dr = a * 2.5 ; (* どのくらいのステップで計算をすすめるか *) ep0 = 1 ; (* epsilon ... [x^2 + z^2] ; th[x_, z_] := Which[x > 0, ArcTan[x/z], z < 0, Pi + ArcTan[x/z], x == 0, 0] ;](HTMLFiles/index_1.gif)
次の等電位線の方向を探る。1度ずつ角度を振ってdrの距離進み、そのときに電圧が等しいところを探す。そしてその角度を返す。
![caltheta[x_, z_] := Module[{theta, ret = 0}, vst = v[r[x, z], th[x, z]] ; For[theta = 0, the ... Abs[(v[r[xnew, znew], th[xnew, znew]] - vst)/vst] < 0.005, Break[] ;] ; ] ; Return[theta] ; ]](HTMLFiles/index_2.gif)

範囲をはみ出したところで計算をストップする。
![limit[x_, z_] := Module[{}, Return[(x > 1) || (x < 0) || (z > 1) || (z < 0)] ; ]](HTMLFiles/index_4.gif)

計算は1/4面だけやって後は対象性を利用する。
![cal[] := Module[{theta}, lines = {Dashing[{0.01, 0.01}]} ; For[zst = 1, zst > 1/10, zst - ... ; ] ; Show[Graphics[lines], AspectRatio -> 1, PlotRange -> {{-1.1, 1.1}, {-1.1, 1.1}}] ; ]](HTMLFiles/index_6.gif)
![]()
![]()
![]()
![]()
![]()
![]()
![[Graphics:HTMLFiles/index_13.gif]](HTMLFiles/index_13.gif)
![Er[r_, th_] := Q1 a Cos[th]/(2 Pi ep0 r^3) ; (* (1.46 a) 式 *) Eth[r_, th_] := Q1 a Sin[th]/(4 ... ; Ez[x_, z_] := Er[r[x, z], th[x, z]] * Cos[th[x, z]] - Eth[r[x, z], th[x, z]] * Sin[th[x, z]] ;](HTMLFiles/index_14.gif)
電界の次の方向を求める。電界ベクトルから方向を決めてdrだけ進んだところのx,zの位置を計算する。
![calx[x_, z_] := Module[{length, ret = 0}, length = Sqrt[Ex[x, z]^2 + Ez[x, z]^2] ; &nb ... z]^2 + Ez[x, z]^2] ; ret = z + Ez[x, z]/length * dr ; Return[ret] ; ]](HTMLFiles/index_15.gif)



同様に1/4面のみ計算。スタートは点電荷の周りから行う。
![cal2[] := Module[{}, lines2 = {} ; For[theta = 0/180 * Pi, theta < Pi/2, theta += 15/180 ... ts4]}] ; ] ; Show[Graphics[lines2], AspectRatio -> 1, PlotRange -> {{-1, 1}, {-1, 1}}] ; ]](HTMLFiles/index_19.gif)
![]()
![[Graphics:HTMLFiles/index_21.gif]](HTMLFiles/index_21.gif)
![]()
![[Graphics:HTMLFiles/index_23.gif]](HTMLFiles/index_23.gif)
この図と次のただの正負等量の点電荷で作る「電気双極子もどき」とをよく比較して欲しい。
Converted by Mathematica (May 12, 2003)