MATLAB中使用streamline函数绘制正负点电荷及它们构成的电偶极子的电场线分布图

电场强度等于电势梯度乘以-1,而这些代码在调用gradient函数求偏导后并没有乘以-1。

    先把上一篇博客中不严谨的代码拿出来:

% 在二维平面上绘制一个正点电荷的电场线图。
k = 8.9875e+9; % 比例系数:
e = 1.602e-19; % 指定点电荷电量为一个电子带电量绝对值
ke = k * e;    % k by e
d = -2:0.05:2;
[x, y] = meshgrid(d, d);
% 计算电位
V = ke ./ sqrt(x.^2 + y.^2 + 0.01); % 加了一个0.01,防止分母为0。
% 求电势的梯度,即电场强度
[E_x, E_y] = gradient(V); %  警告:这里没有乘以-1
sx = [linspace(-1, 1, 10), linspace(1, 1, 10), linspace(-1, 1, 10), linspace(-1, -1, 10)];
sy = [linspace(1, 1, 10), linspace(-1, 1, 10), linspace(-1, -1, 10), linspace(-1, 1, 10)];
hold on;
streamline(x, y, E_x, E_y, sx, sy);
contour(x, y, V, linspace(min(V(:)), max(V(:)), 60));
hold off;

   运行结果:

    图片说明:其中, 由中心向四周辐射的射线就是描述正点电荷电场的电场线,等势线用色彩渐变的同心圆环表示(中央圆环颜色为暖色系,说明越靠近正电荷表面,电势越大;外围圆环颜色为冷色系,说明越远离正电荷表面,电势越小)。

你可能感兴趣的:(MATLAB解决方案)