IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> C#,高斯消元法与列主元消元法的源代码及数据动态可视化 -> 正文阅读

[数据结构与算法]C#,高斯消元法与列主元消元法的源代码及数据动态可视化

高斯消元法!

一、高斯消元法 Gaussian?Elimination

高斯消元法(或译:高斯消去法),是线性代数中的一个常用算法,常用于求解线性方程组和矩阵的逆。

本程序的运行效果:

1、高斯消元法的动画演示

2、高斯列主元消元法的动画演示

列主元素消去法是为控制舍入误差而提出来的一种算法,列主元素消去法计算基本上能控制舍入误差的影响,其基本思想是:在进行第 k(k=1,2,...,n-1)步消元时,从第k列的 akk及其以下的各元素中选取绝对值最大的元素,然后通过行变换将它交换到主元素akk的位置上,再进行消元。

?

做良心程序员,0积分下载源程序:


二、高斯消元法的实用价值

1、求解线性方程组

废话。

2、求逆矩阵(矩阵的逆)


高斯消元法可以用来找出一个可逆矩阵的逆矩阵。设A 为一个N * N的矩阵,其逆矩阵可被两个分块矩阵表示出来。将一个N * N单位矩阵 放在A 的右手边,形成一个N * 2N的分块矩阵B = [A,I] 。经过高斯消元法的计算程序后,矩阵B 的左手边会变成一个单位矩阵I ,而逆矩阵A ^(-1) 会出现在B 的右手边。
假如高斯消元法不能将A 化为三角形的格式,那就代表A 是一个不可逆的矩阵。
应用上,高斯消元法极少被用来求出逆矩阵。高斯消元法通常只为线性方程组求解。

3、求矩阵的秩

高斯消元法可应用在任何m * n的矩阵A。在不可减去某数的情况下,我们都只有跳到下一行。以一个6 * 9的矩阵作例,它可以变化为一个行梯阵式:

1 * 0 0 * * 0 * 0
0 0 1 0 * * 0 * 0
0 0 0 1 * * 0 * 0
0 0 0 0 0 0 1 * 0
0 0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0 0

而矩阵中的 *' 是一些数字。这个梯阵式的矩阵T 会有一些关于A的资讯:
A 的秩是5,因为T 有5行非0的行;
A 的列的向量空间,可从A 的第1、3、4、7和9列中得知,其数值在矩阵T 之中;
矩阵中的 *' 表示了A 的列可怎样写为列中的数的组合。

三、高斯消元法与列主元消元法的代码

1、高斯消元法的C#源代码

/// <summary>
/// 高斯消去法求解线性方程组
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static Matrix Gaussian_Elimination(Matrix a)
{
	Matrix x = new Matrix(a.Row, 1);

	//消元计算  
	for (int k = 0; k <= a.Row - 2; k++)
	{
		for (int i = k + 1; i <= a.Row - 1; i++)
		{
			double lik = a[i, k] / a[k, k];
			for (int j = k + 1; j <= a.Row; j++)
			{
				a[i, j] = a[i, j] - lik * a[k, j];
			}
			a[i, k] = 0.0;
		}
	}

	//回代求解  
	for (int i = a.Row - 1; i >= 0; i--)
	{
		double sum = 0;
		for (int j = i + 1; j <= a.Row - 1; j++)
		{
			sum = sum + a[i, j] * x[j];
		}
		x[i] = (a[i, a.Row] - sum) / a[i, i];
	}

	return x;
}


2、高斯列主元消元法的C#源代码

/// <summary>
/// 列主元高斯消去法求解线性方程组
/// </summary>
/// <param name="a"></param>
/// <returns></returns>
public static Matrix Gaussian_Column_Principal_Elimination(Matrix a)
{
	Matrix x = new Matrix(a.Row, 1);

	for (int k = 0; k < a.Row - 1; k++)
	{
		//选主元[这一列的绝对值最大值]  
		int max_ik = 0;
		double ab_max = float.MinValue;
		for (int i = k; i < a.Column - 1; i++)
		{
			if (System.Math.Abs(a[i, k]) > ab_max)
			{
				ab_max = System.Math.Abs(a[i, k]);
				max_ik = i;
			}
		}

		if (ab_max < float.Epsilon)
		{
			throw new Exception("除0!");
		}
		else if (max_ik != k)
		{
			slides.Add(Slide(a, x, a, max_ik, k, 1));

			// 交换  
			for (int j = 0; j < a.Column; j++)
			{
				double temp = a[max_ik, j];
				a[max_ik, j] = a[k, j];
				a[k, j] = temp;
			}
		}

		//消元计算  
		for (int i = k + 1; i < a.Row; i++)
		{
			double kk = a[i, k] / a[k, k];
			for (int j = k; j < a.Column; j++)
			{
				a[i, j] -= kk * a[k, j];
			}
		}

		if (System.Math.Abs(a[a.Row - 1, a.Row - 1]) < float.Epsilon)
		{
			throw new Exception("除0!");
		}

	}

	// 回代求解 
	for (int i = a.Row - 1; i >= 0; i--)
	{
		x[i] = a[i, a.Column - 1];
		for (int j = i + 1; j < a.Column - 1; j++)
		{
			x[i] -= a[i, j] * x[j];
		}
		x[i] /= a[i, i];
	}

	return x;
}


3、动画显示源代码

暂略,赞加。:)


四、高斯消元法的性能

1、高斯消元法的算法复杂度

高斯消元法的算法复杂度是O(N^3);这就是说,如果系数矩阵的是N ×N,那么高斯消元法所需要的计算量大约与N^3成比例。

2、高斯消元法的局限性


高斯消元法可用在任何域中。
高斯消元法对于一些矩阵来说是稳定的。
对于普遍的矩阵来说,高斯消元法在应用上通常也是稳定的,不过亦有例外。

除0!

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-07 22:56:50  更:2022-04-07 22:59:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 9:27:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码