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

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

?? lequations.cs

?? 使用C#編輯的一些矩陣運算的源程序
?? CS
?? 第 1 頁 / 共 3 頁
字號:
/*
 * 求解線性方程組的類 LEquations
 * 
 * 周長發編制
 */

using System;

namespace CSharpAlgorithm.Algorithm
{

	/**
	 * 求解線性方程組的類 LEquations

	 * @author 周長發
	 * @version 1.0
	 */
	public class LEquations 
	{
		private Matrix	mtxLECoef;		// 系數矩陣
		private Matrix mtxLEConst;		// 常數矩陣

		/**
		 * 基本構造函數
		 */
		public LEquations()
		{
		}

		/**
		 * 指定系數和常數構造函數
		 * 
		 * @param mtxCoef - 指定的系數矩陣
		 * @param mtxConst - 指定的常數矩陣
		 */
		public LEquations(Matrix mtxCoef, Matrix mtxConst)
		{
			Init(mtxCoef, mtxConst);
		}

		/**
		 * 初始化函數
		 * 
		 * @param mtxCoef - 指定的系數矩陣
		 * @param mtxConst - 指定的常數矩陣
		 * @return bool 型,初始化是否成功
		 */
		public bool Init(Matrix mtxCoef, Matrix mtxConst)
		{
			if (mtxCoef.GetNumRows() != mtxConst.GetNumRows())
				return false;

			mtxLECoef = new Matrix(mtxCoef);
			mtxLEConst = new Matrix(mtxConst);

			return true;
		}

		/**
		 * 獲取系數矩陣
		 * 
		 * @return Matrix 型,返回系數矩陣
		 */
		public Matrix GetCoefMatrix()
		{
			return mtxLECoef;
		}

		/**
		 * 獲取常數矩陣
		 * 
		 * @return Matrix 型,返回系數矩陣
		 */
		public Matrix GetConstMatrix()
		{
			return mtxLEConst;
		}

		/**
		 * 獲取方程個數
		 * 
		 * @return int 型,返回方程組方程的個數
		 */
		public int GetNumEquations()
		{
			return GetCoefMatrix().GetNumRows();
		}

		/**
		 * 獲取未知數個數
		 * 
		 * @return int 型,返回方程組未知數的個數
		 */
		public int GetNumUnknowns()
		{
			return GetCoefMatrix().GetNumColumns();
		}

