【问题标题】:Calculating the magnetic moment of a particle in a magnetic field in MATLAB在MATLAB中计算磁场中粒子的磁矩
【发布时间】:2018-06-24 22:54:10
【问题描述】:

问题如下: 我在磁场中有一个粒子,它在所有轴上都有分量,并且依赖于所有坐标

B = (B_x(x,y,z), B_y(x,y,z), B_z(x,y,z))

我求解了运动方程,并在每个时间步找到了粒子的位置 (x,y,z) 和速度 (v_x,v_y,v_z)。 我要计算的是粒子的能量和磁矩,以显示每个粒子的守恒。

寻找能量相当简单

E = m / 2 * (v_x.^2 + v_y.^2 + v_z.^2)

我得到了预期的结果(保护)。但是,我正在努力计算磁矩,定义为

mu = m * v_perp.^2 ./ (2*B_mag)

其中 v_perp 是垂直于磁场的速度部分,B_mag 是磁场的大小 (B_mag = sqrt(B_x.^2+B_y.^2+B_z.^2))。我的问题是执行 v_perp。我知道如何分析计算它,但我在数字上努力这样做。我很乐意在这方面得到一些帮助。

提前谢谢你

【问题讨论】:

    标签: matlab physics


    【解决方案1】:

    瞬时速度及其与磁场垂直的分量的解析公式仍应适用。 (除非我误解了你的问题。)

    在每个时间步应用以下方程。

    B = [B_x; B_y; B_z]; % magnetic field at particle's position
    v = [v_x; v_y; v_z]; % particle's instantaneous velocity
    
    v_prll = (B/norm(B)^2)*dot(v,B); % velocity vector parallel to magnetic field
    v_perp = v - v_prll; % velocity vector perpendicular to magnetic field
    

    【讨论】:

    • 我为迟到的回复道歉。我不太确定我是否理解 v_prll 的表达式。你能解释一下吗?
    • 我可以理解为什么点积 dot(v,B) 在那里,但我不明白乘以它的术语 (v/norm(v)^2)。既然我将 v 投影到 B 上,是否应该乘以 B/norm(B)^2?
    • @FlyGuy,是的!你是对的,我做了适当的改变。
    • 太好了,谢谢!你知道我如何计算另外两个绝热不变量的数值吗?我也被困在那里......
    • @FlyGuy。我当然愿意。如果你谷歌陈的等离子体物理教科书,你会发现磁场中粒子的三个绝热不变量的一部分。我可以帮你解决这个问题,但让我们继续并关闭这个答案,因为它回答了你原来的问题。
    猜你喜欢
    • 2014-02-13
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    相关资源
    最近更新 更多