亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sparsem_anslysis.cpp

?? 是稀疏矩陣庫以及全矩陣和稀疏矩陣分析程序源代碼
?? CPP
字號:



#include"stdafx.h"
#include"Analysis.h"
#include"Sparsem.h"
#include ".\analysis.h"
CSparseMatrix znmna_list; //聲明一個(gè)稀疏矩陣類對象
void Analysis::GetVBrNum()
{
	int i,j,k,t,tt;
	bNUM_vbNUM=new int[BranchNumber+1];
	vBranchNumber=0;
	for(i=1;i<BranchNumber+1;i++) bNUM_vbNUM[i]=0;//初始化
	for(i=1;i<BranchNumber+1;i++)
	{
		t=Branch[i].type;
		if(t==VS||t==VCVS||t==OPAMP)//必然的電壓定義之路
		{
			vBranchNumber++;
			bNUM_vbNUM[i]=vBranchNumber;
		}
		else if(t==CCVS)
		{
			vBranchNumber++;//本身為電壓定義支路
			bNUM_vbNUM[i]=vBranchNumber;
			k=Branch[i].ncfrom;
			tt=Branch[k].type;
			if((tt==G||tt==R)&&Branch[k].ncfrom==0&&Branch[k].ncto==0)
			{
				vBranchNumber++;//控制之路也為電壓定義支路
				bNUM_vbNUM[k]=vBranchNumber;
				Branch[k].ncto=1;//做一個(gè)標(biāo)記
			}
		}
		else if(t==CCCS){
			k=Branch[i].ncfrom;
			tt=Branch[k].type;
			if((tt==G||tt==R)&&Branch[k].ncfrom==0&&Branch[k].ncto==0)
			{
				vBranchNumber++;//控制之路作為電壓定義支路
				bNUM_vbNUM[k]=vBranchNumber;
				Branch[k].ncto=1;
			}
		}
		else if((t==G||t==R)&&Branch[i].ncfrom==1)
		{	//指定為電壓定義支路
			vBranchNumber++;
			bNUM_vbNUM[i]=vBranchNumber;
		}
	}
	vbNUM_bNUM=new int[vBranchNumber+1];
	for (i=1;i<BranchNumber+1;i++)//電壓定義支路到支路的映射
	{
		j=bNUM_vbNUM[i];
		vbNUM_bNUM[j]=i;
	}

}
/********************************************************/ 

