【发布时间】:2015-02-15 23:50:02
【问题描述】:
我正在寻找一个矢量场,其中两个分量是通过数值积分确定的,并且积分是使用要绘制矢量的空间坐标计算的。
在下面的代码中,我定义了依赖于 r 和 z 的被积函数,然后在循环中定义它们的值并在每个 (r,z) 处计算两个积分。
我有两个问题:
1) 有没有更 Pythonic 的方法来使用变量 r 和 z 评估这些积分?
2) 存储积分值及其坐标以从meshgrids 生成quiver 图的最佳方法是什么?
import scipy.integrate as spi
import scipy.special as sps
import numpy as np
R = 2
V = 10
def Efield_r_integrand(k):
return np.exp(-k*z)*k*R*V*sps.jv(1,k*r)*sps.jv(1,k*R)
def Efield_z_integrand(k):
return np.exp(-k*z)*k*R*V*sps.jv(0,k*r)*sps.jv(1,k*R)
x_max = 3.0
z_max = 3.0
n_pts = 20
for i in xrange(n_pts):
r = float(i)/float(n_pts)*r_max
for j in xrange(n_pts):
z = float(j)/float(n_pts)*z_max
current_Efield_r = spi.quad(Efield_r_integrand,0,np.inf)[]
current_Efield_z = spi.quad(Efield_z_integrand,0,np.inf)[]
【问题讨论】:
标签: python numpy matplotlib scipy