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

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

?? lequations.cs

?? 使用C#編輯的一些矩陣運算的源程序
?? CS
?? 第 1 頁 / 共 3 頁
字號:
			{ 
				pDataConst[j]=pDataConst[j]/pDataCoef[0];
				for (i=1; i<=n-1; i++)
				{ 
					u=i*n+i; 
					v=i*m+j;
					for (k=1; k<=i; k++)
						pDataConst[v]=pDataConst[v]-pDataCoef[(k-1)*n+i]*pDataConst[(k-1)*m+j];
					pDataConst[v]=pDataConst[v]/pDataCoef[u];
				}
			}
	    
			for (j=0; j<=m-1; j++)
			{ 
				u=(n-1)*m+j;
				pDataConst[u]=pDataConst[u]/pDataCoef[n*n-1];
				for (k=n-1; k>=1; k--)
				{ 
					u=(k-1)*m+j;
					for (i=k; i<=n-1; i++)
					{ 
						v=(k-1)*n+i;
						pDataConst[u]=pDataConst[u]-pDataCoef[v]*pDataConst[i*m+j];
					}
	            
					v=(k-1)*n+k-1;
					pDataConst[u]=pDataConst[u]/pDataCoef[v];
				}
			}
	    
			return true;
		}

		/**
		 * 求解大型稀疏方程組的全選主元高斯-約去消去法
		 * 
		 * @param mtxResult - CMatrix引用對象,返回方程組解矩陣
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGgje(Matrix mtxResult)
		{ 
			int i,j,k,nIs=0,u,v;
			double d,t;
	    
			// 方程組屬性,將常數矩陣賦給解矩陣
			Matrix mtxCoef = new Matrix(mtxLECoef);
			mtxResult.SetValue(mtxLEConst);
			int n = mtxCoef.GetNumColumns();
			double[] pDataCoef = mtxCoef.GetData();
			double[] pDataConst = mtxResult.GetData();

			// 臨時緩沖區,存放變換的列數
			int[] pnJs = new int[n];

			// 消元
			for (k=0; k<=n-1; k++)
			{ 
				d=0.0;
				for (i=k; i<=n-1; i++)
				{
					for (j=k; j<=n-1; j++)
					{ 
						t=Math.Abs(pDataCoef[i*n+j]);
						if (t>d) 
						{
							d=t; 
							pnJs[k]=j; 
							nIs=i;
						}
					}
				}

				if (d == 0.0)
				{
					return false;
				}

				if (nIs!=k)
				{ 
					for (j=k; j<=n-1; j++)
					{ 
						u=k*n+j; 
						v=nIs*n+j;
						t=pDataCoef[u]; 
						pDataCoef[u]=pDataCoef[v]; 
						pDataCoef[v]=t;
					}
	            
					t=pDataConst[k]; 
					pDataConst[k]=pDataConst[nIs]; 
					pDataConst[nIs]=t;
				}
	        
				if (pnJs[k]!=k)
				{
					for (i=0; i<=n-1; i++)
					{ 
						u=i*n+k; 
						v=i*n+pnJs[k];
						t=pDataCoef[u]; 
						pDataCoef[u]=pDataCoef[v]; 
						pDataCoef[v]=t;
					}
				}

				t=pDataCoef[k*n+k];
				for (j=k+1; j<=n-1; j++)
				{ 
					u=k*n+j;
					if (pDataCoef[u]!=0.0) 
						pDataCoef[u]=pDataCoef[u]/t;
				}
	        
				pDataConst[k]=pDataConst[k]/t;
				for (j=k+1; j<=n-1; j++)
				{ 
					u=k*n+j;
					if (pDataCoef[u]!=0.0)
					{ 
						for (i=0; i<=n-1; i++)
						{ 
							v=i*n+k;
							if ((i!=k)&&(pDataCoef[v]!=0.0))
							{ 
								nIs=i*n+j;
								pDataCoef[nIs]=pDataCoef[nIs]-pDataCoef[v]*pDataCoef[u];
							}
						}
					}
				}
	        
				for (i=0; i<=n-1; i++)
				{ 
					u=i*n+k;
					if ((i!=k)&&(pDataCoef[u]!=0.0))
						pDataConst[i]=pDataConst[i]-pDataCoef[u]*pDataConst[k];
				}
			}
	    
			// 調整
			for (k=n-1; k>=0; k--)
			{
				if (k!=pnJs[k])
				{ 
					t=pDataConst[k]; 
					pDataConst[k]=pDataConst[pnJs[k]]; 
					pDataConst[pnJs[k]]=t;
				}
			}

			return true;
		}

		/**
		 * 求解托伯利茲方程組的列文遜方法
		 * 
		 * @param mtxResult - CMatrix引用對象,返回方程組解矩陣
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetTlvs(Matrix mtxResult)
		{ 
			int i,j,k;
			double a,beta,q,c,h;

			// 未知數個數
			int n = mtxLECoef.GetNumColumns();

			// 初始化解解向量
			mtxResult.Init(n, 1);
			double[] x = mtxResult.GetData();

			// 常數數組
			double[] pDataConst = mtxLEConst.GetData();

			// 建立T數組
			double[] t = new double[n];

			// 構造T數組
			for (i=0; i<n; ++i)
				t[i] = mtxLECoef.GetElement(0, i);

			// 臨時數組
			double[] s = new double[n];
			double[] y = new double[n];

			// 非托伯利茲方程組,不能用本方法求解
			a=t[0];
			if (a == 0.0)
			{ 
				return false;
			}

			// 列文遜方法求解
			y[0]=1.0; 
			x[0]=pDataConst[0]/a;
			for (k=1; k<=n-1; k++)
			{ 
				beta=0.0; 
				q=0.0;
				for (j=0; j<=k-1; j++)
				{ 
					beta=beta+y[j]*t[j+1];
					q=q+x[j]*t[k-j];
				}
	        
				if (a == 0.0)
				{ 
					return false;
				}

				c=-beta/a; 
				s[0]=c*y[k-1]; 
				y[k]=y[k-1];
				if (k!=1)
				{
					for (i=1; i<=k-1; i++)
						s[i]=y[i-1]+c*y[k-i-1];
				}

				a=a+c*beta;
				if (a == 0.0)
				{ 
					return false;
				}

				h=(pDataConst[k]-q)/a;
				for (i=0; i<=k-1; i++)
				{ 
					x[i]=x[i]+h*s[i]; 
					y[i]=s[i];
				}
	        
				x[k]=h*y[k];
			}
	    
			return true;
		}

		/**
		 * 高斯-賽德爾迭代法
		 *  
		 * @param mtxResult - CMatrix引用對象,返回方程組解矩陣
		 * @param eps - 控制精度
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGaussSeidel(Matrix mtxResult, double eps)
		{ 
			int i,j,u,v;
			double p,t,s,q;

			// 未知數個數
			int n = mtxLECoef.GetNumColumns();

			// 初始化解向量
			mtxResult.Init(n, 1);
			double[] x = mtxResult.GetData();

			// 系數與常數
			double[] pDataCoef = mtxLECoef.GetData();
			double[] pDataConst = mtxLEConst.GetData();
	    
			// 求解
			for (i=0; i<=n-1; i++)
			{ 
				u=i*n+i; 
				p=0.0; 
				x[i]=0.0;
				for (j=0; j<=n-1; j++)
				{
					if (i!=j)
					{ 
						v=i*n+j; 
						p=p+Math.Abs(pDataCoef[v]);
					}
				}

				if (p>=Math.Abs(pDataCoef[u]))
					return false;
			}

			// 精度控制
			p=eps+1.0;
			while (p>=eps)
			{ 
				p=0.0;
				for (i=0; i<=n-1; i++)
				{ 
					t=x[i]; 
					s=0.0;
					for (j=0; j<=n-1; j++)
						if (j!=i) 
							s=s+pDataCoef[i*n+j]*x[j];

					x[i]=(pDataConst[i]-s)/pDataCoef[i*n+i];
					q=Math.Abs(x[i]-t)/(1.0+Math.Abs(x[i]));
					if (q>p) 
						p=q;
				}
			}
	    
			return true;
		}

		/**
		 * 求解對稱正定方程組的共軛梯度法
		 * 
		 * @param mtxResult - CMatrix引用對象,返回方程組解矩陣
		 * @param eps - 控制精度
		 */
		public void GetRootsetGrad(Matrix mtxResult, double eps)
		{ 
			int i,k;
			double alpha,beta,d,e;

			// 未知數個數
			int n = GetNumUnknowns();

			// 初始化解向量
			mtxResult.Init(n, 1);
			double[] x = mtxResult.GetData();

			// 構造臨時矩陣
			Matrix mtxP = new Matrix(n, 1);
			double[] p = mtxP.GetData();

			double[] pDataCoef = mtxLECoef.GetData();
			double[] pDataConst = mtxLEConst.GetData();

			double[] r = new double[n];

			for (i=0; i<=n-1; i++)
			{ 
				x[i]=0.0; 
				p[i]=pDataConst[i]; 
				r[i]=pDataConst[i]; 
			}
	    
			i=0;
			while (i<=n-1)
			{ 
				Matrix mtxS = mtxLECoef.Multiply(mtxP);
				double[] s = mtxS.GetData();
	        
				d=0.0; 
				e=0.0;
				for (k=0; k<=n-1; k++)
				{ 
					d=d+p[k]*pDataConst[k]; 
					e=e+p[k]*s[k]; 
				}
	        
				alpha=d/e;
				for (k=0; k<=n-1; k++)
					x[k]=x[k]+alpha*p[k];
	        
				Matrix mtxQ = mtxLECoef.Multiply(mtxResult);
				double[] q = mtxQ.GetData();
	        
				d=0.0;
				for (k=0; k<=n-1; k++)
				{ 
					r[k]=pDataConst[k]-q[k]; 
					d=d+r[k]*s[k]; 
				}
	        
				beta=d/e; d=0.0;
				for (k=0; k<=n-1; k++) 
					d=d+r[k]*r[k];
	        
				// 滿足精度,求解結束
				d=Math.Sqrt(d);
				if (d<eps)
					break;

				for (k=0; k<=n-1; k++)
					p[k]=r[k]-beta*p[k];
	        
				i=i+1;
			}
		}

		/**
		 * 求解線性最小二乘問題的豪斯荷爾德變換法
		 * 
		 * @param mtxResult - Matrix對象,返回方程組解矩陣
		 * @param mtxQ - Matrix對象,返回豪斯荷爾德變換的Q矩陣
		 * @param mtxR - Matrix對象,返回豪斯荷爾德變換的R矩陣
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetMqr(Matrix mtxResult, Matrix mtxQ, Matrix mtxR)
		{ 
			int i,j;
			double d;

			// 方程組的方程數和未知數個數
			int m = mtxLECoef.GetNumRows();
			int n = mtxLECoef.GetNumColumns();
			// 奇異方程組
			if (m < n)
				return false;

			// 將解向量初始化為常數向量
			mtxResult.SetValue(mtxLEConst);
			double[] pDataConst = mtxResult.GetData();

			// 構造臨時矩陣,用于QR分解
			mtxR.SetValue(mtxLECoef);
			double[] pDataCoef = mtxR.GetData();

			// QR分解
			if (! mtxR.SplitQR(mtxQ))
				return false;

			// 臨時緩沖區
			double[] c = new double[n];
			double[] q = mtxQ.GetData();

			// 求解
			for (i=0; i<=n-1; i++)
			{ 
				d=0.0;
				for (j=0; j<=m-1; j++)
					d=d+q[j*m+i]*pDataConst[j];
	    
				c[i]=d;
			}
	    
			pDataConst[n-1]=c[n-1]/pDataCoef[n*n-1];
			for (i=n-2; i>=0; i--)
			{ 
				d=0.0;
				for (j=i+1; j<=n-1; j++)
					d=d+pDataCoef[i*n+j]*pDataConst[j];
	        
				pDataConst[i]=(c[i]-d)/pDataCoef[i*n+i];
			}
	    
			return true;
		}

		/**
		 * 求解線性最小二乘問題的廣義逆法
		 * 
		 * @param mtxResult - Matrix對象,返回方程組解矩陣
		 * @param mtxAP - Matrix對象,返回系數矩陣的廣義逆矩陣
		 * @param mtxU - Matrix對象,返回U矩陣
		 * @param mtxV - Matrix對象,返回V矩陣
		 * @param eps - 控制精度
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGinv(Matrix mtxResult, Matrix mtxAP, Matrix mtxU, Matrix mtxV, double eps)
		{ 
			int i,j;
	    
			// 方程個數和未知數個數
			int m = mtxLECoef.GetNumRows();
			int n = mtxLECoef.GetNumColumns();

			// 初始化解向量
			mtxResult.Init(n, 1);

			double[] pDataConst = mtxLEConst.GetData();
			double[] x = mtxResult.GetData();

			// 臨時矩陣
			Matrix mtxA = new Matrix(mtxLECoef);

			// 求廣義逆矩陣
			if (! mtxA.InvertUV(mtxAP, mtxU, mtxV, eps))
				return false;

			double[] pAPData = mtxAP.GetData();

			// 求解
			for (i=0; i<=n-1; i++)
			{ 
				x[i]=0.0;
				for (j=0; j<=m-1; j++)
					x[i]=x[i]+pAPData[i*m+j]*pDataConst[j];
			}
	    
			return true;
		}

		/**
		 * 
		 * @param mtxResult - Matrix對象,返回方程組解矩陣
		 * @param nMaxIt - 疊加次數
		 * @param eps - 控制精度
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetMorbid(Matrix mtxResult, int nMaxIt /*= 60*/, double eps)
		{ 
			int i, k;
			double q, qq;
	    
			// 方程的階數
			int n = GetNumUnknowns();

			// 設定迭代次數, 缺省為60
			i = nMaxIt;
	    
			// 用全選主元高斯消元法求解
			LEquations leqs = new LEquations(mtxLECoef, mtxLEConst);
			if (! leqs.GetRootsetGauss(mtxResult))
				return false;
			double[] x = mtxResult.GetData();
	    
			q=1.0+eps;
			while (q>=eps)
			{ 
				// 迭代次數已達最大值,仍為求得結果,求解失敗
				if (i==0)
					return false;
	        
				// 迭代次數減1
				i=i-1;
			
				// 矩陣運算
				Matrix mtxE = mtxLECoef.Multiply(mtxResult);
				Matrix mtxR = mtxLEConst.Subtract(mtxE);

				// 用全選主元高斯消元法求解
				leqs = new LEquations(mtxLECoef, mtxR);
				Matrix mtxRR = new Matrix();
				if (! leqs.GetRootsetGauss(mtxRR))
					return false;

				double[] r = mtxRR.GetData();
	        
				q=0.0;
				for ( k=0; k<=n-1; k++)
				{ 
					qq=Math.Abs(r[k])/(1.0+Math.Abs(x[k]+r[k]));
					if (qq>q) 
						q=qq;
				}
	        
				for ( k=0; k<=n-1; k++) 
					x[k]=x[k]+r[k];

			}
	    
			// 求解成功
			return true;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕精品在线不卡| 六月丁香婷婷久久| 久热成人在线视频| 色悠悠亚洲一区二区| 日韩欧美123| 一级做a爱片久久| 国产在线不卡一区| 欧美精品日韩精品| 亚洲免费av高清| 高清不卡一区二区在线| 91精品国产色综合久久ai换脸| 国产精品国产三级国产普通话三级| 男女男精品视频| 欧美调教femdomvk| 亚洲黄色尤物视频| 成人av网站在线| 亚洲国产精品黑人久久久| 久久 天天综合| 日韩美女天天操| 青椒成人免费视频| 91 com成人网| 视频一区二区三区中文字幕| 91搞黄在线观看| 中文字幕亚洲欧美在线不卡| 成人黄色av网站在线| 国产亚洲一区二区三区在线观看| 免费观看久久久4p| 日韩视频免费观看高清完整版在线观看| 亚洲免费av网站| 欧美色精品在线视频| 一区二区成人在线| 欧美日韩三级在线| 天天色天天操综合| 欧美一区二区三区影视| 日韩电影免费在线观看网站| 欧美浪妇xxxx高跟鞋交| 婷婷成人综合网| 精品少妇一区二区三区免费观看 | 久久97超碰色| 欧美一级在线视频| 精品综合久久久久久8888| 亚洲精品一区二区三区蜜桃下载| 麻豆91免费看| 久久免费视频一区| 懂色av一区二区在线播放| 国产精品欧美经典| 韩国av一区二区三区在线观看| 日韩欧美一卡二卡| 成人午夜又粗又硬又大| 亚洲欧洲国产日韩| 欧美色老头old∨ideo| 免费观看成人鲁鲁鲁鲁鲁视频| 久久久蜜臀国产一区二区| 岛国精品在线观看| 一区二区三区四区在线免费观看 | 久久夜色精品国产噜噜av| 国产成人精品aa毛片| 日韩码欧中文字| 欧美男女性生活在线直播观看| 久久99国产精品尤物| 国产精品蜜臀在线观看| 欧美日韩激情一区| 国产成人免费视频网站| 亚洲综合成人在线| 欧美大片在线观看一区二区| 国产91精品露脸国语对白| 一区二区在线看| 欧美精品一区二区蜜臀亚洲| 99精品视频中文字幕| 日韩精品免费专区| 中国av一区二区三区| 69堂国产成人免费视频| av色综合久久天堂av综合| 亚洲第一激情av| 国产女同互慰高潮91漫画| 欧美人与性动xxxx| 91免费在线看| 九色综合狠狠综合久久| 亚洲制服欧美中文字幕中文字幕| 精品久久人人做人人爰| 色香蕉成人二区免费| 韩国毛片一区二区三区| 亚洲国产一区二区视频| 国产欧美日韩麻豆91| 91精品久久久久久蜜臀| 91在线小视频| 成人一区二区三区视频在线观看 | 亚洲黄色小说网站| 日本一区二区视频在线观看| 91精品国产一区二区人妖| 成人高清伦理免费影院在线观看| 麻豆精品视频在线观看视频| 亚洲国产aⅴ成人精品无吗| 国产精品灌醉下药二区| 久久午夜色播影院免费高清| 欧美一级片免费看| 在线免费精品视频| 色综合久久九月婷婷色综合| 粉嫩av一区二区三区在线播放 | 91精品国产欧美一区二区成人| 国产精品美女久久福利网站| 国产三级欧美三级日产三级99| 欧美日韩亚洲国产综合| 日本韩国精品在线| 97se亚洲国产综合自在线观| 成人av先锋影音| 成人免费视频一区| 丁香啪啪综合成人亚洲小说| 韩国女主播一区| 国产毛片精品视频| 国产在线观看免费一区| 国产一区二区精品在线观看| 国产精品一区二区免费不卡 | 国产成人av福利| 国产综合色在线| 极品销魂美女一区二区三区| 奇米影视在线99精品| 久久精品国产亚洲aⅴ| 精品一区二区三区免费视频| 狂野欧美性猛交blacked| 婷婷开心久久网| 免费成人在线视频观看| 美女视频一区二区三区| 国内一区二区视频| 国产精品99精品久久免费| 国产mv日韩mv欧美| 91视视频在线直接观看在线看网页在线看| 国产v综合v亚洲欧| 成人aa视频在线观看| 一本到三区不卡视频| 欧洲生活片亚洲生活在线观看| 在线免费av一区| 欧美狂野另类xxxxoooo| 欧美精品一区二区三区在线 | 欧美国产综合一区二区| 国产三级三级三级精品8ⅰ区| 国产精品传媒视频| 亚洲影视在线播放| 精品一二三四在线| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩免费电影| 久久午夜免费电影| 亚洲欧美怡红院| 日本伊人色综合网| 成人在线综合网| 欧美裸体bbwbbwbbw| 国产日产亚洲精品系列| 亚洲一区二区三区影院| 激情综合网av| 色香色香欲天天天影视综合网| 欧美老人xxxx18| 中文字幕欧美激情| 丝袜美腿亚洲一区| 春色校园综合激情亚洲| 欧美三级乱人伦电影| 国产亚洲婷婷免费| 午夜日韩在线观看| 成人aa视频在线观看| 精品捆绑美女sm三区| 亚洲另类中文字| 国产真实精品久久二三区| 在线欧美小视频| 国产偷v国产偷v亚洲高清| 一区二区在线看| 国产精品一区二区果冻传媒| 欧美人与禽zozo性伦| 日韩一区日韩二区| 国产一区在线精品| 欧美色图免费看| 国产精品福利在线播放| 激情小说欧美图片| 欧美高清视频不卡网| 亚洲婷婷国产精品电影人久久| 久久国产精品第一页| 精品视频在线免费| 亚洲精品亚洲人成人网| 国产黄色91视频| 日韩情涩欧美日韩视频| 亚洲福利视频一区| 91丨九色丨尤物| 中文字幕精品在线不卡| 国产一区二区电影| 精品国产乱码久久久久久久| 奇米888四色在线精品| 色婷婷av一区二区三区gif| 国产午夜久久久久| 韩国女主播成人在线| 欧美一级精品大片| 青草av.久久免费一区| 91精品国产麻豆国产自产在线| 一级日本不卡的影视| 在线观看视频一区二区欧美日韩| 国产日韩欧美激情| 粉嫩欧美一区二区三区高清影视| ww亚洲ww在线观看国产| 狠狠色综合色综合网络| 欧美va在线播放| 国产酒店精品激情| 欧美韩国日本综合| 91性感美女视频|