void Analysis::Fromlist_symlu()
{

	znmna_list.newList(RANK,NONZERO,1);//秩為100,稀疏度為0.3 ,全主元排序
	znmna_list.setRankList(NodeNumber+vBranchNumber);//置list的階數(shù)
	int k,kk,nb,t,nf,nt,ncf,nct;
	nb=NodeNumber+vBranchNumber+1;
	for(int i=1;i<BranchNumber+1;i++)
	{
		br=Branch+i;
		t=br->type;
		nf=br->nfrom;
		nt=br->nto;
		ncf=br->ncfrom;
		nct=br->ncto;
		if(t==R)
		{
			if(ncf==0&&nct==0)//非電壓定義支路
			{
				if(nf==0) znmna_list.insertListEle(nt,nt);
				else if(nt==0)znmna_list.insertListEle(nf,nf);
				else{
					znmna_list.insertListEle(nf,nf);
					znmna_list.insertListEle(nt,nt);
					znmna_list.insertListEle(nf,nt);
					znmna_list.insertListEle(nt,nf);//對Y的貢獻(xiàn)
			 }
			}
			else
			{
				k=br->number;
				k=bNUM_vbNUM[k];
				k=k+NodeNumber;
				znmna_list.insertListEle(nf,k);//
				znmna_list.insertListEle(nt,k);//對B的貢獻(xiàn),即對節(jié)電電流的貢獻(xiàn)
				znmna_list.insertListEle(k,nf);/////對C的貢獻(xiàn)
				znmna_list.insertListEle(k,nt);/////           為支路特性
				znmna_list.insertListEle(k,k);//////對D的貢獻(xiàn)
			}
		}
		else if(t==G)
		{
			if(ncf==0&&nct==0)
			{
				if(nf==0) znmna_list.insertListEle(nt,nt);
				else if(nt==0) znmna_list.insertListEle(nf,nf);
				else{
					znmna_list.insertListEle(nf,nf);
					znmna_list.insertListEle(nt,nt);
					znmna_list.insertListEle(nt,nf);///////對Y的貢獻(xiàn)
					znmna_list.insertListEle(nf,nt);
				}
			}
			else{
				k=br->number;
				k=bNUM_vbNUM[k];
				k=k+NodeNumber;
				znmna_list.insertListEle(nf,k);//
				znmna_list.insertListEle(nt,k);//對B的貢獻(xiàn)
				znmna_list.insertListEle(k,nf);///對C的貢獻(xiàn)
				znmna_list.insertListEle(k,nt);///
				znmna_list.insertListEle(k,k);//////對D的貢獻(xiàn)
			}
		}
		else if(t==VCCS)  //電壓控制電流源支路
		{
			znmna_list.insertListEle(nf,ncf);// 修正,書上有誤                                                                                                                                                                                                                                                                                                    
			znmna_list.insertListEle(nf,nct);
			znmna_list.insertListEle(nt,ncf);
			znmna_list.insertListEle(nt,nct);
		}
		else if(t==CCCS)	//電流控制電流源支路
		{
			k=ncf;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertListEle(nf,k);
			znmna_list.insertListEle(nt,k);
		}
		else if(t==VCVS)
		{
			k=br->number;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertListEle(nf,k);
			znmna_list.insertListEle(nt,k);
			znmna_list.insertListEle(k,nf);
			znmna_list.insertListEle(k,nt);
			znmna_list.insertListEle(k,ncf);
			znmna_list.insertListEle(k,nct);
		}
		else if(t==CCVS)
		{
			kk=ncf;	//修正
			kk=bNUM_vbNUM[kk];
			kk+=NodeNumber;
			k=br->number;
			k=bNUM_vbNUM[k];
			k+=NodeNumber;
			znmna_list.insertListEle(nf,k);
			znmna_list.insertListEle(nt,k);
			znmna_list.insertListEle(k,nf);
			znmna_list.insertListEle(k,nt);
			znmna_list.insertListEle(k,kk);
		}
		else if(t==OPAMP)
		{
			k=br->number;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertListEle(nf,k);
			znmna_list.insertListEle(nt,k);
			znmna_list.insertListEle(k,ncf);
			znmna_list.insertListEle(k,nct);
		}
		else if(t==VS)
		{
			k=br->number;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertListEle(nf,k);
			znmna_list.insertListEle(nt,k);
			znmna_list.insertListEle(k,nf);
			znmna_list.insertListEle(k,nt);
		}
	}
	znmna_list.covListTab();

	//先優(yōu)化排序,在轉(zhuǎn)化成三角形表,因?yàn)殡p鏈表是動態(tài)結(jié)構(gòu)
	//方便生成,插入,刪除,和優(yōu)化排序,
	//然后再轉(zhuǎn)化成三角形表進(jìn)行LU分解
}

void Analysis::InsertB_symFE()//插入右端向量,并進(jìn)行符號前消
{
	for(int i=1;i<BranchNumber+1;i++)
	{
		BRANCH*	br=Branch+i;
		int t=br->type;
		int nf=br->nfrom;
		int nt=br->nto;
		if(t==CS)
		{	
			if(nf==0)znmna_list.insertB(nt);
			else if(nt==0)znmna_list.insertB(nf);
			else {
				znmna_list.insertB(nf);
				znmna_list.insertB(nt);
			}
		}
		else if (t==VS){
			int k=br->number;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertB(k);
		}
	}
	znmna_list.symFE();//先有端向量填元處理,再符號前消

}

