Octave已知磁矢势A的分布,求磁感应强度B
广告
{{v.name}}
25. 磁矢势
\(\mathbf{B} = abla\times\mathbf{A}\)
核心公式:
磁感应强度等于磁矢势的旋度:B = ∇×A。由于∇·B = 0,磁场总可以用矢势表示。
取矢势 A = (−B0·y/2, B0·x/2, 0),其旋度为均匀磁场 (0, 0, B0)。
本例在空间某点用中心差分数值计算旋度,验证结果与解析值一致。
Octave计算方法
已知参数:
- 矢势分量 A_x = -y/2,A_y = x/2,A_z = 0(B0 = 1 T 情形)
- 场点坐标 (0.1, 0.2, 0.3) m
代码如下:
function B = curl_of_A(x, y, z, h)
    % A = (-y/2, x/2, 0),数值旋度 Bz = ∂Ay/∂x - ∂Ax/∂y
    Ax = @(p) -p(2) / 2;
    Ay = @(p)  p(1) / 2;
    P = [x, y, z];
    dAy_dx = (Ay(P + [h, 0, 0]) - Ay(P - [h, 0, 0])) / (2 * h);
    dAx_dy = (Ax(P + [0, h, 0]) - Ax(P - [0, h, 0])) / (2 * h);
    B = [0, 0, dAy_dx - dAx_dy];
end
调用示例:
% 数值计算矢势旋度,求磁感应强度
h = 1e-9;
B = curl_of_A(0.1, 0.2, 0.3, h);
fprintf('磁感应强度 B = (%.2e, %.2e, %.2e) T', B(1), B(2), B(3));
运行结果:
磁感应强度 B = (0.00e+00, 0.00e+00, 1.00e+00) T
友链