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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 子空間迭代法(包含雅克比法).cpp

?? 求特征值的Jacobi法
?? CPP
字號:
void CGlobalElement::ModeAnalysis()
{
	bool bLargerThanError;
	int loop,loop1;
	int nTotalDOF,nFreeDOF,nMode,nLumpMass;
	CUIntArray aiBuf;
	double dBuf,dBuf1,dError,dRatioGKtoMass,dQm;
	CArray <double,double&> adBuf,adEigenBak; 
	CMatrix matBuf,matBuf1;
	CMatrix matV,matU,matA,matB;
	CSparseMatrix smatGKBak;
	CSparseMatrix smatMass;

	if(m_apEle.GetSize()==0) return;
	m_bFlagModeAnalyzed=true;
	dError=1.0e-5;

	nTotalDOF=m_Node.GetTotalDOF();
	nFreeDOF=m_Node.GetFreeDOF();

	m_adDampRatio.SetSize(m_nMode);
	m_smatGK.ElementBufRealloc();
	m_smatGK=0.0;

	GetMassMatrix(smatMass);

	for(loop=0;loop<m_nEle;loop++){
		m_apEle[loop]->StiffAssemble(m_smatGK);
	}

	dBuf=0.0;
	for(loop=0;loop<nFreeDOF;loop++)
		dBuf+=m_smatGK(loop,loop);
	dBuf/=nFreeDOF;
	dBuf1=0.0;
	for(loop=0;loop<nFreeDOF;loop++){
		dBuf1+=smatMass(loop,loop);
	}
	if(m_iMassMatrixType==CONSISTENT_MASS){
		dBuf1/=nFreeDOF;
	}
	else{
		nLumpMass=m_LumpMass.m_apLoad.GetSize();
		dBuf1/=nLumpMass*2.0;
	}
	dRatioGKtoMass=dBuf/dBuf1;

	dBuf=1.0/dBuf;
	m_smatGK*=dBuf;

	dQm=1.0/dBuf1;
	smatMass*=dQm;

	aiBuf.SetSize(nFreeDOF);
	adBuf.SetSize(nFreeDOF);
	dBuf=0.0;
	for(loop=0;loop<nFreeDOF;loop++){
		adBuf[loop]=-1.0;
		if(smatMass(loop,loop)>0.0){
			adBuf[loop]=m_smatGK(loop,loop)/smatMass(loop,loop);
		}
		if(dBuf<adBuf[loop]) dBuf=adBuf[loop];	
	}

	for(loop=0;loop<nFreeDOF;loop++){
		if(adBuf[loop]<0.0) adBuf[loop]=dBuf+100.0;	
	}

	aiBuf[0]=0;
	for(loop=0;loop<nFreeDOF;loop++){
		for(loop1=0;loop1<loop;loop1++){
			if(adBuf[aiBuf[loop1]]>adBuf[loop]){
				aiBuf.InsertAt(loop1,loop);
				break;
			}
		}
		if(loop1==loop){
			aiBuf[loop1]=loop;
		}
	}

	nMode=m_nMode+8;
	if(2*m_nMode<nMode) nMode=2*m_nMode;
	if(nMode>nFreeDOF)	nMode=nFreeDOF;
	if(m_iMassMatrixType==LUMP_MASS&&nMode>2*nLumpMass) nMode=2*nLumpMass;
	if(m_nMode>nMode)	m_nMode=nMode;

	matV.Realloc(nFreeDOF,nMode);
	matU.Realloc(nFreeDOF,nMode);
	matA.Realloc(nMode,nMode);
	matB.Realloc(nMode,nMode);

	m_adEigen.SetSize(nMode);
	adEigenBak.SetSize(nMode);
	for(loop=0;loop<nMode;loop++)
		m_adEigen[loop]=0.0;

	matV=0.0;
	for(loop=0;loop<nFreeDOF;loop++)
		matV(loop,0)=1.0;
	for(loop=1;loop<nMode;loop++)
		matV(aiBuf[loop],loop)=1.0;

	smatGKBak=m_smatGK;
	do{
		bLargerThanError=false;
		for(loop=0;loop<nMode;loop++)
			adEigenBak[loop]=m_adEigen[loop];
		matU=smatMass*matV;

		if(!m_smatGK.LdltSolve(nFreeDOF,matU))	return;
		matBuf=smatGKBak*matU;
		matBuf1.Trans(matU);
		matA=matBuf1*matBuf;
		matBuf=smatMass*matU;
		matB=matBuf1*matBuf;

		JacobiEigen(matA,matB);
		matV=matU*matB;
		for(loop=0;loop<nMode;loop++){
			dBuf=fabs((m_adEigen[loop]-adEigenBak[loop])/m_adEigen[loop]);
			if(dBuf>dError){
				bLargerThanError=true;
				break;
			}
		}
	}while(bLargerThanError);

	dBuf=sqrt(dQm);
	m_matEigenVector.Realloc(nTotalDOF,m_nMode);
	m_matEigenVector=0.0;
	for(loop=0;loop<m_nMode;loop++)
	for(loop1=0;loop1<nFreeDOF;loop1++)
		m_matEigenVector(loop1,loop)=matV(loop1,loop)*dBuf;

	for(loop=0;loop<m_nMode;loop++){
		m_adEigen[loop]*=dRatioGKtoMass;
		m_adEigen[loop]=sqrt(m_adEigen[loop]);
	}
	m_smatGK.ElementBufEmpty();
}