void Analysis:: LoadAData_numLU()//裝配數(shù)值,進(jìn)行數(shù)值分解
{
	int k,kk;
	for(int i=1;i<BranchNumber+1;i++)
	{
		BRANCH* br=Branch+i;
		char t=br->type;
		int nf=br->nfrom;
		int nt=br->nto;
		int ncf=br->ncfrom;
		int nct=br->ncto;
		double val=br->value;

		if(t==R)//電阻支路
		{
			if(ncf==0&&nct==0)//非電壓定義支路
			{
				val=1.0/val;//轉(zhuǎn)換成電導(dǎo)
				if(nf==0)znmna_list.insertCoef(nt,nt,val);//始節(jié)點(diǎn)為0
				else if(nt==0)znmna_list.insertCoef(nf,nf,val);//終節(jié)點(diǎn)為零
				else
				{
					znmna_list.insertCoef(nf,nf,val); 
					znmna_list.insertCoef(nt,nt,val);
					znmna_list.insertCoef(nf,nt,-val);
					znmna_list.insertCoef(nt,nf,-val);
					//對Y的導(dǎo)納貢獻(xiàn),通過節(jié)點(diǎn)-節(jié)點(diǎn)關(guān)系來寫
					//其實(shí)此時(shí)看做電導(dǎo),形勢是一樣的·	
				}
			}
			else
			{      //電壓定義電阻支路
				k=br->number;
				k=bNUM_vbNUM[k];//電壓定義支路號
				k=k+NodeNumber;

				znmna_list.insertCoef(nf,k,1);//修正 書上為val,對B貢獻(xiàn),即對該節(jié)點(diǎn)節(jié)點(diǎn)電流貢獻(xiàn)
				znmna_list.insertCoef(nt,k,-1);//修正 
				znmna_list.insertCoef(k,nf,1.0); //	 
				znmna_list.insertCoef(k,nt,-1.0);//這3項(xiàng)為支路特性 Unf-Unto-val*jk=0
				znmna_list.insertCoef(k,k,-1.0*val);
				
			}
		}
		else if(t==G)//電導(dǎo)支路
		{
			if(ncf==0&&nct==0)//非電壓定義支路
			{
				if(nf==0)znmna_list.insertCoef(nt,nt,val);
				else if(nt==0)znmna_list.insertCoef(nf,nf,val);
				else
				{
					znmna_list.insertCoef(nf,nf,val);
					znmna_list.insertCoef(nt,nt,val);
					znmna_list.insertCoef(nf,nt,-1.0*val);
					znmna_list.insertCoef(nt,nf,-1.0*val);
					
				}
			}
			else//電壓定義電導(dǎo)支路
			{
				k=br->number;
				k=bNUM_vbNUM[k];//電壓定義支路號
				k=k+NodeNumber;
				znmna_list.insertCoef(nf,k,1.0);
				znmna_list.insertCoef(nt,k,-1.0);  //導(dǎo)納貢獻(xiàn)
				znmna_list.insertCoef(k,nf,1.0);  //對C貢獻(xiàn)
				znmna_list.insertCoef(k,nt,-1.0);
				znmna_list.insertCoef(k,k,-1.0/val); //對D貢獻(xiàn),注意此時(shí)支路特性為Unf-Unto-jk/G=0

			}
		}
		else if(t==VCCS)//電壓控制電流源支路
		{
			znmna_list.insertCoef(nf,ncf,val);	//對節(jié)點(diǎn)nf的電流貢獻(xiàn)用g(Uncf-Uncto)	表示
			znmna_list.insertCoef(nf,nct,-1*val); 
			znmna_list.insertCoef(nt,ncf,-1*val);//對nto貢獻(xiàn),左邊為流出節(jié)點(diǎn)的電流
			znmna_list.insertCoef(nt,nct,val);
			
		}
		else if(t==CCCS)//電流控制電流源支路
		{
			k=ncf;
			k=bNUM_vbNUM[k];//控制支路號
			k=k+NodeNumber;//電壓定義支路號
			znmna_list.insertCoef(nf,k,val); ///對B的貢獻(xiàn),流出nf的電流a*jk
			znmna_list.insertCoef(nt,k,-1.0*val); //流出nto的電流為-a*jk

		}
		else if(t==VCVS)//電壓控制電壓源支路
		{
			k=br->number;//支路號
			k=bNUM_vbNUM[k];//電壓定義支路號
			k=k+NodeNumber;
			znmna_list.insertCoef(nf,k,1.0); //
			znmna_list.insertCoef(nt,k,-1.0);// 對B的貢獻(xiàn),即電壓定義支路對節(jié)點(diǎn)的電流貢獻(xiàn)
			znmna_list.insertCoef(k,nf,1.0);  
			znmna_list.insertCoef(k,nt,-1.0);  
			znmna_list.insertCoef(k,ncf,-1.0*val); 
			znmna_list.insertCoef(k,nct,val);// 以上四個(gè)為支路特性,即Unf-Unto-(Uncf-Uncto)=0

		}
		else if(t==CCVS)//電流控制電壓源支路
		{
			kk=ncf;//控制支路號
			kk=bNUM_vbNUM[kk];
			kk=kk+NodeNumber;
			k=br->number;//支路號
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertCoef(nf,k,1.0);//對節(jié)點(diǎn)電流的貢獻(xiàn)
			znmna_list.insertCoef(nt,k,-1.0);//
			znmna_list.insertCoef(k,nf,1.0);// 支路特性Unf_Unto-rm*jk=0
			znmna_list.insertCoef(k,nt,-1.0);//對C的貢獻(xiàn)
			znmna_list.insertCoef(k,kk,-1.0*val);//對D的貢獻(xiàn)

		}
		else if(t==OPAMP)//理想運(yùn)算放大器,因?yàn)樘摂啵瑳]有電流貢獻(xiàn)多一看作一條電壓定義支路
		{
			k=br->number;//支路號
			k=bNUM_vbNUM[k];//電壓定義支路號
			k=k+NodeNumber;

			znmna_list.insertCoef(nf,k,1.0);//
			znmna_list.insertCoef(nt,k,-1.0);//對Y的貢獻(xiàn),
			znmna_list.insertCoef(k,ncf,1.0);//	輸入口支路特性即虛短,Ui-Uj=0;
			znmna_list.insertCoef(k,nct,-1.0);

		}
		else if(t==VS)//獨(dú)立電壓源
		{
			k=br->number;//支路號
			k=bNUM_vbNUM[k];//電壓定義支路號
			k=k+NodeNumber;
			znmna_list.insertCoef(nf,k,1.0);  //對節(jié)點(diǎn)電流的貢獻(xiàn)即Y
			znmna_list.insertCoef(nt,k,-1.0); //
			znmna_list.insertCoef(k,nf,1.0);   //Unf-Unto=0
			znmna_list.insertCoef(k,nt,-1.0); // 支路特性,C
		}
	}
	znmna_list.numLU();			  
}
void Analysis:: LoadBData_BS()

