function ddg=func_ddg(PGi,PVi,Busnum,RestraintCount,Loadi,PD,QD) ddg1=sparse(size(PVi,1)+size(PGi,1)+Loadi*2+Busnum,RestraintCount); t1=sparse(length(Loadi),size(PVi,1)+size(PGi,1)+Busnum) ddg2=sparse(length(Loadi),diag(-2./PD.^2-2*(QD.^2-PD.^2)/(PD.^2+QD.^2))); ddg3=diag(2*(PD.^2-QD.^2)/(PD.^2+QD.^2)); ddg4=sparse(Busnum,RestraintCount); ddg=[ddg1;ddg2;ddg3;ddg4]; end