我试图编写简单的数学运算来绘制由入射平面波在半无限平板上建立的总场,可以在此处找到。
总结一下:
s 根据文章的极坐标中的散射势。 表示入射平面波的角度,是波数。最后
如果您运行代码,您会看到我没有得到图片中的预期波场。
我的问题如下:是我在执行过程中犯了错误还是给出的公式不正确?
我的代码如下:
import numpy as np
from scipy.special import erf
import matplotlib.pyplot as plt
"""Plane wave scattering by a plane wave incident on a seminfinite plane
"""
global T
global k
T = np.pi/4.0 # Incident plane wave angle
k = 10 # Wave number
def phi_scattered(r,t):
W = lambda z: np.exp(-z**2)*(1-erf(z))
term1 = W(np.exp(1j*np.pi/4.0)*np.sqrt(2*k*r)*np.sin((t+T)/2.0))
term2 = W(np.exp(1j*np.pi/4.0)*np.sqrt(2*k*r)*np.sin((t-T)/2.0))
res = np.exp(1j*k*r)/2.0*(term1 + term2)
return res
def phi_incident(r,t):
return np.exp(1j*k*r*np.cos(t-T))
x1 = np.linspace(-50,50,100)
x2 = np.linspace(-50,50,100)
X1, X2 = np.meshgrid(x1,x2)
R = np.sqrt(X1**2+X2**2)
THETA = np.arctan2(X2,X1)
phi = phi_scattered(R,THETA) + phi_incident(R,THETA)
plt.figure()
plt.imshow(np.real(phi), vmin = np.min(np.real(phi)), vmax = np.max(np.real(phi)))
plt.colorbar()
plt.show()


