python绘制空间自由电荷电场

本文介绍如何使用Python编程语言,结合科学计算库matplotlib和numpy,来模拟并绘制三维空间中自由电荷产生的电场分布图。通过解析物理公式,计算电场强度,并用颜色梯度表示电场强弱,为学习电磁学提供直观的视觉辅助。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

import numpy as np
from mayavi import mlab
from sympy import *
from mayavi.mlab import *

q = 1 #电荷量
e0 = 4*3.14*8.85 #4×pi×ε0 放大10的12次方

def cacualte():
    x, y, z = np.mgrid[-1:1:20j, -1:1:20j,-1:1:20j]#x y z网格化,形成填充三维坐标数组

    r=np.sqrt(x**2+y**2+z**2)#与原点距离
   
    E_scale = q/(e0*(r**2))#电场大小
    Exoy = E_scale*(np.sqrt(x**2+y**2)/r)#电场在XOY投影大小
    Ex = Exoy*(x/np.sqrt(x**2+y**2))#电场在X分量大小
    Ey = Exoy*(y/np.sqrt(x**2+y**2))#电场在Y分量大小
    Ez = E_scale*(z/r)#电场在Z分量大小
    
    u = Ex #三坐标分量赋值
    v = Ey
    w = Ez
    
    scalars = x * x * 0.5 + y * y + z * z * 2.0#切片范围
    ball = mlab.points3d(np.array(0), np.array(0.), np.array(0),color=(1,0,0),extent = [-0.01,0.01,-0.01,0.01,-0.01,0.01])#插入小球代表电荷
    obj1 = volume_slice(x,y,z,scalars, plane_orientation='x_axes',extent = [-1,1,-1,1,1,1])#插入切片以观察矢量场
    obj = quiver3d(x, y, z, u, v, w, mask_points=1)#绘制3d矢量场
    return obj
    
cacualte()

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值