亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
粉嫩av一区二区三区在线播放 | 国产综合久久久久久鬼色| 在线免费观看日韩欧美| 亚洲精品亚洲人成人网| 欧美性欧美巨大黑白大战| 亚洲丝袜制服诱惑| 在线观看欧美日本| 视频在线在亚洲| 欧美videos大乳护士334| 国产一区二区三区在线观看免费 | 色综合天天做天天爱| 丝袜亚洲精品中文字幕一区| 制服视频三区第一页精品| 日本91福利区| 国产色综合一区| 在线视频一区二区三区| 老鸭窝一区二区久久精品| 国产婷婷一区二区| 欧洲亚洲精品在线| 激情久久五月天| 亚洲天堂a在线| 日韩欧美色综合| 99re视频这里只有精品| 日精品一区二区三区| 国产一区二区三区视频在线播放| 成人污视频在线观看| 欧美日韩国产系列| 中文字幕欧美区| 日韩av一二三| 91久久人澡人人添人人爽欧美 | 91免费看片在线观看| 久久这里都是精品| 亚洲乱码国产乱码精品精的特点 | 亚洲女性喷水在线观看一区| 在线观看欧美精品| 国产美女精品在线| 亚洲高清中文字幕| 国产欧美日韩视频一区二区| 欧美性大战久久久久久久蜜臀| 国产精品一区2区| 亚洲一区二区精品3399| 国产无遮挡一区二区三区毛片日本| 在线观看视频一区二区| 国产黄色91视频| 美国十次了思思久久精品导航| 日韩一区中文字幕| 久久影院电视剧免费观看| 欧美性感一区二区三区| 99精品国产热久久91蜜凸| 国产在线精品一区二区夜色| 亚洲成人免费在线| 亚洲色图制服丝袜| 国产精品免费av| 久久一区二区三区四区| 3d成人h动漫网站入口| 91电影在线观看| 99久久99久久精品免费观看| 韩国精品免费视频| 欧美96一区二区免费视频| 一区二区免费在线| 亚洲情趣在线观看| 欧美怡红院视频| 成人午夜大片免费观看| 国内成+人亚洲+欧美+综合在线| 亚洲国产精品一区二区久久| 最新高清无码专区| 国产精品二三区| 国产精品二三区| 国产精品电影一区二区| 国产精品天美传媒| 国产女主播在线一区二区| 久久久久久久久岛国免费| 日韩欧美电影一区| 精品久久久久久无| 欧美v国产在线一区二区三区| 日韩欧美一级特黄在线播放| 日韩精品一区二区三区四区| 91精品免费在线| 日韩精品中文字幕一区二区三区| 欧美丰满嫩嫩电影| 91麻豆精品91久久久久同性| 欧美区一区二区三区| 91 com成人网| 欧美一区二区三区不卡| 欧美www视频| 日本一区二区三区四区在线视频 | 久久久国际精品| 久久免费视频一区| 国产精品午夜免费| 亚洲人成精品久久久久| 亚洲18影院在线观看| 日韩精品午夜视频| 蜜臀a∨国产成人精品| 国产一区不卡视频| 本田岬高潮一区二区三区| 91免费版在线| 69久久99精品久久久久婷婷| 日韩精品一区在线| 欧美激情一区在线| 夜夜精品视频一区二区| 久久精品国内一区二区三区| 国产精品一区二区免费不卡 | 51精品久久久久久久蜜臀| 欧美不卡一区二区三区四区| 日本一区二区三区在线不卡| 亚洲情趣在线观看| 免费精品99久久国产综合精品| 久久99日本精品| av色综合久久天堂av综合| 欧美性大战xxxxx久久久| 精品国产乱码91久久久久久网站| 国产精品久久三| 五月婷婷欧美视频| 97国产一区二区| 欧美一区二区二区| 亚洲欧洲美洲综合色网| 日韩av不卡在线观看| 国产1区2区3区精品美女| 欧美人体做爰大胆视频| 久久久影视传媒| 亚洲国产日产av| 国产精品18久久久久久久久| 91蜜桃免费观看视频| 日韩女优制服丝袜电影| 亚洲三级在线播放| 狠狠色狠狠色综合| 欧美日韩精品一区二区在线播放| 久久人人超碰精品| 午夜久久久久久久久| av电影在线观看完整版一区二区| 91精品婷婷国产综合久久竹菊| 欧美极品另类videosde| 欧美aaaaa成人免费观看视频| 91丨九色丨尤物| 国产亚洲成aⅴ人片在线观看 | 日本一区二区高清| 美女久久久精品| 91福利在线观看| 国产精品美女一区二区三区| 极品尤物av久久免费看| 7777精品伊人久久久大香线蕉的| 中文字幕日韩av资源站| 国产乱国产乱300精品| 欧美三级韩国三级日本一级| 国产日韩精品一区二区三区 | 国产欧美视频一区二区三区| 亚洲成人av中文| 色婷婷国产精品久久包臀| 国产女主播视频一区二区| 国产主播一区二区三区| 欧美日韩一区二区在线观看视频 | 欧美性videosxxxxx| 亚洲国产电影在线观看| 国产精品一二三区| 精品久久久久99| 久久99精品久久久| 日韩一区二区三区视频在线观看| 亚洲一级二级在线| 91亚洲精品久久久蜜桃| 国产精品视频一区二区三区不卡| 国产一区二区在线视频| 26uuu国产在线精品一区二区| 免费黄网站欧美| 精品免费视频.| 久久99精品国产.久久久久| 欧美zozo另类异族| 精品一区二区三区免费毛片爱| 日韩精品一区二区三区视频在线观看 | a在线播放不卡| 中文字幕色av一区二区三区| 99久久精品免费看| 中文字幕亚洲在| 色综合久久天天| 亚洲综合色噜噜狠狠| 色婷婷av一区二区三区软件 | 国产成人午夜精品影院观看视频| 久久久久久97三级| 日韩视频一区在线观看| 欧美午夜理伦三级在线观看| 亚洲成a人v欧美综合天堂 | 91美女在线观看| 亚洲一二三区在线观看| 欧美久久久一区| 六月丁香婷婷久久| 国产日韩欧美精品在线| 99re热这里只有精品免费视频| 亚洲精品水蜜桃| 欧美一区在线视频| 国产一区在线看| 国产精品久久久久久久久晋中 | 亚洲视频香蕉人妖| 欧美日韩aaa| 精品亚洲成a人| 综合激情成人伊人| 欧美日韩激情一区| 国产一区二区在线看| 亚洲免费视频中文字幕| 日韩一区和二区| 丰满亚洲少妇av| 亚洲福利国产精品|