		/**
		 * 全選主元高斯消去法
		 * 
		 * @param mtxResult - Matrix對象,返回方程組的解
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGauss(Matrix mtxResult)
		{ 
			int l,k,i,j,nIs=0,p,q;
			double d,t;

			// 方程組的屬性,將常數矩陣賦給解矩陣
			mtxResult.SetValue(mtxLEConst);
			double[] pDataCoef = mtxLECoef.GetData();
			double[] pDataConst = mtxResult.GetData();
			int n = GetNumUnknowns();

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

			// 消元
			l=1;
			for (k=0;k<=n-2;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) 
					l=0;
				else
				{ 
					if (pnJs[k]!=k)
					{
						for (i=0;i<=n-1;i++)
						{ 
							p=i*n+k; 
							q=i*n+pnJs[k];
							t=pDataCoef[p]; 
							pDataCoef[p]=pDataCoef[q]; 
							pDataCoef[q]=t;
						}
					}

					if (nIs!=k)
					{ 
						for (j=k;j<=n-1;j++)
						{ 
							p=k*n+j; 
							q=nIs*n+j;
							t=pDataCoef[p]; 
							pDataCoef[p]=pDataCoef[q]; 
							pDataCoef[q]=t;
						}
	                
						t=pDataConst[k]; 
						pDataConst[k]=pDataConst[nIs]; 
						pDataConst[nIs]=t;
					}
				}
	        
				// 求解失敗
				if (l==0)
				{ 
					return false;
				}
	        
				d=pDataCoef[k*n+k];
				for (j=k+1;j<=n-1;j++)
				{ 
					p=k*n+j; 
					pDataCoef[p]=pDataCoef[p]/d;
				}
	        
				pDataConst[k]=pDataConst[k]/d;
				for (i=k+1;i<=n-1;i++)
				{ 
					for (j=k+1;j<=n-1;j++)
					{ 
						p=i*n+j;
						pDataCoef[p]=pDataCoef[p]-pDataCoef[i*n+k]*pDataCoef[k*n+j];
					}
	            
					pDataConst[i]=pDataConst[i]-pDataCoef[i*n+k]*pDataConst[k];
				}
			}
	    
			// 求解失敗
			d=pDataCoef[(n-1)*n+n-1];
			if (d == 0.0)
			{ 
				return false;
			}

			// 求解
			pDataConst[n-1]=pDataConst[n-1]/d;
			for (i=n-2;i>=0;i--)
			{ 
				t=0.0;
				for (j=i+1;j<=n-1;j++)
					t=t+pDataCoef[i*n+j]*pDataConst[j];
				pDataConst[i]=pDataConst[i]-t;
			}
	    
			// 調整解的位置
			pnJs[n-1]=n-1;
			for (k=n-1;k>=0;k--)
			{
				if (pnJs[k]!=k)
				{ 
					t=pDataConst[k]; 
					pDataConst[k]=pDataConst[pnJs[k]]; 
					pDataConst[pnJs[k]]=t;
				}
			}

			return true;
		}

		/**
		 * 全選主元高斯-約當消去法
		 * 
		 * @param mtxResult - Matrix對象,返回方程組的解
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGaussJordan(Matrix mtxResult)
		{ 
			int l,k,i,j,nIs=0,p,q;
			double d,t;

			// 方程組的屬性,將常數矩陣賦給解矩陣
			mtxResult.SetValue(mtxLEConst);
			double[] pDataCoef = mtxLECoef.GetData();
			double[] pDataConst = mtxResult.GetData();
			int n = GetNumUnknowns();
			int m = mtxLEConst.GetNumColumns();

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

			// 消元
			l=1;
			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+1.0==1.0) 
					l=0;
				else
				{ 
					if (pnJs[k]!=k)
					{
						for (i=0;i<=n-1;i++)
						{ 
							p=i*n+k; 
							q=i*n+pnJs[k];
							t=pDataCoef[p]; 
							pDataCoef[p]=pDataCoef[q]; 
							pDataCoef[q]=t;
						}
					}

					if (nIs!=k)
					{ 
						for (j=k;j<=n-1;j++)
						{ 
							p=k*n+j; 
							q=nIs*n+j;
							t=pDataCoef[p]; 
							pDataCoef[p]=pDataCoef[q]; 
							pDataCoef[q]=t;
						}
	                
						for (j=0;j<=m-1;j++)
						{ 
							p=k*m+j; 
							q=nIs*m+j;
							t=pDataConst[p]; 
							pDataConst[p]=pDataConst[q]; 
							pDataConst[q]=t;
						}
					}
				}
	        
				// 求解失敗
				if (l==0)
				{ 
					return false;
				}
	        
				d=pDataCoef[k*n+k];
				for (j=k+1;j<=n-1;j++)
				{ 
					p=k*n+j; 
					pDataCoef[p]=pDataCoef[p]/d;
				}
	        
				for (j=0;j<=m-1;j++)
				{ 
					p=k*m+j; 
					pDataConst[p]=pDataConst[p]/d;
				}
	        
				for (j=k+1;j<=n-1;j++)
				{
					for (i=0;i<=n-1;i++)
					{ 
						p=i*n+j;
						if (i!=k)
							pDataCoef[p]=pDataCoef[p]-pDataCoef[i*n+k]*pDataCoef[k*n+j];
					}
				}

				for (j=0;j<=m-1;j++)
				{
					for (i=0;i<=n-1;i++)
					{ 
						p=i*m+j;
						if (i!=k)
							pDataConst[p]=pDataConst[p]-pDataCoef[i*n+k]*pDataConst[k*m+j];
					}
				}
			}
	    
			// 調整
			for (k=n-1;k>=0;k--)
			{
				if (pnJs[k]!=k)
				{
					for (j=0;j<=m-1;j++)
					{ 
						p=k*m+j; 
						q=pnJs[k]*m+j;
						t=pDataConst[p]; 
						pDataConst[p]=pDataConst[q]; 
						pDataConst[q]=t;
					}
				}
			}

			return true;
		}

		/**
		 * 復系數方程組的全選主元高斯消去法
		 * 
		 * @param mtxCoefImag - 系數矩陣的虛部矩陣
		 * @param mtxConstImag - 常數矩陣的虛部矩陣
		 * @param mtxResult - Matrix對象,返回方程組解矩陣的實部矩陣
		 * @param mtxResultImag - Matrix對象,返回方程組解矩陣的虛部矩陣
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGauss(Matrix mtxCoefImag, Matrix mtxConstImag, Matrix mtxResult, Matrix mtxResultImag)
		{ 
			int l,k,i,j,nIs=0,u,v;
			double p,q,s,d;

			// 方程組的屬性,將常數矩陣賦給解矩陣
			mtxResult.SetValue(mtxLEConst);
			mtxResultImag.SetValue(mtxConstImag);
			double[] pDataCoef = mtxLECoef.GetData();
			double[] pDataConst = mtxResult.GetData();
			double[] pDataCoefImag = mtxCoefImag.GetData();
			double[] pDataConstImag = mtxResultImag.GetData();
			int n = GetNumUnknowns();
			int m = mtxLEConst.GetNumColumns();

			// 臨時緩沖區,存放變換的列數
			int[] pnJs = new int[n];
	    
			// 消元
			for (k=0;k<=n-2;k++)
			{ 
				d=0.0;
				for (i=k;i<=n-1;i++)
				{
					for (j=k;j<=n-1;j++)
					{ 
						u=i*n+j;
						p=pDataCoef[u]*pDataCoef[u]+pDataCoefImag[u]*pDataCoefImag[u];
						if (p>d) 
						{
							d=p;
							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;
						p=pDataCoef[u]; 
						pDataCoef[u]=pDataCoef[v]; 
						pDataCoef[v]=p;
						p=pDataCoefImag[u]; 
						pDataCoefImag[u]=pDataCoefImag[v]; 
						pDataCoefImag[v]=p;
					}
	            
					p=pDataConst[k]; 
					pDataConst[k]=pDataConst[nIs]; 
					pDataConst[nIs]=p;
					p=pDataConstImag[k]; 
					pDataConstImag[k]=pDataConstImag[nIs]; 
					pDataConstImag[nIs]=p;
				}
	        
				if (pnJs[k]!=k)
				{
					for (i=0;i<=n-1;i++)
					{ 
						u=i*n+k; 
						v=i*n+pnJs[k];
						p=pDataCoef[u]; 
						pDataCoef[u]=pDataCoef[v]; 
						pDataCoef[v]=p;
						p=pDataCoefImag[u]; 
						pDataCoefImag[u]=pDataCoefImag[v]; 
						pDataCoefImag[v]=p;
					}
				}

				v=k*n+k;
				for (j=k+1;j<=n-1;j++)
				{ 
					u=k*n+j;
					p=pDataCoef[u]*pDataCoef[v]; 
					q=-pDataCoefImag[u]*pDataCoefImag[v];
					s=(pDataCoef[v]-pDataCoefImag[v])*(pDataCoef[u]+pDataCoefImag[u]);
					pDataCoef[u]=(p-q)/d; 
					pDataCoefImag[u]=(s-p-q)/d;
				}
	        
				p=pDataConst[k]*pDataCoef[v]; 
				q=-pDataConstImag[k]*pDataCoefImag[v];
				s=(pDataCoef[v]-pDataCoefImag[v])*(pDataConst[k]+pDataConstImag[k]);
				pDataConst[k]=(p-q)/d; 
				pDataConstImag[k]=(s-p-q)/d;

				for (i=k+1;i<=n-1;i++)
				{ 
					u=i*n+k;
					for (j=k+1;j<=n-1;j++)
					{ 
						v=k*n+j; 
						l=i*n+j;
						p=pDataCoef[u]*pDataCoef[v]; 
						q=pDataCoefImag[u]*pDataCoefImag[v];
						s=(pDataCoef[u]+pDataCoefImag[u])*(pDataCoef[v]+pDataCoefImag[v]);
						pDataCoef[l]=pDataCoef[l]-p+q;
						pDataCoefImag[l]=pDataCoefImag[l]-s+p+q;
					}
	            
					p=pDataCoef[u]*pDataConst[k]; 
					q=pDataCoefImag[u]*pDataConstImag[k];
					s=(pDataCoef[u]+pDataCoefImag[u])*(pDataConst[k]+pDataConstImag[k]);
					pDataConst[i]=pDataConst[i]-p+q; 
					pDataConstImag[i]=pDataConstImag[i]-s+p+q;
				}
			}
	    
			u=(n-1)*n+n-1;
			d=pDataCoef[u]*pDataCoef[u]+pDataCoefImag[u]*pDataCoefImag[u];

			// 求解失敗
			if (d == 0.0)
			{
				return false;
			}

			// 求解
			p=pDataCoef[u]*pDataConst[n-1]; q=-pDataCoefImag[u]*pDataConstImag[n-1];
			s=(pDataCoef[u]-pDataCoefImag[u])*(pDataConst[n-1]+pDataConstImag[n-1]);
			pDataConst[n-1]=(p-q)/d; pDataConstImag[n-1]=(s-p-q)/d;

			for (i=n-2;i>=0;i--)
			{
				for (j=i+1;j<=n-1;j++)
				{ 
					u=i*n+j;
					p=pDataCoef[u]*pDataConst[j]; 
					q=pDataCoefImag[u]*pDataConstImag[j];
					s=(pDataCoef[u]+pDataCoefImag[u])*(pDataConst[j]+pDataConstImag[j]);
					pDataConst[i]=pDataConst[i]-p+q;
					pDataConstImag[i]=pDataConstImag[i]-s+p+q;
				}
			}

			// 調整位置
			pnJs[n-1]=n-1;
			for (k=n-1;k>=0;k--)
			{
				if (pnJs[k]!=k)
				{ 
					p=pDataConst[k]; 
					pDataConst[k]=pDataConst[pnJs[k]]; 
					pDataConst[pnJs[k]]=p;
					p=pDataConstImag[k]; 
					pDataConstImag[k]=pDataConstImag[pnJs[k]]; 
					pDataConstImag[pnJs[k]]=p;
				}
			}

			return true;
		}

		/**
		 * 復系數方程組的全選主元高斯-約當消去法
		 * 
		 * @param mtxCoefImag - 系數矩陣的虛部矩陣
		 * @param mtxConstImag - 常數矩陣的虛部矩陣
		 * @param mtxResult - Matrix對象,返回方程組解矩陣的實部矩陣
		 * @param mtxResultImag - Matrix對象,返回方程組解矩陣的虛部矩陣
		 * @return bool 型,方程組求解是否成功
		 */
		public bool GetRootsetGaussJordan(Matrix mtxCoefImag, Matrix mtxConstImag, Matrix mtxResult, Matrix mtxResultImag)
		{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美高清性hdvideosex| 久久久久97国产精华液好用吗| 成人性生交大合| 日本不卡不码高清免费观看| 国产精品麻豆一区二区| 久久久久久久久岛国免费| 制服丝袜av成人在线看| 欧美午夜不卡在线观看免费| 99国产麻豆精品| 成a人片国产精品| 国产高清亚洲一区| 国内精品在线播放| 亚洲国产aⅴ成人精品无吗| 亚洲欧美国产毛片在线| 亚洲欧洲av一区二区三区久久| 久久久精品日韩欧美| 欧美一二三四在线| 欧美精品久久久久久久多人混战| 日本精品免费观看高清观看| 99久久精品国产一区| 国产精品亚洲第一区在线暖暖韩国| 久久国产乱子精品免费女| 免费欧美在线视频| 奇米一区二区三区| 亚洲一区av在线| 五月婷婷色综合| 首页国产欧美日韩丝袜| 婷婷综合久久一区二区三区| 日韩国产精品久久| 麻豆精品久久久| 日本最新不卡在线| 天天综合色天天| 美国毛片一区二区三区| 精品亚洲免费视频| 国产精品18久久久久久久网站| 国产精品综合二区| 成人综合激情网| 成人97人人超碰人人99| 91成人国产精品| 欧美日韩精品欧美日韩精品一综合| 欧美精品高清视频| 日韩久久精品一区| 国产性色一区二区| 亚洲视频一区在线观看| 一区二区成人在线| 偷偷要91色婷婷| 久久99精品国产91久久来源| 麻豆精品国产传媒mv男同| 国产一区二区三区在线观看免费 | 97久久超碰国产精品| 91蜜桃婷婷狠狠久久综合9色| 欧美亚洲国产一卡| 欧美成人一区二区| 久久你懂得1024| 日韩美女视频一区二区| 五月综合激情日本mⅴ| 乱中年女人伦av一区二区| 国产福利一区二区三区视频在线 | 性感美女极品91精品| 蜜臀久久99精品久久久久宅男 | 亚洲国产高清aⅴ视频| 亚洲人被黑人高潮完整版| 日韩综合小视频| 岛国一区二区在线观看| 在线观看免费一区| 精品国产免费久久| 亚洲国产精品精华液2区45| 一区二区三区在线观看欧美| 精品一区在线看| 欧美日韩精品一区二区天天拍小说 | 亚洲一区二区三区四区中文字幕| 黑人精品欧美一区二区蜜桃| 欧美日韩亚洲不卡| 中文字幕五月欧美| 国产精品原创巨作av| 91精品国产综合久久国产大片| 国产精品伦理在线| 国产精品性做久久久久久| 日韩一区二区三区在线观看| 夜夜亚洲天天久久| aa级大片欧美| 久久精品亚洲国产奇米99| 久久国产精品免费| 欧美高清你懂得| 亚洲mv大片欧洲mv大片精品| 一本大道综合伊人精品热热 | 天天射综合影视| 欧美性感一区二区三区| 亚洲伦在线观看| 97久久久精品综合88久久| 欧美国产精品一区二区| 国产老妇另类xxxxx| 精品国产伦一区二区三区观看体验| 亚洲va韩国va欧美va| 欧美视频完全免费看| 亚洲精品大片www| 色婷婷av一区二区三区gif| 国产精品欧美精品| 成人免费视频一区| 国产精品―色哟哟| 成人性生交大片免费看中文网站| 国产欧美日韩亚州综合 | 欧美电影在哪看比较好| 天堂资源在线中文精品| 欧美精品三级在线观看| 午夜影院久久久| 欧美日韩在线三区| 天天做天天摸天天爽国产一区| 欧美精品在线一区二区三区| 午夜亚洲国产au精品一区二区| 欧美日韩一级二级| 偷拍亚洲欧洲综合| 日韩免费在线观看| 国产呦精品一区二区三区网站 | 国内精品久久久久影院色| 精品久久免费看| 国产盗摄女厕一区二区三区| 国产欧美精品区一区二区三区| av动漫一区二区| 亚洲综合小说图片| 欧美一二三四在线| 国产精品羞羞答答xxdd| 亚洲视频在线观看一区| 欧美色精品在线视频| 日本强好片久久久久久aaa| 日韩欧美的一区二区| 国产精品一卡二卡在线观看| 中文字幕中文字幕一区二区 | 日韩一区欧美一区| 在线观看国产一区二区| 青娱乐精品在线视频| 久久久久久久久久美女| 91同城在线观看| 天天色天天爱天天射综合| 精品粉嫩aⅴ一区二区三区四区| 懂色av一区二区夜夜嗨| 亚洲免费观看高清| 日韩欧美的一区二区| 成人精品免费视频| 亚洲va欧美va天堂v国产综合| 精品久久久网站| 99久久99精品久久久久久 | 欧美日韩精品系列| 国产一区二区按摩在线观看| 中文字幕一区二区在线观看| 欧美午夜精品一区二区三区| 韩国精品久久久| 亚洲欧美自拍偷拍色图| 欧美一区二区三区日韩| 成人av网址在线观看| 婷婷国产v国产偷v亚洲高清| 国产性天天综合网| 欧美日韩高清在线播放| 国产伦精一区二区三区| 亚洲精品视频一区二区| 欧美久久婷婷综合色| 国产精品自产自拍| 亚洲国产精品一区二区尤物区| 日韩精品影音先锋| 色婷婷精品久久二区二区蜜臂av | 麻豆一区二区三| 国产精品理论片| 日韩欧美精品在线| 色欧美日韩亚洲| 国产精品综合网| 首页国产欧美久久| 最新国产成人在线观看| 精品国产露脸精彩对白| 欧美三级韩国三级日本一级| 懂色av一区二区夜夜嗨| 美女一区二区三区| 亚洲综合视频在线观看| 夜夜嗨av一区二区三区| 欧美大尺度电影在线| 欧美自拍偷拍午夜视频| 成人毛片在线观看| 激情综合网最新| 日韩在线a电影| 亚洲狠狠丁香婷婷综合久久久| 国产欧美日韩在线视频| 日韩欧美一级精品久久| 欧美天堂亚洲电影院在线播放| 成人av电影免费在线播放| 国产在线精品一区二区夜色| 天堂va蜜桃一区二区三区漫画版| 亚洲欧洲av在线| 国产日产欧美一区二区三区| 欧美不卡123| 日韩欧美在线影院| 欧美精品高清视频| 欧美午夜影院一区| 在线亚洲免费视频| 99国产一区二区三精品乱码| 成人动漫在线一区| 国产成人亚洲综合a∨婷婷| 国产一区二区三区免费| 九九精品视频在线看| 精品一区二区三区视频| 久久成人久久鬼色| 久久电影网电视剧免费观看|