코드 자체는 다음과 같습니다. 이 코드를 Google Colab에 직접 붙여넣으면 플롯이 생성됩니다. numpy를 np로, matplotlib.pyplot을 plt로 가져오기 R=10.0; P=34.0; q=2*np.pi/P nz,nk=720,560; kz_max,kp_max=2.0,2.0 시그마_z=0.04; m최대=20; delta_phi=np.pi; delta_z=P/2.0 h=3.4; N_bp=400; 베타=0.25 kz=np.linspace(-kz_max,kz_max,nz); kp=np.linspace(0,kp_max,nk) n_tau=512; tau=np.linspace(0,np.pi,n_tau); s_tau=np.sin(타우) def Jv(m,x): x=np.asarray(x); ph=m*tau[없음,:]-x[:,없음]*s_tau[없음,:] np.trapz(np.cos(ph),tau,axis=1)/np.pi를 반환합니다. I=np.zeros((nz,nk),dtype=np.float64) m의 범위가 -mmax,mmax+1인 경우: Jm=Jv(abs(m),kp*R); L=np.exp(-0.5*((kz-m*q)/sigma_z)**2)[:,없음] A2=2.0+2.0*np.cos(m*델타_파이+kz[:,없음]*델타_z) I+=(Jm*Jm)[없음,:]*L*A2 eps=1e-9 S=(np.sin(0.5*N_bp*h*kz)**2)/((np.sin(0.5*h*kz)**2)+eps); S=(S/(S.max()+eps))[:,없음] I*=1.0+베타*S I/=I.max()+1e-12; I=np.log1p(12*I) I_full=np.concatenate([I[:,::-1],I],축=1) 범위=[-kp_max,kp_max,-kz_max,kz_max] plt.figure(그림 크기=(6,8)) plt.imshow(I_full,extent=extent,origin='lower',aspect='auto') plt.axis('off') plt.savefig('photo51_like.png',dpi=220,bbox_inches='꽉 조임',pad_inches=0.02) https://t.co/HDadZBCvO4()
파이썬에서 직접 추출한 최종 이미지는 다음과 같습니다.
