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

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

?? factor.cpp

?? 用MFC實現的數據主成份分析
?? CPP
字號:
// Factor.cpp: implementation of the Factor class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "ProGram2.h"
#include "Factor.h"
#include "Matrix.h"
#include "math.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Factor::Factor()
{

}

Factor::~Factor()
{

}
Factor::Factor(CMatrix mx, double dep_m)
{
	X=mx;
	this->dep_m=dep_m;
	n=X.GetNumRows();
	p=X.GetNumCols();
	h2=new double[p];
	a2=new double[p];
	CMatrix A1(p,p);
	A=A1;
//	delete A1;
	R.MakeUnitMatrix(p);
//	AfxMessageBox("接收數據完成");

}
void Factor::Run(void)
{
	int i,j,k,h;
	double *avex1,*avex2,sum;
	avex1=new double[n];
	avex2=new double[p];

	sum=0;
	for(i=0;i<n;i++)
	{	sum=0;
		for (j=0;j<p;j++)
		{
			sum=sum+X.GetElement(i,j);
		}
		avex1[i]=sum/p;
	}
	//求列均值
	for( i=0;i<p;i++)
	{	sum=0;
		for (j=0;j<n;j++)
		{
			sum=sum+X.GetElement(j,i);
		}
		avex2[i]=sum/n;
	}
	//求離差陣
	CMatrix E(p,p);
	for( i=0;i<p;i++)
	{	
		for (j=0;j<p;j++)
		{   
			sum=0;
			for(k=0;k<n;k++) 
			{	
				sum=sum+(X.GetElement(k,i)-avex1[i])*(X.GetElement(k,j)-avex2[j]);
			}
			E.SetElement(i,j,sum/(n-1));
		}
	}

	for( i=0;i<n;i++)
	{	
		for (j=0;j<p;j++)
		{   
			X.SetElement(i,j,(X.GetElement(i,j)-avex2[j])/sqrt(E.GetElement(j,j)/(n-1)));//數據標準化
		}
	}

//	CMatrix R(p,p);
	for( i=0;i<p;i++)
	{	
		for (j=0;j<p;j++)
		{	
			R.SetElement(i,j,E.GetElement(i,j)/sqrt(E.GetElement(i,i)*E.GetElement(j,j)));
		}
	}

	//cout<<"\n 2\n";
	////這里可能需要輸出相關矩陣;

	///////////////////////////(三)求解相關矩陣R的特征值和特征向量////////////////////
//	CMatrix te_R;
	te_R=R.Eigenv();
	double temp;
/*	for(i=0;i<p;i++)
	{	temp=-te_R.GetElement(i,p);
		//cout<<te_R.GetElement(i,p)<<endl;
		te_R.SetElement(i,p,temp);//先改正過來,看看后面的結果對不對????????????????

	}*/
	//show(te_R);//特征值是正確的,第san個特征向量符號反了。。。。。

	//////////////////////////(四)計算特征值的百分率和累積百分率//////////////////////
	double lamda[20],Eve_lamda[20],Acu_lamda[20];
	for( i=0;i<p;i++)
	{
		lamda[i]=te_R.GetElement(0,i);//特征值保存在該一維數組中
		//cout<<lamda[i]<<endl;
	}
	//cout<<All_lamda<<endl;
	for( i=0;i<p;i++)
	{
		Eve_lamda[i]=lamda[i]/p;//特征值的百分率
	}
	Acu_lamda[0]=Eve_lamda[0];
	for( i=1;i<p;i++)
	{
		Acu_lamda[i]=Acu_lamda[i-1]+Eve_lamda[i];//特征值的累積百分率
	}
	

	/////////////////////////(五)確定主因子數/////////////////////
//	cout<<"請選擇累積百分率確定主因子數m"<<endl;
//	double dep_m;
//	cin>>dep_m;
	int m=0;
	for( i=0;i<p;i++)
	{
		if(Acu_lamda[i]>=dep_m)
		{
			m=i+1;
			break;
		}
	}
	m_ColsOfA=m;
//	cout<<m<<endl;
	////////////////////////(六)對特征向量矩陣進行規格化處理,得因子載荷A/////////////
//	CMatrix A(p,p);
	for( i=0;i<p;i++)
	{	
		for (j=0;j<p;j++)
		{	
			if(lamda[j]<=0)//??????????????????????
			{
				lamda[j]=0;
			}
			//cout<<te_R.GetElement(j+1,i)<<endl;
			A.SetElement(j,i,te_R.GetElement(j+1,i)*sqrt(lamda[i]));//lamda[i];////每一行是一個主因子的載荷
		}
	}

	//show(A);///所有因子的載荷
	///////////////////////////(七)計算共同度和特殊方差////////////////////

	h2=new double[p];
	a2=new double[p];///確定個數
	//h2[0]=0;
	for( i=0;i<p;i++)
	{	h2[i]=0;
		for (j=0;j<m;j++)
		{	
			h2[i]=h2[i]+A.GetElement(i,j)*A.GetElement(i,j);
			a2[i]=1-h2[i];
		}
		h2[i]=sqrt(h2[i]);
		
	}

	///////////////////////////(八)方差正交旋轉///////////////////////////
            
	double a,b,c,d,u,v,tan_sifaijiao_ij,t1,t2,V,V1,V2;//,temp;
	CMatrix T;
	CMatrix B1(p,m);//主因子載荷陣
	B=B1;
	for(i=0;i<p;i++)
	{
		for(j=0;j<m;j++)
		{
			B.SetElement(i,j,A.GetElement(i,j));
		}
	}
	//show(B);
	temp=0;
	V=0;
	for(h=0;h<m;h++)
	{	
		V1=0;	
		V2=0; 
		for(k=0;k<p;k++)
		{
			V1=V1+3*(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[k])*(B.GetElement(k,h)/h2[h]);
			V2=V2+(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[h]);	
		}
		V=V+((double) 1/(p*p))*(V1-V2*V2);
	}
	//cout<<V<<"**************"<<endl;	
	while (fabs(V-temp)>=0.0001)
	{		
		for(i=0;i<m;i++)
		{
			for(j=i+1;j<m;j++)
			{	
				a=0;
				b=0;
				c=0;
				d=0;
				t1=0;
				t2=0;
				for(k=0;k<p;k++)
				{
					u=0;
					v=0;
					u=(B.GetElement(k,i)/h2[k])*(B.GetElement(k,i)/h2[k])-(B.GetElement(k,j)/h2[k])*(B.GetElement(k,j)/h2[k]);
					v=2*(B.GetElement(k,i)/h2[k])*(B.GetElement(k,j)/h2[k]);
					//cout<<v<<"$$$";
					a=a+u;
					b=b+v;
					c=c+(u*u-v*v);
					d=d+2*u*v;
				}
				//cout<<a<<"****"<<b<<"****"<<c<<"****"<<d<<endl;
				tan_sifaijiao_ij=(d-2*a*b/p)/(c-(a*a-b*b)/p);///1、計算旋轉角////////
				t1=sin(atan(tan_sifaijiao_ij)/4);
				t2=cos(atan(tan_sifaijiao_ij)/4);
				//cout<<t2<<endl;//<<"%%%%%%%%"<<endl;
				T.MakeUnitMatrix(m);///2、生成一系列旋轉矩陣////
				T.SetElement(i,i,t2);
				T.SetElement(i,j,-t1);
				T.SetElement(j,i,t1);
				T.SetElement(j,j,t2);
				//show(T);
				B=B*T;
				//show(B);
			}
		}

		temp=V;
		V=0;
		for(h=0;h<m;h++)
		{	
			V1=0;
			V2=0; 
			for(k=0;k<p;k++)
			{
				V1=V1+3*(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[k])*(B.GetElement(k,h)/h2[h]);
				V2=V2+(B.GetElement(k,h)/h2[h])*(B.GetElement(k,h)/h2[h]);	
			}
			V=V+((double) 1/(p*p))*(V1-V2*V2);
		}  
//	cout<<fabs(V-temp)<<endl;
	}
//	show(B);//4.最后輸出旋轉后的主因子載荷////


					  //////////////////////////(十)進行斜旋轉/////////////////////////

						 //原理還沒搞清楚,進一步研究中。。。。。。

					  //////////////////////////////////////////////////////////////////
			//////////////////////////(十一)計算因子得分//////////////////////////////
//	CMatrix F;

	F=B.Transpose()*R.Invert()*X.Transpose();//

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清视频不卡网| 亚洲6080在线| 国产91综合网| 国产亚洲短视频| 白白色 亚洲乱淫| 亚洲欧美另类小说| 欧美老肥妇做.爰bbww| 日精品一区二区三区| xnxx国产精品| 99re在线视频这里只有精品| 亚洲福中文字幕伊人影院| 91精品国产福利在线观看| 韩国一区二区三区| 国产精品黄色在线观看| 欧美日韩一区二区电影| 久久精品国产精品亚洲综合| 欧美—级在线免费片| 一本大道久久a久久精品综合| 亚洲午夜在线视频| 精品福利一二区| 99re热视频精品| 日本亚洲电影天堂| 欧美国产日产图区| 正在播放亚洲一区| 国产成人av一区二区三区在线观看| 最近日韩中文字幕| 91精品国产综合久久小美女| 国产99久久久国产精品潘金| 亚洲一区二区三区视频在线播放| 欧美videofree性高清杂交| 成人国产电影网| 青青草国产成人99久久| 亚洲天堂免费在线观看视频| 91精品国产91久久综合桃花| 9i看片成人免费高清| 美日韩一级片在线观看| 亚洲精品综合在线| 亚洲精品一区二区三区蜜桃下载 | 日韩精品成人一区二区在线| 久久久亚洲精品一区二区三区| 91黄色在线观看| 国产一区二区主播在线| 亚洲成va人在线观看| 国产精品电影院| 精品日产卡一卡二卡麻豆| 在线精品观看国产| av电影在线观看完整版一区二区| 激情综合网av| 亚洲成年人网站在线观看| 亚洲欧美在线另类| 久久综合精品国产一区二区三区 | 日韩美女一区二区三区四区| 色综合天天综合网国产成人综合天| 久久国产成人午夜av影院| 国产一区二区美女| 日韩高清一区二区| 亚洲精品水蜜桃| 中文字幕第一区第二区| 欧美本精品男人aⅴ天堂| 6080日韩午夜伦伦午夜伦| 色综合亚洲欧洲| 不卡av在线网| 福利电影一区二区三区| 国产麻豆精品视频| 久久精品久久久精品美女| 午夜亚洲福利老司机| 亚洲精品乱码久久久久久日本蜜臀| 国产欧美日韩在线看| 亚洲精品在线电影| 日韩美女主播在线视频一区二区三区| 欧美日韩另类国产亚洲欧美一级| 93久久精品日日躁夜夜躁欧美| 成人网页在线观看| 国产福利一区二区三区视频| 国产成人精品免费| 成人午夜免费电影| 成人黄色电影在线| 成人av在线资源网站| 不卡电影一区二区三区| 国产成a人亚洲| 国产99久久久国产精品| 成人aa视频在线观看| 成人免费高清视频| 一本一道久久a久久精品 | 一区二区三区高清在线| 亚洲九九爱视频| 一区二区三区精品视频| 亚洲国产精品一区二区久久恐怖片| 一区二区三区精品久久久| 亚洲第一综合色| 视频在线观看国产精品| 狠狠色狠狠色综合日日91app| 国产精品18久久久久久久久久久久 | 丰满少妇久久久久久久| 国产精品69毛片高清亚洲| 成人看片黄a免费看在线| 99久久综合国产精品| 91行情网站电视在线观看高清版| 欧美日韩中文字幕一区| 在线电影院国产精品| 精品久久久久久久人人人人传媒| 久久久久久久综合日本| 中文字幕亚洲电影| 亚洲午夜视频在线观看| 久久er精品视频| 成人高清av在线| 欧美日韩国产首页| 精品播放一区二区| 国产精品第五页| 亚洲成a人片在线不卡一二三区| 老司机精品视频导航| k8久久久一区二区三区| 欧美色偷偷大香| 久久久久久免费毛片精品| 亚洲另类在线视频| 久久99精品国产91久久来源| k8久久久一区二区三区| 91精品在线观看入口| 久久精品欧美日韩| 亚洲一区二区精品3399| 精久久久久久久久久久| 色域天天综合网| 精品美女在线播放| 亚洲精品欧美激情| 精品制服美女丁香| 久久五月婷婷丁香社区| 一区二区欧美精品| 国产精品一二三四| 8x8x8国产精品| 亚洲免费毛片网站| 国产精品影视网| 欧美日精品一区视频| 中文字幕一区在线观看视频| 美女网站视频久久| 日本电影欧美片| 久久久综合网站| 日本三级韩国三级欧美三级| 91丨porny丨中文| 久久色在线视频| 美腿丝袜一区二区三区| 欧美视频第二页| 国产欧美日本一区二区三区| 蜜臀av国产精品久久久久 | 日本人妖一区二区| 色婷婷av一区二区三区gif| 久久久久久久久久久久久女国产乱| 亚洲一区二区三区四区不卡| 成人app在线| 亚洲国产高清在线| 国产精品资源网| 精品欧美一区二区在线观看| 视频一区中文字幕| 欧美午夜一区二区三区免费大片| 一色桃子久久精品亚洲| 国产精品一品二品| 久久精品一区蜜桃臀影院| 久久国产精品第一页| 欧美一级黄色录像| 五月婷婷久久丁香| 欧美精选一区二区| 亚洲一区二区三区精品在线| 91美女在线看| 亚洲精品一卡二卡| 色又黄又爽网站www久久| 亚洲色图19p| 色婷婷久久久久swag精品| 亚洲人一二三区| 91浏览器入口在线观看| 日韩伦理电影网| 91亚洲资源网| 亚洲影视在线播放| 欧美日韩激情在线| 免费高清在线一区| 精品国产一区二区三区av性色| 久久99久久99小草精品免视看| 精品国产成人在线影院| 久久99国产精品久久| 久久亚洲欧美国产精品乐播| 国产福利一区在线观看| 国产精品视频第一区| 97久久精品人人爽人人爽蜜臀| 亚洲欧洲99久久| 欧美体内she精高潮| 蜜臀91精品一区二区三区| www亚洲一区| 成人性生交大片免费看中文| 亚洲精品乱码久久久久久久久| 欧美天堂一区二区三区| 日本sm残虐另类| 精品国产乱码久久| 97久久久精品综合88久久| 亚洲午夜电影在线| 欧美大片国产精品| 成人午夜看片网址| 亚洲国产精品久久艾草纯爱 | 国产真实精品久久二三区| 国产精品全国免费观看高清| 色菇凉天天综合网| 麻豆成人91精品二区三区| 国产欧美一区二区精品婷婷|