椭圆积分绘图错误
mathematica吧
全部回复
仅看楼主
level 3
木林刘 楼主
代码如下:
----------------------------------------------------------------
Subscript[x, 0] = 2; Subscript[y, 0] = 2;
\[Alpha][x_, y_] = Integrate[1/(x^2 + y^2 + 1 - 2*y*Cos[\[Psi]])^(3/2),
{\[Psi], 0, 2 Pi}, GenerateConditions -> False];
\[Beta][x_, y_] =
Integrate[Cos[\[Psi]]/(x^2 + y^2 + 1 - 2*y*Cos[\[Psi]])^(3/2),
{\[Psi], 0, 2 Pi}, GenerateConditions -> False];
Subscript[B, x] =
1/(2 Pi) (\[Alpha][x, y] - y*\[Beta][x, y]) // Simplify
Subscript[B, y] = 1/(2 Pi) x*\[Beta][x, y] // Simplify
g1 = VectorPlot[{Subscript[B, x], Subscript[B,
y]}, {x, -Subscript[x, 0], Subscript[x,
0]}, {y, -Subscript[y, 0], -0.000001}]
g2 = VectorPlot[{Subscript[B, x], Subscript[B,
y]}, {x, -Subscript[x, 0], Subscript[x, 0]}, {y, 0.000001,
Subscript[y, 0]}]
Show[{g1, g2}, PlotRange -> {{-2.2, 2.2}, {-2.2, 2.2}},
DisplayFunction -> $DisplayFunction,
FrameLabel -> {"x/R", "y/R"}]
----------------------------------------------------------------
这个是按教材书上输入的,
正确的
结果应该是下图所示:
我的计算结果表达式是对的,但是结果显示不出来。由于书上是较老版本,PlotVectorField函数老是出错,我用了VectorPlot函数,图形是空白的:
请教大家到底哪里出错了?
2019年04月28日 07点04分 1
level 3
木林刘 楼主
抱歉,对归一化不是很熟,这个具体如何操作呢 ?
2019年04月29日 02点04分 3
吧务
level 15
……归一化只是一方面。另一个要命的问题是下标在这里导致了问题。VectorPlot里面的
{Subscript[B, x], Subscript[B, y]}
必须要改成
{Subscript[B, x], Subscript[B, y]} // Evaluate
才行。否则画图时角标上的x和y会被赋值,导致Subscript[B, y]无法“变”成
里面的那个表达式。至于归一化,直接加选项
VectorScale -> {Automatic, Automatic, None}
就完事了。
2019年05月04日 05点05分 5
1