def update_comm_info(self,cinfo,iStar,mingrad,txmin,Gamma):
def UpdateAinv2(binv2,u,v,UVT,Denom,alpha,Xi):
return binv2-alpha*UVT/Denom-alpha*UVT.T/Denom+alpha**2*UVT*Xi*u.T/Denom**2
def UpdateAinv3(binv3,U1,U2,U3,D,Xi,Gamma):
return binv3-Gamma*U2*U2.T/D-Gamma*U1*U3.T/D-Gamma*U3*U1.T/D+Gamma**2*U1*U2.T*Xi*U2.T/D**2+Gamma**2*U2*U2.T*Xi*U1.T/D**2+Gamma**2*U1*U3.T*Xi*U1.T/D**2-Gamma**3*U1*U2.T*Xi*U2.T*Xi*U1.T/D**3
ainv,ainv2,ainv3=cinfo
binv=1.0/(1.0-Gamma)*ainv
binv2=1.0/(1.0-Gamma)**2*ainv2
binv3=1.0/(1.0-Gamma)**3*ainv3
u1=binv*np.matrix(txmin).T
u2=binv2*np.matrix(txmin).T
u3=binv3*np.matrix(txmin).T
UVT=u1*u2.T
Denom=1+Gamma*u1.T*np.matrix(txmin).T
ainv=rankOneInvUpdate(binv,Gamma*np.matrix(txmin).T,np.matrix(txmin).T)
ainv2=UpdateAinv2(binv2,u1,u2,UVT,Denom,Gamma,np.matrix(txmin).T)
ainv3=UpdateAinv3(binv3,u1,u2,u3,Denom,np.matrix(txmin).T,Gamma)
return ainv,ainv2,ainv3
评论列表
文章目录