C_invhat=numpy.dot(numpy.dot(numpy.transpose(Vh),numpy.diag(s)),numpy.transpose(U)) C_inv=numpy.zeros((n,n),dtype=double) C_inv[n_strong:n,n_strong:n]=C_invhat zw=numpy.append((zs-0.1832)/zs,(1.4-0.1832)/1.4+numpy.zeros(n_weak,dtype=double)) delx,dely,chi_prevmat=smooth_pbl.chisq(x1,y1,id_image,n_strong,n_weak,a1mat,a2mat,strong_weight,C_inv,psi,g1mat,g2mat,kmat,e1,e2,zw) chi_prev=sum(chi_prevmat) print "chi_start= ",chi_prev eps=0.1 del_chi=100 n_iter=10 eps=0.01 #while (del_chi>eps): for i in xrange(1): C_kap,dpsi=smooth_pbl.create_psi(x1,y1,id_image,n_strong,n_weak,a1mat,a2mat,strong_weight,psi,kmat,g1mat,g2mat,C_inv,e1,e2,zw,sig_e,W) psi+=dpsi delta_x,delta_y,chi2=smooth_pbl.chisq(x1,y1,id_image,n_strong,n_weak,a1mat,a2mat,strong_weight,C_inv,psi,g1mat,g2mat,kmat,e1,e2,zw) print "chi= ",chi2 print "iter" del_chi=(chi_prev-chi2) chi_prev=chi2 kappa=numpy.dot(kmat,psi)*zw nx=240 kap_grid=smooth_pbl.grid_field_gaussian(x1,y1,kappa,nx,nx) gamma1=dot(g1mat,psi) gamma2=dot(g2mat,psi) #C_kap=smooth_pbl.cov_kap(n_strong,g1mat,g2mat,kmat,C_inv,W,sig_e,gamma1,gamma2) err=numpy.zeros(n,dtype=double)
e2=e2_sm.copy() s=eig1/(eig1**2+alpha**2) psi=numpy.zeros(n,dtype=double) C_inv=numpy.dot(numpy.dot(numpy.transpose(Vh),numpy.diag(s)),numpy.transpose(U)) zw=(1.4-0.165)/1.4 chi_prevmat=smooth_pbl.chisq(C_inv,psi,g1mat,g2mat,kmat,e1,e2,zw) chi_prev=sum(chi_prevmat) eps=0.1 del_chi=1000 n_iter=10 eps=0.01 while (del_chi>eps): L1,L2,dpsi=smooth_pbl.create_psi(psi,kmat,g1mat,g2mat,C_inv,e1,e2,zw) psi+=dpsi chi2mat=smooth_pbl.chisq(C_inv,psi,g1mat,g2mat,kmat,e1,e2,zw) chi2=sum(chi2mat) print "iter" del_chi=(chi_prev-chi2) chi_prev=chi2 kappa=numpy.dot(kmat,psi) nx=60 kap_grid=smooth_pbl.grid_field_gaussian(x1,y1,kappa,nx,nx) gamma1=dot(g1mat,psi) gamma2=dot(g2mat,psi) C_kap=smooth_pbl.cov_kap(g1mat,g2mat,kmat,C_inv,W,sig_e,gamma1,gamma2) err=numpy.zeros(n,dtype=double)