📄 formb.cpp
字号:
#include<math.h>
#include<stdlib.h>
#include"datastruct.h"
//形成节点导钠矩阵函数
void formB(double *B,struct Branchdata *Branchdata,struct Busdata *Busdata,
int Busnum,int Branchnum,int *balanceno)
{
int i,j,h;
double *b;
int hh=0;
b=new double[Busnum*Busnum];
for(i=0;i<Busnum;i++)//行
{
for(j=0;j<Busnum;j++)//列
{
b[i*Busnum+j]=0;
for(h=0;h<Branchnum;h++)
{
if(Branchdata[h].alrnum!=0&&i==j&&(Branchdata[h].from==Busdata[i].busno||Branchdata[h].to==Busdata[i].busno))
b[i*Busnum+j]+=(1/Branchdata[h].X);
if(((Branchdata[h].alrnum!=0&&i!=j)&&(Branchdata[h].from==Busdata[i].busno)&&(Branchdata[h].to==Busdata[j].busno))
||((Branchdata[h].alrnum!=0&&i!=j)&&(Branchdata[h].from==Busdata[j].busno)&&(Branchdata[h].to==Busdata[i].busno)))
b[i*Busnum+j]+=(-1/Branchdata[h].X);
}
//筛出平衡节点所在的行与列
if(i!=*balanceno&&j!=*balanceno)
{
B[hh]=b[i*Busnum+j];
hh++;
}
}
}
delete []b;
b=NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -