電磁気学の授業の準備。
- 参考:「静電場:電荷密度から直接静電場を求める」
gnuplot では,special file-name “++” を使うと,データファイルを作らずにベクトル場を描くことができる。ちょっと出来上がりがしょぼいが,簡単にベクトル場を表示できるので使ってみる。
点電荷がつくる電場 $\boldsymbol{E}$
\begin{eqnarray}
\boldsymbol{E}
&=& \frac{q_1}{4\pi \varepsilon_0} \frac{\boldsymbol{r} – \boldsymbol{r}_1}{|\boldsymbol{r} – \boldsymbol{r}_1|^3}\end{eqnarray}
$z=0$ の $xy$ 平面で2次元ベクトル場を描く。
$$\boldsymbol{r} = (x, y, 0), \quad \boldsymbol{r}_1 = (x_1, y_1, 0)$$$$E_x = s \frac{x-x_1}{\left((x-x_1)^2 + (y-y_1)^2\right)^{3/2}}$$$$E_y = s \frac{y-y_1}{\left((x-x_1)^2 + (y-y_1)^2\right)^{3/2}}$$
$s$ は $\mbox{scaling}$ 係数。実際の描画の際にベクトルの長さを微調整する係数。
- 参考:「点電荷の電荷密度と電場」
正電荷がつくる電場
# 電場 E
Ex(x, y) = scaling * x/(sqrt(x**2 + y**2)**3)
Ey(x, y) = scaling * y/(sqrt(x**2 + y**2)**3)
reset
unset xtics
unset ytics
unset border
# 表示範囲の設定
set xrange [-3:3]
set yrange [-3:3]
# special filename "++" のときは
# urange, vrange で描画範囲の設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 13
# y 軸方向のサンプル数
set isosamples 13
scaling = 0.2
# 正電荷の位置に青丸と +
x1 = 0
y1 = 1
set label 1 point pt 6 ps 1.5 lc "blue" at x1, y1
set label 2 center at first x1, y1 "+" tc "blue"
set title "正電荷がつくる電場"
plot "++" using 1:2:(Ex($1-x1,$2-y1)):(Ey($1-x1,$2-y1)) \
w vec notitle lc "blue" lw 1.5
$\boldsymbol{E}$ の向きを表す単位ベクトル場
電場 $\boldsymbol{E}$ の大きさは電荷からの距離の2乗に反比例するので,上図のようにベクトルの長さが大きく変化する。これはこれで正しいのだが,見やすくするために,以下のように $\boldsymbol{E}$ の向きを表す単位ベクトル場(大きさが $1$)を定義して,ベクトルの向きのみを正しく描画する。
$$\hat{\boldsymbol{E}} \equiv \frac{\boldsymbol{E}}{\sqrt{\boldsymbol{E}\cdot\boldsymbol{E}}} =
\frac{\boldsymbol{r} – \boldsymbol{r}_1}{|\boldsymbol{r} – \boldsymbol{r}_1|}$$$$\hat{E}_x = s \frac{x-x_1}{\sqrt{(x-x_1)^2 + (y-y_1)^2}}$$$$\hat{E}_y = s \frac{y-y_1}{\sqrt{(x-x_1)^2 + (y-y_1)^2}}$$
$s$ は $\mbox{scaling}$ 係数。実際の描画の際にベクトルの長さを微調整する係数。
正電荷がつくる電場の向き
# 電場 E
Ex(x, y) = x/(sqrt(x**2 + y**2)**3)
Ey(x, y) = y/(sqrt(x**2 + y**2)**3)
# 規格化された hat E
E(x, y) = sqrt(Ex(x, y)**2 + Ey(x, y)**2)
hEx(x, y) = scaling * Ex(x, y)/E(x, y)
hEy(x, y) = scaling * Ey(x, y)/E(x, y)
reset
unset xtics
unset ytics
unset border
# 表示範囲の設定
set xrange [-3:3]
set yrange [-3:3]
# special filename "++" のときは
# urange, vrange で描画範囲の設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 13
# y 軸方向のサンプル数
set isosamples 13
scaling = 0.18
# 正電荷の位置に青丸と +
x1 = 0
y1 = 1
set label 1 point pt 6 ps 1.5 lc "blue" at x1, y1
set label 2 center at first x1, y1 "+" tc "blue"
set title "正電荷がつくる電場の向き"
plot "++" using 1:2:(hEx($1-x1,$2-y1)):(hEy($1-x1,$2-y1)) \
w vec notitle lc "blue" lw 1.5
負電荷がつくる電場の向き
# 電場 E
Ex(x, y) = -x/(sqrt(x**2 + y**2)**3)
Ey(x, y) = -y/(sqrt(x**2 + y**2)**3)
# 規格化された hat E
E(x, y) = sqrt(Ex(x, y)**2 + Ey(x, y)**2)
hEx(x, y) = scaling * Ex(x, y)/E(x, y)
hEy(x, y) = scaling * Ey(x, y)/E(x, y)
reset
unset xtics
unset ytics
unset border
# special filename "++" のときは
# urange, vrange で描画範囲の設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 13
# y 軸方向のサンプル数
set isosamples 13
scaling = 0.18
# 負電荷の位置に赤丸と -
x2 = 0
y2 = -1
set label 3 point pt 6 ps 1.5 lc "red" at x2, y2
set label 4 center at first x2, y2 "-" tc "red"
set title "負電荷がつくる電場の向き"
plot "++" using 1:2:(hEx($1-x2,$2-y2)):(hEy($1-x2,$2-y2)) \
w vec notitle lc "red" lw 1.5
正電荷と負電荷がつくる電場の向き
- 参考:「2つの点電荷による電場」
# 電場 E
Ex(x, y) = x/sqrt(x**2 + y**2)**3
Ey(x, y) = y/sqrt(x**2 + y**2)**3
# 正電荷と負電荷がつくる電場
E2x(x, y) = Ex(x-x1, y-y1) - Ex(x-x2, y-y2)
E2y(x, y) = Ey(x-x1, y-y1) - Ey(x-x2, y-y2)
# 規格化された hat E
E(x, y) = sqrt(E2x(x, y)**2 + E2y(x, y)**2)
hE2x(x, y) = scaling * E2x(x, y)/E(x, y)
hE2y(x, y) = scaling * E2y(x, y)/E(x, y)
reset
unset xtics
unset ytics
unset border
# special filename "++" のときは
# urange, vrange で描画範囲の設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 17
# y 軸方向のサンプル数
set isosamples 17
scaling = 0.18
# 正電荷の位置に青丸と +
x1 = 0
y1 = 1
set label 1 point pt 6 ps 1.5 lc "blue" at x1, y1
set label 2 center at first x1, y1 "+" tc "blue"
# 負電荷の位置に赤丸と -
x2 = 0
y2 = -1
set label 3 point pt 6 ps 1.5 lc "red" at x2, y2
set label 4 center at first x2, y2 "-" tc "red"
set title "正電荷と負電荷がつくる電場の向き"
plot "++" using 1:2:(hE2x($1,$2)):(hE2y($1,$2)) \
w vec notitle lc 1 lw 1.8
電気双極子がつくる電場
- 参考:「電気双極子による電場」
$$\boldsymbol{E} = 3 \frac{\boldsymbol{r}\cdot\boldsymbol{p}}{r^5} \boldsymbol{r}
– \frac{\boldsymbol{p}}{r^3}$$
$\boldsymbol{p} = (0, 1, 0), \quad z = 0$ として
\begin{eqnarray}
E_x &=& \frac{3}{\left( x^2 + y^2 \right)^{5/2}} x y \\
E_y &=& \frac{3}{\left( x^2 + y^2 \right)^{5/2}} y^2 – \frac{1}{\left( x^2 + y^2 \right)^{3/2}} \\
\end{eqnarray}
電気双極子がつくる電場の向き
# 電場 E
Ex(x, y) = 3.* x*y/sqrt(x**2 + y**2)**5
Ey(x, y) = 3.* y*y/sqrt(x**2 + y**2)**5 - 1./sqrt(x**2 + y**2)**3
# 規格化された hat E
E(x, y) = sqrt(Ex(x, y)**2 + Ey(x, y)**2)
hEx(x,y) = scaling * Ex(x, y)/E(x, y)
hEy(x,y) = scaling * Ey(x, y)/E(x, y)
reset
unset xtics
unset ytics
unset border
set zeroaxis
# special filename "++" のときは
# urange, vrange で設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 17
# y 軸方向のサンプル数
set isosamples 17
scaling = 0.18
# 電気双極子 p
set arrow 1 from 0, -0.2 to 0, 0.2 filled lw 5 lc "red" lt 1
set title "電気双極子がつくる電場の向き"
plot "++" using 1:2:(hEx($1,$2)):(hEy($1,$2))\
w vec notitle lw 1.8
直線電流がつくる磁場 $\boldsymbol{B}$
$$\boldsymbol{B} = \frac{\boldsymbol{I}\times\boldsymbol{\rho}}{\rho^2}$$$$ \boldsymbol{I} = (0, 0, I), \quad \boldsymbol{\rho} = (x, y, 0)$$\begin{eqnarray}
B_x &=& – \frac{ I y}{x^2 + y^2} \\
B_y &=& \frac{ I x}{x^2 + y^2}
\end{eqnarray}
- 参考:「直線電流による磁場」
直線電流がつくる磁場
# 磁場 B
Bx(x, y) = - scaling * y/(x**2 + y**2)
By(x, y) = scaling * x/(x**2 + y**2)
reset
unset xtics
unset ytics
unset border
set zeroaxis
# special filename "++" のときは
# urange, vrange で設定
set urange [-3:3]
set vrange [-3:3]
set size ratio 1
# x 軸方向のサンプル数
set samples 15
# y 軸方向のサンプル数
set isosamples 15
scaling = 0.25
# 電線の位置
set label 1 point pt 6 ps 1.5 lc "blue" at 0, 0
set label 2 center at first 0,0 "+" tc "blue"
set title "直線電流がつくる磁場"
plot "++" using 1:2:(Bx($1,$2)):(By($1,$2))\
w vec notitle lw 1.8
直線電流がつくる磁場の向き
# 磁場 B
Bx(x, y) = - y/(x**2 + y**2)
By(x, y) = x/(x**2 + y**2)
# 規格化された hat B
B(x, y) = sqrt(Bx(x, y)**2 + By(x, y)**2)
hBx(x, y) = scaling * Bx(x, y)/B(x, y)
hBy(x, y) = scaling * By(x, y)/B(x, y)
reset
unset xtics
unset ytics
unset border
set zeroaxis
# 表示範囲の設定
set size ratio 1
# special filename "++" のときは
# urange, vrange で設定
set urange [-3:3]
set vrange [-3:3]
set samples 17
set isosamples 17
scaling = 0.25
# 電線の位置
set label 1 point pt 6 ps 1.5 lc "blue" at 0, 0
set label 2 center at first 0,0 "+" tc "blue"
set title "直線電流がつくる磁場の向き"
plot "++" using 1:2:(hBx($1,$2)):(hBy($1,$2)) \
w vec notitle lw 1.8