function [Jacob]=jacobian_M3(Busnum,Volt,Y,Angle,UAngel,r,c) %************************************************************************** % 程序功能 : 子函数——形成雅可比矩阵Jacobian % 编 者: % 编制时间:2010.12 %************************************************************************** %%参照图书馆6楼的书编写 %% 分别求雅克比矩阵的子阵H,L,N,J及有功无功分量P,Q AngleIJ=UAngel(r)-UAngel(c)-Angle'; mat_AngleIJ=sparse(r,c,AngleIJ,Busnum,Busnum); mat_IvAngleIJ=mat_AngleIJ'; H=sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)-sparse(1:Busnum,1:Busnum,Y.*sin(mat_AngleIJ)*Volt',Busnum,Busnum)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum); N=-sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)*Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum)+sparse(1:Busnum,1:Busnum,Y.*cos(mat_AngleIJ)*Volt',Busnum,Busnum)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum); J=sparse(1:Busnum,1:Busnum,Y.*cos(mat_AngleIJ)*Volt',Busnum,Busnum)+Y.*cos(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum); L=sparse(1:Busnum,1:Busnum,Y.*sin(mat_AngleIJ)*Volt',Busnum,Busnum)+Y.*sin(mat_IvAngleIJ)*sparse(1:Busnum,1:Busnum,Volt,Busnum,Busnum); t1=[J,L; H,N; ]'; Jacob=-t1; end