使用VectorPlot3D绘制Mathematica中2点电荷系统的电场

时间:2016-12-13 21:03:58

标签: plot wolfram-mathematica

我试图绘制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]

<img src="http://i.imgur.com/QzrQkTi.pn" alt="ContourPlot" height="42" width="42">

生成电场的矢量图。 (不工作)

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]}]

enter image description here

结合轮廓和矢量图

Show[c, v]

enter image description here

0 个答案:

没有答案