matlab - 在MATLAB中计算磁场中粒子的磁矩
问题描述
问题如下:我在磁场中有一个粒子,它在所有轴上都有分量,并且依赖于所有坐标
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。我知道如何分析计算它,但我在数字上努力这样做。我很乐意在这方面得到一些帮助。
先感谢您
解决方案
瞬时速度及其与磁场垂直的分量的解析公式仍应适用。(除非我误解了你的问题。)
在每个时间步应用以下方程。
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
推荐阅读
- python - 为基本的 Flask 应用程序添加背景图像?
- google-data-studio - 谷歌数据洞察过滤器控制大小写敏感
- python - 当我用 fig.canvas.draw 做 imshow 时,为什么边距这么大?
- monaco-editor - 摩纳哥编辑器:更改默认字形边距悬停工具提示样式
- php - php woocomerce 购物车除法和乘法
- arrays - 用两个条件计算 IFS
- servicestack - 如何测试具有重定向的端点?
- f# - F# 制作不必要的 DateTimeOffset 副本
- kubernetes - 使用 iptables 阻止来自集群外部的所有 Kubernetes 节点端口通信
- shared-libraries - 链接静态库 Vs。Linux 中的共享库