{
	int i,t,nf,nt,ncf,nct,k;
	double val;//裝配右端向量數(shù)值
	for(i=1;i<BranchNumber+1;i++)
	{
		BRANCH*br=Branch+i;
		t=br->type;
		nf=br->nfrom;
		nt=br->nto;
		ncf=br->ncfrom;
		nct=br->ncto;
		val=br->value;

		if(t==CS)
		{
			znmna_list.insertBVal( nf,-1*val);//修正
			znmna_list.insertBVal(nt,val);///因?yàn)橛疫吺橇魅牍?jié)點(diǎn)的獨(dú)立電流源的和
			//而我們規(guī)定電流源的方向?yàn)閚f->nto

		}		
		else if(t==VS)	
		{
			k=br->number;
			k=bNUM_vbNUM[k];
			k=k+NodeNumber;
			znmna_list.insertBVal(k,val);  //第k條電壓定義支路
		}

	}

	znmna_list. makeSolution();// 數(shù)值前消、后代,獲得Tab中的解
	CString Total;	
	CString outmsg;
	double m_out;
	for( i=1;i<NodeNumber+vBranchNumber+1;i++)
	{

		m_out=znmna_list.getX(i);
		if(i<NodeNumber+1)
			outmsg.Format("u[%d]=%4.4f\n",i,m_out);  
		else  {
			int v=vbNUM_bNUM[i-NodeNumber];
			outmsg.Format("vBranchNumber=%d; I[%d]=%4.8f\n",v,i-NodeNumber, (double) m_out);
		}
		Total=Total+outmsg;

	}
	AfxMessageBox(Total,MB_OK|MB_ICONINFORMATION);
	znmna_list.deleteList();
	znmna_list.delete_tableT();

}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲电影在线免费观看| www.亚洲色图.com| 自拍偷自拍亚洲精品播放| 91国在线观看| 国产精品主播直播| 亚洲成年人影院| 国产精品久久久久久久久快鸭 | 首页综合国产亚洲丝袜| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲成人av福利| 国产精品欧美极品| 欧美精品一区二区不卡| 色综合天天综合网天天看片| 国产高清在线观看免费不卡| 亚洲一区二区三区自拍| 中文字幕一区av| 久久免费午夜影院| 日韩午夜中文字幕| 欧美三级在线视频| 91一区二区三区在线播放| 国产成人免费在线| 国产一区二区在线影院| 欧美亚洲图片小说| av在线不卡免费看| 丁香婷婷综合色啪| 国产九九视频一区二区三区| 日韩有码一区二区三区| 亚洲午夜激情av| 一二三四社区欧美黄| 成人免费在线视频观看| 国产精品伦理一区二区| 国产精品无遮挡| 日本一区二区免费在线| 国产日韩精品一区二区三区 | 日本视频在线一区| 亚洲电影第三页| 亚洲一二三四久久| 亚洲午夜羞羞片| 亚洲一区二区三区四区在线免费观看 | 欧美性生活大片视频| 91视频国产观看| 99re这里只有精品首页| 99视频在线精品| 91论坛在线播放| 91福利视频网站| 在线视频中文字幕一区二区| 色婷婷av一区二区| 欧美三级视频在线观看| 欧美一区二区三区影视| 国产亚洲午夜高清国产拍精品 | 丁香五精品蜜臀久久久久99网站| 国产1区2区3区精品美女| 丁香天五香天堂综合| 国产成人免费视频网站 | 天天综合天天综合色| 日产国产欧美视频一区精品| 日韩国产精品91| 激情综合色综合久久综合| 国产麻豆精品一区二区| 高清国产午夜精品久久久久久| 成人深夜视频在线观看| 色综合欧美在线| 在线观看精品一区| 欧美一级二级三级乱码| 久久色中文字幕| 国产精品久久免费看| 亚洲男人电影天堂| 亚洲福利一区二区| 美女高潮久久久| 粉嫩绯色av一区二区在线观看| 91视频在线观看| 欧美一级理论性理论a| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 7777精品伊人久久久大香线蕉经典版下载| 欧美精品v国产精品v日韩精品| 欧美成人免费网站| 国产亚洲精品bt天堂精选| 日本一区二区三区四区| 亚洲免费在线视频| 天堂一区二区在线| 国产一区二区三区最好精华液| 国产白丝网站精品污在线入口| 91色乱码一区二区三区| 欧美一级黄色片| 中文字幕一区二区三区在线播放| 亚洲美女精品一区| 久久av资源网| 色综合网色综合| 久久综合色一综合色88| 亚洲免费av高清| 久久国产欧美日韩精品| 色呦呦日韩精品| 精品理论电影在线| 一色桃子久久精品亚洲| 蜜臀av性久久久久蜜臀aⅴ流畅| 处破女av一区二区| 91精品久久久久久久99蜜桃| 国产精品久久夜| 青青草成人在线观看| 一本一本大道香蕉久在线精品| 日韩手机在线导航| 亚洲综合在线观看视频| 国产精品一区二区三区乱码| 欧美日韩美女一区二区| 中文字幕亚洲精品在线观看| 蜜桃视频一区二区| 91极品视觉盛宴| 国产精品素人视频| 韩国视频一区二区| 欧美高清你懂得| 一区二区在线观看视频| 色中色一区二区| 99re8在线精品视频免费播放| 日韩欧美在线观看一区二区三区| 亚洲精品国产无套在线观| 国产一本一道久久香蕉| 日韩视频一区在线观看| 亚洲午夜久久久| 一本色道**综合亚洲精品蜜桃冫 | 日韩精品一区二区三区在线播放| 亚洲免费观看高清完整版在线| 麻豆国产欧美一区二区三区| 欧美日韩在线三区| 亚洲精品欧美专区| 99国产精品国产精品久久| 国产精品成人一区二区艾草| 国产精品2024| 久久网站最新地址| 久草在线在线精品观看| 在线成人免费视频| 视频一区二区中文字幕| 欧美中文字幕一区二区三区亚洲| 亚洲天堂福利av| 成人性生交大片免费看中文| 日本一区二区综合亚洲| 国产福利视频一区二区三区| 精品国产免费久久| 国产一区二区三区久久悠悠色av| 精品国产免费人成在线观看| 狠狠色丁香久久婷婷综| 精品国产伦理网| 国产一区福利在线| 国产欧美一区二区精品久导航| 国产精品一区在线| 国产午夜亚洲精品羞羞网站| 丁香亚洲综合激情啪啪综合| 中文字幕一区二区三区四区| 91啪九色porn原创视频在线观看| 亚洲柠檬福利资源导航| 欧美在线短视频| 视频一区免费在线观看| 欧美日韩精品一区二区天天拍小说| 亚洲精品ww久久久久久p站| 一本色道久久综合亚洲91| 亚洲一二三区视频在线观看| 欧美日韩一区视频| 午夜成人免费视频| 精品国产亚洲在线| 国产成人99久久亚洲综合精品| 国产精品美女久久久久久久久| 91免费看视频| 亚洲成人久久影院| 91精品国产入口| 国产精品一区二区久激情瑜伽| 欧美韩日一区二区三区| 91亚洲精品一区二区乱码| 一区二区久久久久久| 欧美一级高清片| 粉嫩久久99精品久久久久久夜| 亚洲激情第一区| 欧美一级片在线| 成人黄页在线观看| 亚洲成人你懂的| 久久精品一区二区三区四区| 91免费精品国自产拍在线不卡| 午夜av区久久| 国产欧美日韩综合| 欧美日韩精品系列| 国产一区二区三区久久久| 亚洲欧美日韩国产成人精品影院| 69p69国产精品| 处破女av一区二区| 日韩精品一区第一页| 国产亚洲成av人在线观看导航| 在线观看日韩电影| 国产乱人伦精品一区二区在线观看| 亚洲精品少妇30p| 久久这里只有精品视频网| 色成人在线视频| 激情久久久久久久久久久久久久久久 | 91丨porny丨户外露出| 麻豆成人91精品二区三区| 国产精品国产三级国产aⅴ中文| 欧美日韩国产大片| 国产一区二区三区免费| 亚洲高清三级视频| 国产精品欧美经典| 精品成人一区二区| 欧美三级日韩在线| 99久久久无码国产精品|