import numpy as np L=np.load('LambdaDH_30000000.npy'); psi=np.cumsum(L) u=np.arange(5.0,np.log(3e7)-0.01,0.001); x=np.exp(u); E=psi[np.floor(x).astype(int)]/np.sqrt(x) def amp(g,w=1.0): z=E*np.exp(-1j*g*u); out=[]; uc=np.arange(u[0]+3*w,u[-1]-3*w,0.25) for c in uc: k=np.exp(-0.5*((u-c)/w)**2); out.append(abs(np.sum(z*k))/np.sum(k)*2) return uc,np.array(out) for g,lab in [(85.699348,'off-line 0.8085+85.699i'),(43.081,'on-line? 43.08')]: uc,A=amp(g); m=(uc>=8)&(uc<=14); p=np.polyfit(uc[m],np.log(A[m]),1) print(lab,' slope of log|A| = %.4f'%p[0],' A(8)=%.3f A(14)=%.3f'%(A[np.argmin(abs(uc-8))],A[np.argmin(abs(uc-14))]))