我试图绘制2点电荷系统的电场,该点由2点电荷q 1 组成,电荷+1在位置(0,0,1)和q 2 在位置(0,0-1)处带电荷-1。
以下是我一直使用的代码,遵循mathematica的VectorPlot3D文档的应用程序部分中的示例。
除了绘制电场之外,一切似乎都在起作用,我不知道为什么。
请注意,我的电位使用0.01偏移来防止r = 0处的奇点。
定义静电势
electroStaticPotential[q_, p_, r_] :=
Sum[q[[i]]/Norm[(r + 0.01) - p[[i]]], {i, Length[q]}]
用符号显示静电电位
electroStaticPotential[{Subscript[q, 1], Subscript[q, 2]}, {{Subscript[x, 1], Subscript[y, 1], Subscript[z, 1]}, {Subscript[x, 2], Subscript[y, 2], Subscript[z, 2]}}, {x, y, z}] // TraditionalForm
以值
显示静电电位electroStaticPotential[{1, -1}, {{0, 0, 1}, {0, 0, -1}}, {x, y, z}] // TraditionalForm
定义电场
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}}] /. Abs'[x_] :> x/Sqrt[x^2];
在这里,我生成了我潜力的ContourPlot。
c = ContourPlot3D[Evaluate[electroStaticPotential[{1, -1}, {{0, 0, 1}, {0,0, -1}}, {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[Evaluate[electricField[{1, -1}, {{0, 0, 1}, {0, 0, -1}}]], {x, -6, 6}, {y, 0, 4}, {z, -4, 4}, VectorStyle -> "Arrow3D", VectorPoints -> 5, VectorScale -> {.3, Scaled[0.3]}]
结合轮廓和矢量图
Show[c, v]