1. 单个点电荷电势
f[k_, Q_, r_] := k Q/r
Show[VectorPlot3D[{x, y, z}, {x, -10, 10}, {y, -10, 10}, {z, -10,
10}], SphericalPlot3D[
Evaluate@Table[f[8.9, 1, r], {r, 1, 3}], {\[Theta], 0, Pi}, {\[Phi],
0, 3 Pi/2}], PlotRange -> All]
2. 两个点电荷的电势
electroStaticPotential[q_, p_, r_] :=
Sum[ q[[i]]/Norm[r - p[[i]]], {i, Length[q]}]
electricField[{q1_,
q2_}, {{x1_, y1_, z1_}, {x2_, y2_, z2_}}] = -D[
electroStaticPotential[{q1,
q2}, {{x1, y1, z1}, {x2, y2, z2}}, {x, y, z}], {{x, y, z}}] /.
Derivative[1][Abs][x_] :> x/Sqrt[x^2];
c = ContourPlot3D[
Evaluate[electroStaticPotential[{1, -1}, {{-1, 0, 0}, {1, 0,
0}}, {x, y, z}]], {x, -6, 6}, {y, 0, 4}, {z, -4, 4},
Contours -> {-0.75, -0.25, -0.1, 0, 0.1, 0.25, 0.75},
ContourStyle -> Table[Hue[i/7, 1, 1, 0.5], {i, 0, 6}], Mesh -> None]
v = VectorPlot3D[
electricField[{1, -1}, {{-1, 0, 0}, {1, 0, 0}}], {x, -6, 6}, {y, 0,
4}, {z, -4, 4}, VectorStyle -> "Arrow3D", VectorPoints -> 5,
VectorScale -> {.3, Scaled[0.3]}]
Show[c, v]
2018年04月29日 11点04分
3
感谢大佬其实只用做一个一纬就行,老师要求用高斯公式不能直接积分,我用梯形法则算的1/r^2,还有个问题,要是做一个点电荷在电磁场里的三维运动怎么做am=qE+v叉乘B,a=dv/dt,v=dx/dt,求x的三维轨迹,电场E磁场B随便给个向量初值
2018年04月29日 13点04分