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

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

?? matrix.cs

?? 使用C#編輯的一些矩陣運(yùn)算的源程序
?? CS
?? 第 1 頁 / 共 5 頁
字號(hào):
					det=0.0; 
					return(det);
				}
	        
				if (nis!=k)
				{ 
					f=-f;
					for (j=k; j<=numColumns-1; j++)
					{ 
						u=k*numColumns+j; 
						v=nis*numColumns+j;
						d=elements[u]; 
						elements[u]=elements[v]; 
						elements[v]=d;
					}
				}
	        
				if (js!=k)
				{ 
					f=-f;
					for (i=k; i<=numColumns-1; i++)
					{
						u=i*numColumns+js; 
						v=i*numColumns+k;
						d=elements[u]; 
						elements[u]=elements[v]; 
						elements[v]=d;
					}
				}

				l=k*numColumns+k;
				det=det*elements[l];
				for (i=k+1; i<=numColumns-1; i++)
				{ 
					d=elements[i*numColumns+k]/elements[l];
					for (j=k+1; j<=numColumns-1; j++)
					{ 
						u=i*numColumns+j;
						elements[u]=elements[u]-d*elements[k*numColumns+j];
					}
				}
			}
	    
			// 求值
			det=f*det*elements[numColumns*numColumns-1];

			return(det);
		}

		/**
		 * 求矩陣秩的全選主元高斯消去法
		 * 
		 * @return int型,矩陣的秩
		 */
		public int ComputeRankGauss()
		{ 
			int i,j,k,nn,nis = 0,js = 0,l,ll,u,v;
			double q,d;
	    
			// 秩小于等于行列數(shù)
			nn = numRows;
			if (numRows >= numColumns) 
				nn = numColumns;

			k=0;

			// 消元求解
			for (l=0; l<=nn-1; l++)
			{ 
				q=0.0;
				for (i=l; i<=numRows-1; i++)
				{
					for (j=l; j<=numColumns-1; j++)
					{ 
						ll=i*numColumns+j; 
						d=Math.Abs(elements[ll]);
						if (d>q) 
						{ 
							q=d; 
							nis=i; 
							js=j;
						}
					}
				}

				if (q == 0.0) 
					return(k);

				k=k+1;
				if (nis!=l)
				{ 
					for (j=l; j<=numColumns-1; j++)
					{ 
						u=l*numColumns+j; 
						v=nis*numColumns+j;
						d=elements[u]; 
						elements[u]=elements[v]; 
						elements[v]=d;
					}
				}
				if (js!=l)
				{ 
					for (i=l; i<=numRows-1; i++)
					{ 
						u=i*numColumns+js; 
						v=i*numColumns+l;
						d=elements[u]; 
						elements[u]=elements[v]; 
						elements[v]=d;
					}
				}
	        
				ll=l*numColumns+l;
				for (i=l+1; i<=numColumns-1; i++)
				{ 
					d=elements[i*numColumns+l]/elements[ll];
					for (j=l+1; j<=numColumns-1; j++)
					{ 
						u=i*numColumns+j;
						elements[u]=elements[u]-d*elements[l*numColumns+j];
					}
				}
			}
	    
			return(k);
		}

		/**
		 * 對(duì)稱正定矩陣的喬里斯基分解與行列式的求值
		 * 
		 * @param realDetValue - 返回行列式的值
		 * @return bool型,求解是否成功
		 */
		public bool ComputeDetCholesky(ref double realDetValue)
		{ 
			int i,j,k,u,l;
			double d;
	    
			// 不滿足求解要求
			if (elements[0] <= 0.0)
				return false;

			// 喬里斯基分解

			elements[0]=Math.Sqrt(elements[0]);
			d=elements[0];

			for (i=1; i<=numColumns-1; i++)
			{ 
				u=i*numColumns; 
				elements[u]=elements[u]/elements[0];
			}
	    
			for (j=1; j<=numColumns-1; j++)
			{ 
				l=j*numColumns+j;
				for (k=0; k<=j-1; k++)
				{ 
					u=j*numColumns+k; 
					elements[l]=elements[l]-elements[u]*elements[u];
				}
	        
				if (elements[l] <= 0.0)
					return false;

				elements[l]=Math.Sqrt(elements[l]);
				d=d*elements[l];
	        
				for (i=j+1; i<=numColumns-1; i++)
				{ 
					u=i*numColumns+j;
					for (k=0; k<=j-1; k++)
						elements[u]=elements[u]-elements[i*numColumns+k]*elements[j*numColumns+k];
	            
					elements[u]=elements[u]/elements[l];
				}
			}
	    
			// 行列式求值
			realDetValue=d*d;
		
			// 下三角矩陣
			for (i=0; i<=numColumns-2; i++)
				for (j=i+1; j<=numColumns-1; j++)
					elements[i*numColumns+j]=0.0;

			return true;
		}

		/**
		 * 矩陣的三角分解,分解成功后,原矩陣將成為Q矩陣
		 * 
		 * @param mtxL - 返回分解后的L矩陣
		 * @param mtxU - 返回分解后的U矩陣
		 * @return bool型,求解是否成功
		 */
		public bool SplitLU(Matrix mtxL, Matrix mtxU)
		{ 
			int i,j,k,w,v,ll;
	    
			// 初始化結(jié)果矩陣
			if (! mtxL.Init(numColumns, numColumns) ||
				! mtxU.Init(numColumns, numColumns))
				return false;

			for (k=0; k<=numColumns-2; k++)
			{ 
				ll=k*numColumns+k;
				if (elements[ll] == 0.0)
					return false;

				for (i=k+1; i<=numColumns-1; i++)
				{ 
					w=i*numColumns+k; 
					elements[w]=elements[w]/elements[ll];
				}

				for (i=k+1; i<=numColumns-1; i++)
				{ 
					w=i*numColumns+k;
					for (j=k+1; j<=numColumns-1; j++)
					{ 
						v=i*numColumns+j;
						elements[v]=elements[v]-elements[w]*elements[k*numColumns+j];
					}
				}
			}
	    
			for (i=0; i<=numColumns-1; i++)
			{
				for (j=0; j<i; j++)
				{ 
					w=i*numColumns+j; 
					mtxL.elements[w]=elements[w]; 
					mtxU.elements[w]=0.0;
				}

				w=i*numColumns+i;
				mtxL.elements[w]=1.0; 
				mtxU.elements[w]=elements[w];
	        
				for (j=i+1; j<=numColumns-1; j++)
				{ 
					w=i*numColumns+j; 
					mtxL.elements[w]=0.0; 
					mtxU.elements[w]=elements[w];
				}
			}

			return true;
		}

		/**
		 * 一般實(shí)矩陣的QR分解,分解成功后,原矩陣將成為R矩陣
		 * 
		 * @param mtxQ - 返回分解后的Q矩陣
		 * @return bool型,求解是否成功
		 */
		public bool SplitQR(Matrix mtxQ)
		{ 
			int i,j,k,l,nn,p,jj;
			double u,alpha,w,t;
	    
			if (numRows < numColumns)
				return false;

			// 初始化Q矩陣
			if (! mtxQ.Init(numRows, numRows))
				return false;

			// 對(duì)角線元素單位化
			for (i=0; i<=numRows-1; i++)
			{
				for (j=0; j<=numRows-1; j++)
				{ 
					l=i*numRows+j; 
					mtxQ.elements[l]=0.0;
					if (i==j) 
						mtxQ.elements[l]=1.0;
				}
			}

			// 開始分解

			nn=numColumns;
			if (numRows == numColumns) 
				nn=numRows-1;

			for (k=0; k<=nn-1; k++)
			{ 
				u=0.0; 
				l=k*numColumns+k;
				for (i=k; i<=numRows-1; i++)
				{ 
					w=Math.Abs(elements[i*numColumns+k]);
					if (w>u) 
						u=w;
				}
	        
				alpha=0.0;
				for (i=k; i<=numRows-1; i++)
				{ 
					t=elements[i*numColumns+k]/u; 
					alpha=alpha+t*t;
				}

				if (elements[l]>0.0) 
					u=-u;

				alpha=u*Math.Sqrt(alpha);
				if (alpha == 0.0)
					return false;

				u=Math.Sqrt(2.0*alpha*(alpha-elements[l]));
				if ((u+1.0)!=1.0)
				{ 
					elements[l]=(elements[l]-alpha)/u;
					for (i=k+1; i<=numRows-1; i++)
					{ 
						p=i*numColumns+k; 
						elements[p]=elements[p]/u;
					}
	            
					for (j=0; j<=numRows-1; j++)
					{ 
						t=0.0;
						for (jj=k; jj<=numRows-1; jj++)
							t=t+elements[jj*numColumns+k]*mtxQ.elements[jj*numRows+j];

						for (i=k; i<=numRows-1; i++)
						{ 
							p=i*numRows+j; 
							mtxQ.elements[p]=mtxQ.elements[p]-2.0*t*elements[i*numColumns+k];
						}
					}
	            
					for (j=k+1; j<=numColumns-1; j++)
					{ 
						t=0.0;
	                
						for (jj=k; jj<=numRows-1; jj++)
							t=t+elements[jj*numColumns+k]*elements[jj*numColumns+j];
	                
						for (i=k; i<=numRows-1; i++)
						{ 
							p=i*numColumns+j; 
							elements[p]=elements[p]-2.0*t*elements[i*numColumns+k];
						}
					}
	            
					elements[l]=alpha;
					for (i=k+1; i<=numRows-1; i++)
						elements[i*numColumns+k]=0.0;
				}
			}
	    
			// 調(diào)整元素
			for (i=0; i<=numRows-2; i++)
			{
				for (j=i+1; j<=numRows-1;j++)
				{ 
					p=i*numRows+j; 
					l=j*numRows+i;
					t=mtxQ.elements[p]; 
					mtxQ.elements[p]=mtxQ.elements[l]; 
					mtxQ.elements[l]=t;
				}
			}

			return true;
		}

		/**
		 * 一般實(shí)矩陣的奇異值分解,分解成功后,原矩陣對(duì)角線元素就是矩陣的奇異值
		 * 
		 * @param mtxU - 返回分解后的U矩陣
		 * @param mtxV - 返回分解后的V矩陣
		 * @param eps - 計(jì)算精度
		 * @return bool型,求解是否成功
		 */
		public bool SplitUV(Matrix mtxU, Matrix mtxV, double eps)
		{ 
			int i,j,k,l,it,ll,kk,ix,iy,mm,nn,iz,m1,ks;
			double d,dd,t,sm,sm1,em1,sk,ek,b,c,shh;
			double[] fg = new double[2];
			double[] cs = new double[2];

			int m = numRows;
			int n = numColumns;

			// 初始化U, V矩陣
			if (! mtxU.Init(m, m) || ! mtxV.Init(n, n))
				return false;

			// 臨時(shí)緩沖區(qū)
			int ka = Math.Max(m, n) + 1;
			double[] s = new double[ka];
			double[] e = new double[ka];
			double[] w = new double[ka];

			// 指定迭代次數(shù)為60
			it=60; 
			k=n;

			if (m-1<n) 
				k=m-1;

			l=m;
			if (n-2<m) 
				l=n-2;
			if (l<0) 
				l=0;

			// 循環(huán)迭代計(jì)算
			ll=k;
			if (l>k) 
				ll=l;
			if (ll>=1)
			{ 
				for (kk=1; kk<=ll; kk++)
				{ 
					if (kk<=k)
					{ 
						d=0.0;
						for (i=kk; i<=m; i++)
						{ 
							ix=(i-1)*n+kk-1; 
							d=d+elements[ix]*elements[ix];
						}

						s[kk-1]=Math.Sqrt(d);
						if (s[kk-1]!=0.0)
						{ 
							ix=(kk-1)*n+kk-1;
							if (elements[ix]!=0.0)
							{ 
								s[kk-1]=Math.Abs(s[kk-1]);
								if (elements[ix]<0.0) 
									s[kk-1]=-s[kk-1];
							}
	                    
							for (i=kk; i<=m; i++)
							{ 
								iy=(i-1)*n+kk-1;
								elements[iy]=elements[iy]/s[kk-1];
							}
	                    
							elements[ix]=1.0+elements[ix];
						}
	                
						s[kk-1]=-s[kk-1];
					}
	            
					if (n>=kk+1)
					{ 
						for (j=kk+1; j<=n; j++)
						{ 
							if ((kk<=k)&&(s[kk-1]!=0.0))
							{ 
								d=0.0;
								for (i=kk; i<=m; i++)
								{ 
									ix=(i-1)*n+kk-1;
									iy=(i-1)*n+j-1;
									d=d+elements[ix]*elements[iy];
								}
	                        
								d=-d/elements[(kk-1)*n+kk-1];
								for (i=kk; i<=m; i++)
								{ 
									ix=(i-1)*n+j-1;
									iy=(i-1)*n+kk-1;
									elements[ix]=elements[ix]+d*elements[iy];
								}
							}
	                    
							e[j-1]=elements[(kk-1)*n+j-1];
						}
					}
	            
					if (kk<=k)
					{ 
						for (i=kk; i<=m; i++)
						{ 
							ix=(i-1)*m+kk-1; 
							iy=(i-1)*n+kk-1;
							mtxU.elements[ix]=elements[iy];
						}
					}
	            
					if (kk<=l)
					{ 
						d=0.0;
						for (i=kk+1; i<=n; i++)
							d=d+e[i-1]*e[i-1];
	                
						e[kk-1]=Math.Sqrt(d);
						if (e[kk-1]!=0.0)
						{ 
							if (e[kk]!=0.0)
							{ 
								e[kk-1]=Math.Abs(e[kk-1]);
								if (e[kk]<0.0) 
									e[kk-1]=-e[kk-1];
							}

							for (i=kk+1; i<=n; i++)
								e[i-1]=e[i-1]/e[kk-1];
	                    
							e[kk]=1.0+e[kk];
						}
	                
						e[kk-1]=-e[kk-1];
						if ((kk+1<=m)&& (e[kk-1]!=0.0))
						{ 
							for (i=kk+1; i<=m; i++) 
								w[i-1]=0.0;
	                    
							for (j=kk+1; j<=n; j++)
								for (i=kk+1; i<=m; i++)
									w[i-1]=w[i-1]+e[j-1]*elements[(i-1)*n+j-1];
	                    
							for (j=kk+1; j<=n; j++)
							{
								for (i=kk+1; i<=m; i++)
								{ 
									ix=(i-1)*n+j-1;
									elements[ix]=elements[ix]-w[i-1]*e[j-1]/e[kk];
								}
							}
						}
	                
						for (i=kk+1; i<=n; i++)
							mtxV.elements[(i-1)*n+kk-1]=e[i-1];
					}
				}
			}
	    
			mm=n;
			if (m+1<n) 
				mm=m+1;
			if (k<n) 
				s[k]=elements[k*n+k];
			if (m<mm) 
				s[mm-1]=0.0;
			if (l+1<mm) 
				e[l]=elements[l*n+mm-1];

			e[mm-1]=0.0;
			nn=m;
			if (m>n) 
				nn=n;
			if (nn>=k+1)
			{ 
				for (j=k+1; j<=nn; j++)
				{ 
					for (i=1; i<=m; i++)
						mtxU.elements[(i-1)*m+j-1]=0.0;
					mtxU.elements[(j-1)*m+j-1]=1.0;
				}
			}
	    
			if (k>=1)
			{ 
				for (ll=1; ll<=k; ll++)
				{ 
					kk=k-ll+1; 
					iz=(kk-1)*m+kk-1;
					if (s[kk-1]!=0.0)
					{ 
						if (nn>=kk+1)
						{
							for (j=kk+1; j<=nn; j++)
							{ 
								d=0.0;
								for (i=kk; i<=m; i++)
								{ 
									ix=(i-1)*m+kk-1;
									iy=(i-1)*m+j-1;
									d=d+mtxU.elements[ix]*mtxU.elements[iy]/mtxU.elements[iz];
								}

								d=-d;
								for (i=kk; i<=m; i++)
								{ 
									ix=(i-1)*m+j-1;
									iy=(i-1)*m+kk-1;
									mtxU.elements[ix]=mtxU.elements[ix]+d*mtxU.elements[iy];
								}
							}
						}
	                  
						for (i=kk; i<=m; i++)

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品国产露脸对白| 欧美在线制服丝袜| 亚洲综合视频网| 久久亚洲影视婷婷| 色婷婷久久久综合中文字幕| 极品美女销魂一区二区三区免费| 一区二区三区日韩欧美| 久久久久久久精| 欧美一区二区国产| 91美女精品福利| 国产精品综合在线视频| 午夜成人免费电影| 成人欧美一区二区三区1314| 精品久久久久久亚洲综合网 | 精品中文字幕一区二区| 日韩毛片精品高清免费| 久久婷婷国产综合精品青草| 在线观看91视频| 成人免费精品视频| 韩国一区二区视频| 日韩成人午夜精品| 一区二区三区精品视频在线| 国产精品久久久久aaaa| 久久精品亚洲国产奇米99| 制服丝袜亚洲色图| 欧洲精品中文字幕| 91在线观看下载| 丁香六月久久综合狠狠色| 久久精品国产精品青草| 天堂成人国产精品一区| 亚洲精品日韩一| 一区在线中文字幕| 欧美国产1区2区| 国产性色一区二区| 久久精品无码一区二区三区| 久久久噜噜噜久久人人看| 久久综合色播五月| 精品理论电影在线| 精品国产乱码久久久久久图片| 国产精品系列在线| 亚洲精品一区在线观看| 日韩免费一区二区| 欧美一区二区三区不卡| 91精品国产全国免费观看 | 久久众筹精品私拍模特| 日韩一区二区三区av| 91精品久久久久久久91蜜桃| 欧美久久久一区| 91精品国产综合久久精品app| 欧美另类videos死尸| 91精品免费观看| 欧美一区二区在线免费观看| 日韩一区二区三区视频| 精品国产自在久精品国产| 精品国产成人在线影院| 久久精品视频免费| 中文字幕一区二区5566日韩| 日韩理论片中文av| 亚洲综合色噜噜狠狠| 午夜视频一区二区| 日本欧美大码aⅴ在线播放| 亚洲国产精品久久人人爱| 久久综合九色综合欧美98| 欧美日韩一区国产| 国产成人午夜精品影院观看视频 | 欧美一区二区福利在线| 欧美一区二区三区四区在线观看| 美女视频黄久久| 日韩高清欧美激情| 日韩精品三区四区| 日韩av一区二区三区四区| 日本不卡中文字幕| 五月婷婷欧美视频| 五月激情丁香一区二区三区| 日韩高清不卡一区二区| 久久狠狠亚洲综合| 国产美女一区二区三区| 国内精品不卡在线| 国产剧情一区在线| www.视频一区| 在线观看亚洲成人| 欧美一卡2卡3卡4卡| 精品国产欧美一区二区| 中文字幕av免费专区久久| 亚洲国产精品高清| 亚洲精品一二三| 天堂久久久久va久久久久| 韩国v欧美v日本v亚洲v| 成人在线综合网| 欧美亚洲国产一区在线观看网站| 在线综合亚洲欧美在线视频| 欧美精品一区二区三| 怡红院av一区二区三区| 日韩精品一级二级 | 国产在线精品一区二区三区不卡| av激情综合网| 91 com成人网| 亚洲天堂久久久久久久| 日本欧美韩国一区三区| 一本色道久久综合狠狠躁的推荐| 欧美日韩精品一二三区| 亚洲bt欧美bt精品| 国产美女在线精品| 91精品国产综合久久小美女| 国产精品灌醉下药二区| 久久精品国产色蜜蜜麻豆| 97久久精品人人做人人爽50路| 日韩欧美亚洲国产另类| 日韩美女精品在线| 国产精品一二三在| 欧美视频一二三区| 中文字幕免费观看一区| 日韩精品电影一区亚洲| 不卡在线观看av| 欧美一区二区三区电影| 自拍偷自拍亚洲精品播放| 日韩av在线发布| 91麻豆福利精品推荐| 精品欧美一区二区久久| 亚洲一区二区综合| 成人激情开心网| 日韩精品在线看片z| 国产精品不卡一区二区三区| 国产精品一区久久久久| 欧美一区二区在线观看| 亚洲丝袜美腿综合| 国产91清纯白嫩初高中在线观看 | 国产精品久久一卡二卡| 美女视频第一区二区三区免费观看网站| 成人app软件下载大全免费| 精品日韩欧美一区二区| 午夜天堂影视香蕉久久| 91免费版pro下载短视频| 国产亚洲一本大道中文在线| 日日夜夜免费精品视频| 91色婷婷久久久久合中文| 欧美成人免费网站| 午夜精彩视频在线观看不卡| 在线观看一区二区视频| 亚洲色图欧美激情| 国产不卡视频一区| 国产亚洲欧美一级| 毛片av一区二区三区| 欧美高清视频www夜色资源网| 国产女人aaa级久久久级| 国产原创一区二区| 日韩一区二区三区在线视频| 日韩电影在线观看网站| 欧美日韩成人综合在线一区二区| 亚洲欧美aⅴ...| 色综合久久综合网| 中文字幕亚洲精品在线观看| 国产传媒欧美日韩成人| 日韩亚洲欧美在线| 国产做a爰片久久毛片| 精品国产乱码久久久久久蜜臀 | 亚洲国产精品久久不卡毛片| 在线观看视频欧美| 一级日本不卡的影视| 91福利在线看| 亚洲色图19p| 欧美人伦禁忌dvd放荡欲情| 天堂蜜桃一区二区三区| 欧美精品一区二区在线观看| 国产老妇另类xxxxx| 亚洲欧美激情视频在线观看一区二区三区| 91污在线观看| 免费日韩伦理电影| 久久一日本道色综合| 99精品偷自拍| 亚洲大片精品永久免费| 亚洲精品一线二线三线无人区| 国产精品18久久久久久vr| 麻豆国产精品777777在线| 日本一区二区三区在线观看| 成人av免费在线播放| 午夜欧美2019年伦理| 欧美日本韩国一区二区三区视频| 国内成人精品2018免费看| 中文一区二区在线观看| 欧美亚洲综合一区| 另类小说视频一区二区| 久久亚洲影视婷婷| 色综合视频一区二区三区高清| 亚洲一区二区三区爽爽爽爽爽| 欧美一级在线视频| 国产精品性做久久久久久| 国产精品高潮久久久久无| 欧美日韩一区 二区 三区 久久精品 | 亚洲主播在线播放| 欧美色图一区二区三区| 国产一区二区调教| 一区二区三区精品视频| 精品精品欲导航| 99久久精品免费看| 天天影视涩香欲综合网| 中文字幕的久久| 日韩一二三区视频| 色综合久久久久久久久| 久久97超碰色|