使用以下代码:
from numpy import *
from matplotlib.pyplot import *
Radius=10
N=1024
dx=2*Radius/N
dy=dx
x=r_[-Radius:Radius:dx]
y=r_[-Radius:Radius:dy]
X, Y = meshgrid(x,y)
R = sqrt(X**2+Y**2)
PHI = arctan2(Y,X)
ringthing = R < Radius
ring = zeros((2,N,N),dtype=complex)
ring[0] = ringthing
ring[1] = ringthing*exp(1j*PHI)
f=fig()
p1=f.add_subplot(121)
p1.imshow(angle(ring[0]))
p2=f.add_subplot(122)
p2.imshow(angle(ring[1]))
f.show()
第二张图片的左下角是红色的(相位等于π),没有明显的原因。为什么会这样?在
问题是圆外的值为零,而复角的定义并不明确(这是一个奇点)。浮点运算的结果是,在某些部分,它们的计算结果是
0
,而在另一些部分,则是-0
,这可以通过运行有了输出
^{pr2}$一种解决方法是将圆外的所有值显式设置为零。在
相关问题 更多 >
编程相关推荐