void CGlobalElement::JacobiEigen(CMatrix &matA, CMatrix &matB)
{
	CMatrix matBBak,matR,matRT,matV;
	double dAlfa,dBeta,dBuf,dBuf1;
	double dA,dB,dC;
	double dError;
	int nRow;
	int iRow,iCol;
	int loop,loop1;
	CArray<double,double&> adBuf;
	CUIntArray aiBuf;

	nRow=matA.GetRow();
	matBBak.Realloc(nRow,nRow);
	matR.Realloc(nRow,nRow);
	matRT.Realloc(nRow,nRow);
	matV.Realloc(nRow,nRow);
	matBBak=matB;

	matV=0.0;
	for(loop=0;loop<nRow;loop++)
		matV(loop,loop)=1.0;

	dError=1.0e-24;

	dBuf=0.0;
	for(loop=0;loop<nRow;loop++){
		for(loop1=loop+1;loop1<nRow;loop1++){
			dBuf1=matA(loop,loop1)*matA(loop,loop1)/(matA(loop,loop)*matA(loop1,loop1));
			if(dBuf<fabs(dBuf1)){
				dBuf=fabs(dBuf1);
				iRow=loop;iCol=loop1;
			}
			dBuf1=matB(loop,loop1)*matB(loop,loop1)/(matB(loop,loop)*matB(loop1,loop1));
			if(dBuf<fabs(dBuf1)){
				dBuf=fabs(dBuf1);
				iRow=loop;iCol=loop1;
			}
		}
	}

	while(dBuf>dError){
		matR=0.0;
		for(loop=0;loop<nRow;loop++) matR(loop,loop)=1.0;
		dA=matA(iRow,iRow)*matB(iRow,iCol)-matB(iRow,iRow)*matA(iRow,iCol);
		dC=-matA(iCol,iCol)*matB(iRow,iCol)+matB(iCol,iCol)*matA(iRow,iCol);
		if(dA==0.0&&dC==0.0){
			dAlfa=0.0;
			dBeta=-matA(iRow,iCol)/matA(iCol,iCol);
		}
		else{
			dB=matA(iRow,iRow)*matB(iCol,iCol)-matA(iCol,iCol)*matB(iRow,iRow);
			if(dB>=0.0){
				dBuf=dB/2.0;
				dAlfa=-dC/(dBuf+sqrt(dBuf*dBuf-dA*dC));
			}
			else{
				dBuf=dB/2.0;
				dAlfa=-dC/(dBuf-sqrt(dBuf*dBuf-dA*dC));
			}
			dBeta=dA/dC*dAlfa;
		}
		matR(iRow,iCol)=dAlfa;
		matR(iCol,iRow)=dBeta;
		matRT.Trans(matR);

		matA=matRT*matA*matR;
		matB=matRT*matB*matR;
		matV*=matR;

		dBuf=0.0;
		for(loop=0;loop<nRow;loop++){
			for(loop1=loop+1;loop1<nRow;loop1++){
				dBuf1=matA(loop,loop1)*matA(loop,loop1)/(matA(loop,loop)*matA(loop1,loop1));
				if(dBuf<fabs(dBuf1)){
					dBuf=fabs(dBuf1);
					iRow=loop;iCol=loop1;
				}
				dBuf1=matB(loop,loop1)*matB(loop,loop1)/(matB(loop,loop)*matB(loop1,loop1));
				if(dBuf<fabs(dBuf1)){
					dBuf=fabs(dBuf1);
					iRow=loop;iCol=loop1;
				}
			}
		}
	}

	matRT.Trans(matV);
	matR=matRT*matBBak;
	for(loop=0;loop<nRow;loop++){
		dBuf=0.0;
		for(loop1=0;loop1<nRow;loop1++){
			dBuf+=matR(loop,loop1)*matV(loop1,loop);
		}
		if(dBuf<0.0) dBuf=-dBuf;
		dBuf=sqrt(dBuf);
		for(loop1=0;loop1<nRow;loop1++)
			matV(loop1,loop)/=dBuf;
	}

	adBuf.SetSize(nRow);
	for(loop=0;loop<nRow;loop++){
		adBuf[loop]=matA(loop,loop)/matB(loop,loop);
	}
	aiBuf.SetSize(nRow);
	aiBuf[0]=0;
	for(loop=0;loop<nRow;loop++){
		for(loop1=0;loop1<loop;loop1++){
			if(fabs(adBuf[aiBuf[loop1]])>fabs(adBuf[loop])){
				aiBuf.InsertAt(loop1,loop);
				break;
			}
		}
		if(loop1==loop){
			aiBuf[loop1]=loop;
		}
	}

	for(loop=0;loop<nRow;loop++){
		m_adEigen[loop]=adBuf[aiBuf[loop]];
	}
	for(loop=0;loop<nRow;loop++){
		for(loop1=0;loop1<nRow;loop1++){
			matB(loop1,loop)=matV(loop1,aiBuf[loop]);
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区 二区| 日韩免费在线观看| 日韩免费视频一区二区| 中文字幕精品综合| 日欧美一区二区| 97精品电影院| 久久精品视频在线免费观看| 一区二区三区日韩欧美| 国产成人av一区二区三区在线观看| 欧美日韩精品一区二区三区 | 国产精品欧美一级免费| 日韩电影网1区2区| 日本道色综合久久| 国产精品久久久久久久久久免费看 | 亚洲精品国久久99热| 国产精品12区| 久久综合九色综合97婷婷女人 | 中文字幕五月欧美| 黄色小说综合网站| 欧美一区二区三区色| 亚洲综合色网站| 色综合久久综合网| 中文字幕一区二区在线播放| 国产乱码精品一区二区三| 日韩视频永久免费| 日本不卡中文字幕| 欧美日韩一区成人| 亚洲成av人**亚洲成av**| 91精品福利视频| 中文字幕一区二区三区在线观看| 成人国产精品免费观看视频| 久久亚洲精精品中文字幕早川悠里| 午夜成人免费电影| 欧美情侣在线播放| 日韩av电影一区| 欧美一区中文字幕| 久久福利资源站| 欧美精品一区二区精品网| 国产麻豆成人精品| 国产精品卡一卡二| 91麻豆免费看| 亚洲成人1区2区| 日韩午夜中文字幕| 国产精品一区二区在线看| 久久九九久久九九| k8久久久一区二区三区| 亚洲日本va午夜在线影院| 在线视频国内自拍亚洲视频| 亚洲成av人片观看| 日韩欧美综合一区| 国产一区二区导航在线播放| 中文字幕免费一区| 在线观看欧美黄色| 日韩av电影免费观看高清完整版在线观看 | 88在线观看91蜜桃国自产| 美女脱光内衣内裤视频久久网站 | 黑人巨大精品欧美黑白配亚洲| 一区二区在线观看不卡| 欧美日韩免费观看一区二区三区| 石原莉奈在线亚洲三区| 亚洲精品一区二区三区精华液 | 日产国产高清一区二区三区| 亚洲精品一区二区三区四区高清| 成人av免费在线观看| 亚洲成人激情av| www国产成人| 色8久久人人97超碰香蕉987| 日韩制服丝袜av| 国产精品麻豆欧美日韩ww| 在线观看成人小视频| 韩国成人在线视频| 亚洲美女电影在线| 精品国产伦一区二区三区免费| 成人av免费在线| 蜜桃精品在线观看| 亚洲天堂免费在线观看视频| 日韩一级片在线播放| 99久久亚洲一区二区三区青草 | 911精品产国品一二三产区| 国产乱理伦片在线观看夜一区| 亚洲综合色网站| 国产欧美精品国产国产专区| 欧美日韩国产天堂| 成人av网站在线观看| 国产自产高清不卡| 肉色丝袜一区二区| 亚洲乱码国产乱码精品精小说 | 无码av免费一区二区三区试看| 久久一夜天堂av一区二区三区| 欧美中文字幕一区二区三区亚洲| 国产成人精品亚洲午夜麻豆| 秋霞电影网一区二区| 亚洲精品亚洲人成人网| 亚洲国产高清不卡| 精品三级在线观看| 欧美剧情片在线观看| 91啪亚洲精品| 成人午夜av电影| 国产毛片精品视频| 久久精品国产精品亚洲精品| 婷婷中文字幕综合| 一区二区三区国产精华| 国产精品成人免费| 国产欧美日韩另类视频免费观看| 日韩女优制服丝袜电影| 欧美一区二区福利视频| 国产精品精品国产色婷婷| 欧美成人艳星乳罩| 日韩美女一区二区三区| 欧美电影免费观看高清完整版| 337p亚洲精品色噜噜狠狠| 欧美理论片在线| 91精品免费在线观看| 欧美精品1区2区3区| 欧美精品久久天天躁| 欧美福利视频导航| 欧美一级午夜免费电影| 日韩欧美国产麻豆| 精品少妇一区二区三区| 国产亚洲美州欧州综合国| 久久精品欧美一区二区三区不卡| 久久久久久久综合色一本| www国产精品av| 国产精品久久综合| 亚洲精品福利视频网站| 亚洲国产日韩精品| 蜜臀av性久久久久蜜臀av麻豆| 日本中文字幕一区二区有限公司| 欧美a级理论片| 九九精品一区二区| 国产精品77777| 成人av影院在线| 欧美影视一区在线| 在线综合视频播放| 久久女同精品一区二区| 国产精品国产a| 亚洲高清中文字幕| 免费成人美女在线观看.| 国产一区二区三区在线看麻豆| 国产高清久久久久| 97精品久久久久中文字幕| 欧美绝品在线观看成人午夜影视| 欧美一区二区三区免费视频| 久久久久久亚洲综合| 亚洲人成精品久久久久久| 日韩高清欧美激情| 成人在线视频首页| 欧美群妇大交群的观看方式| 精品免费一区二区三区| 最新国产精品久久精品| 日本不卡一区二区| fc2成人免费人成在线观看播放| 欧美日韩国产综合视频在线观看| 日韩欧美激情在线| 亚洲天堂2016| 精品一区二区三区免费视频| 91视频观看免费| 精品国产麻豆免费人成网站| 一区二区三区欧美视频| 国产综合久久久久影院| 欧美日韩亚洲不卡| 国产精品美女久久久久久久| 亚洲国产你懂的| fc2成人免费人成在线观看播放 | 一二三四社区欧美黄| 久国产精品韩国三级视频| 色婷婷久久综合| 久久久亚洲国产美女国产盗摄| 亚洲一区二区三区在线| 国产999精品久久| 欧美电视剧在线看免费| 亚洲成人激情av| 91麻豆6部合集magnet| 国产偷国产偷亚洲高清人白洁| 婷婷中文字幕一区三区| 在线免费观看日本欧美| 国产精品视频一二三| 激情丁香综合五月| 日韩一区二区三区免费观看| 亚洲精品国产视频| 99精品国产一区二区三区不卡| 国产亚洲欧美一级| 九一九一国产精品| 欧美一区二区在线视频| 亚洲韩国精品一区| 在线亚洲人成电影网站色www| 欧美韩国日本一区| 国产成人综合在线播放| 2欧美一区二区三区在线观看视频| 视频一区国产视频| 欧美二区乱c少妇| 五月婷婷色综合| 欧美视频精品在线| 亚洲成av人片在线| 欧美日本在线一区| 三级在线观看一区二区| 7777女厕盗摄久久久| 日韩不卡一区二区| 日韩精品在线看片z| 久久国产精品免费|