当前位置:首页 > chaoliujisuanC++
}
if(l!=i)
{ /* 行列交换 */ for (j=i;j<=n1;j++) {
t=a[f2(i,j,n1)];
a[f2(i,j,n1)]=a[f2(l,j,n1)]; a[f2(l,j,n1)]=t; } }
if (fabs(a[f2(i,i,n1)]-0)<1e-10) { /* 对角元近似于0, 无解 */ printf(\ exit (1); }
t0=a[f2(i,i,n1)]; for(j=i;j<=n1;j++) {
/* 除对角元 */ a[f2(i,j,n1)]/=t0; }
if(i==n0)
{ /* 最后一行,不用消元 */ continue; }
/* 消元 */ j1=i+1;
for(i1=j1;i1<=n0;i1++) {
c=a[f2(i1,i,n1)]; for(j=i;j<=n1;j++) {
a[f2(i1,j,n1)] -= a[f2(i,j,n1)] *c; } } }
if(k==1)
{ /* 输出上三角矩阵 */
fprintf(fp,\ for(io=1;io<=n1;io+=5) {
i0=(io+4)>n1?n1:(io+4); fprintf(fp,\
fprintf(fp,\ for(i=io;i<=i0;i++) {
fprintf(fp,\ }
for(i=1;i<=n0;i++) {
fprintf(fp,\ fprintf(fp,\ for(j=io;j<=i0;j++) {
fprintf(fp,\ } } } }
/* 回代求方程解 */ n2=n1-2;
for(i=1;i<=n2;i++) {
n3=n1-i;
for(i1=n3;i1<=n0;i1++) {
n4=n0-i;
a[f2(n4,n1,n1)] -= a[f2(i1,n1,n1)]*a[f2(n4,i1,n1)]; } }
if(k!=1) {
return; }
/* 输出电压修正值 */
fprintf(fp,\for(io=1;io<=n0;io+=4) {
i1=(io+1)/2;
i0=((io+3)/2)>(n0/2)?(n0/2):((io+3)/2); fprintf(fp,\ for(j=i1;j<=i0;j++)
{
fprintf(fp,\ }
i1 = 2*i0;
fprintf(fp,\ for(i=io;i<=i1;i++) {
fprintf(fp,\ } } }
#define Pi 3.1415927/180
void plsc(int n,int l,int m,float g[],float b[],float e[],float f[],\\ int e1[],int s1[],float g1[],float b1[],float c1[],float c[],\\
float co[],float p1[],float q1[],float p2[],float q2[],float p3[],\\
float q3[],float p[],float q[],float v[],float angle[],int k1) {
extern FILE *file4; FILE *fp;
float t1,t2,st,en,cm,x,y,z,x1,x2,y1,y2; int i,i1,j,m1,ns,pos1,pos2,km; ns=n-1;
if(file4==NULL) {
fp=stdout; } else {
fp=file4; }
fprintf(fp,\if(k1==1) {
for(i=0;i angle[i]*=Pi; e[i]=v[i]*cos(angle[i]); f[i]=v[i]*sin(angle[i]); } } t1=0.0;t2=0.0; for(i=1;i<=n;i++) { pos1=f1(i);pos2=f2(n,i,n); t1+=g[pos2]*e[pos1]-b[pos2]*f[pos1]; t2+=g[pos2]*f[pos1]+b[pos2]*e[pos1]; } pos1=f1(n); p[pos1]=t1*e[pos1]; q[pos1]=-t2*e[pos1]; m1=m+1; for(i1=m1;i1<=ns;i1++) { t1=0;t2=0; for(i=1;i<=n;i++) { pos1=f1(i);pos2=f2(i1,i,n); t1+=g[pos2]*e[pos1]-b[pos2]*f[pos1]; t2+=g[pos2]*f[pos1]+b[pos2]*e[pos1]; } pos1=f1(i1); q[pos1]=f[pos1]*t1-e[pos1]*t2; } for(i=0;i cm=co[i]; if(cm!=0) { q[i]-=(e[i]*e[i]+f[i]*f[i])*cm; } } fprintf(fp,\ fprintf(fp,\P BUS Q\for(i=0;i v[i]=sqrt(e[i]*e[i]+f[i]*f[i]); x=e[i]; y=f[i]; z=y/x; angle[i]=atan(z); angle[i]/=Pi;
共分享92篇相关文档