Mathematica实施Biot-Savart定律用于载流导线段

时间:2011-08-20 13:09:15

标签: wolfram-mathematica

我试图想象一个短的,线性的,载流导线段周围的磁场。

我所拥有的代码似乎无效,但我无法弄清楚原因,

p1 = {0, 0, 0};
p2 = {0, 0, 1};
p12 = p2 - p1;
Subscript[\[Mu], 0] = 4 Pi*10^(-7);
l[s_] := (1 - s) p1 + s p2;
R = {x, y, z} - l[s];
r = R/Sqrt[R.R];
B = Subscript[\[Mu], 0]/(4 Pi)     
Integrate[l[s]\[Cross]r/(R.R), {s, 0, 1}];

Manipulate[
 Show[
  VectorPlot3D[B, {x, -4, 4}, {y, -4, 4}, {z, -4, 4}, Boxed -> False, 
   Axes -> False],
  Graphics3D[{Red, Line[{p1, p2}],}],
  Boxed -> False,
  Axes -> False,
  SphericalRegion -> True,
  PlotRange -> ({
     {-4`, 4`},
     {-4`, 4`},
     {-4`, 4`}
    }),
  Lighting -> "Neutral"]
 ]

这不起作用,因为当R-> 0时,该字段会变为无穷大,还是有其他原因?有解决方法吗?

另外,假设我得到了正确的磁场表达式,是否还有其他可视化磁场的方法,例如:像天线模式?

我将非常感谢任何帮助,我正在尝试从演示项目和教科书中自学Mathematica,而且进展缓慢。

提前致谢, 本

1 个答案:

答案 0 :(得分:2)

整合需要花费很多时间。为了生成某些内容,最小化更改此内容,您可以添加GenerateConditions->False,如下所示:

B = Subscript[\[Mu], 0]/(4 Pi)*
   Integrate[(l[s]\[Cross]r/(R.R)), {s, 0, 1}, 
    GenerateConditions -> False];

哪个确实有用。你的其余代码看起来有点随机,你是否已经添加了一些内容以便排除故障并将其留在其中,或者您是否也需要帮助呢?