在实现了高斯消除

高斯消去的实现中使用的增广矩阵成上三角矩阵。然后从下迭代值。

详细是这里。

比方说,有一个线性方程组

然后。出来弄成一个2*2的矩阵,然后再把方程组中等号右边的常数项加进来。成为一个2*3的矩阵

这就是一个增广矩阵了。

接下来变成一个上三角矩阵,

从矩阵的第一行開始,一直到最后一行。

例如说如今面临的是第i行,

那么在i到最后一行,找到第i列数的绝对值最大的那行跟第i行换一个位置,这样交换是有优点的,就是当面对0的情况。哈哈。想一想

然后就用第i行開始把从i+1到最后一行的全部行进行消元操作。消元的目的是把i行之后的全部行的第i列变成0

最后,变成的就是一个上三角矩阵了

从下往上迭代求值就可以

假设不懂怎样迭代求值,打个草稿看看就好了

我的代码:

#include<iostream>
#include<map>
#include<string>
#include<cstring>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<queue>
#include<vector>
#include<algorithm>
using namespace std;
double gauss(double a[10][10],int n)
{
	int i,j,k,t;
	for(i=0;i<n;i++)
	{
		t=i;
		for(j=i+1;j<n;j++)
			if(fabs(a[j][i])>fabs(a[t][i]))
				t=j;
		if(t!=i)
			for(j=0;j<=n;j++)
				swap(a[i][j],a[t][j]);
		if(a[i][i]!=0)
			for(j=i+1;j<n;j++)
				for(k=n;k>=i;k--)
					a[j][k]-=a[j][i]/a[i][i]*a[i][k];
	}
	for(i=n-1;i>-1;i--)
	{
		for(j=i+1;j<n;j++)
			a[i][n]-=a[j][n]*a[i][j];
		a[i][n]/=a[i][i];
	}
}
int main()
{
	double a[10][10];
	int i,j,n;
	while(cin>>n)
	{
		for(i=0;i<n;i++)
			for(j=0;j<=n;j++)
				cin>>a[i][j];
		gauss(a,n);
		for(i=0;i<n;i++)
			cout<<a[i][n]<<" ";
		cout<<endl;
	}
}

版权声明:本文博客原创文章。博客,未经同意,不得转载。

时间: 2024-11-08 23:39:33

在实现了高斯消除的相关文章

学习 opencv---(7) 线性邻域滤波专场:方框滤波,均值滤波,高斯滤波

本篇文章中,我们一起仔细探讨了OpenCV图像处理技术中比较热门的图像滤波操作.图像滤波系列文章浅墨准备花两次更新的时间来讲,此为上篇,为大家剖析了"方框滤波","均值滤波","高斯滤波"三种常见的邻域滤波操作.而作为非线性滤波的"中值滤波"和"双边滤波",我们下次再分析. 因为文章很长,如果详细啃的话,或许会消化不良.在这里给大家一个指引,如果是单单想要掌握这篇文章中讲解的OpenCV线性滤波相关的三个函

[ACM] POJ 2947 Widget Factory (高斯消元)

Widget Factory Time Limit: 7000MS   Memory Limit: 65536K Total Submissions: 4436   Accepted: 1502 Description The widget factory produces several different kinds of widgets. Each widget is carefully built by a skilled widgeteer. The time required to

图像处理之基础---滤波器 高斯滤波

引用 keendawn 的 高斯(核)函数简介 1函数的基本概念 所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的标量函数. 通常定义为空间中任一点x到某一中心xc之间欧氏距离的单调函数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当x远离xc时函数取值很小.最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x-xc||^2/(2*σ)^2) } 其中xc为核函数中心,σ为函数的宽度参数 ,

详析数字图像中高斯模糊理论及实现

高斯模糊(英语:Gaussian Blur),也叫高斯平滑.是在Adobe Photoshop.GIMP以及Paint.NET等图像处理软件中广泛使用的处理效果,通经常使用它来降低图像噪声以及降低细节层次. 简单介绍:高斯模糊(Gaussian Blur)是美国Adobe图像软件公司开发的一个图像处理软件:Adobe Photoshop(系列)中的一个滤镜,详细的位置在:滤镜-模糊--高斯模糊! 高斯模糊的原理中,它是依据高斯曲线调节像素色值,它是有选择地模糊图像.说得直白一点,就是高斯模糊能够

【opencv学习笔记1】5种图像滤波辨析:方框、均值、高斯、中值、双边

图像滤波 什么是图像滤波 图像滤波,即在尽量保留图像细节特征的条件下对目标图像的噪声进行抑制,是图像预处理中不可缺少的操作,其处理效果的好坏将直接影响到后续图像处理和分析的有效性和可靠性. 图像滤波的目的 a.消除图像中混入的噪声 b.为图像识别抽取出图像特征 图像滤波的要求 a.不能损坏图像轮廓及边缘 b.图像视觉效果应当更好 滤波器的定义 滤波器,顾名思义,是对波进行过滤的器件.(摘自网络) 以上的定义是针对物理器件的,但对于图像滤波而言显然也是适用的. 大家都用过放大镜,这里就以此举一个例

【枚举】【高斯消元】Gym - 101412D - Find the Outlier

给你一个未知的d次多项式在0,1,...,d+2处的取值,其中有且只有一个是错的,问你哪个是错的. 枚举哪个是错的,再在剩下的d+2个中取d+1个高斯消元,解出多项式系数,然后代一下最后剩下的那个数看看是否合法,如果合法再看看那个错的是否真的错了. #include<cstdio> #include<cmath> #include<algorithm> #include<cstring> using namespace std; #define N 11 d

【BZOJ】1013: [JSOI2008]球形空间产生器sphere(高斯消元)

http://www.lydsy.com/JudgeOnline/problem.php?id=1013 只要列出方程组就能套高斯来解了. 显然距离相等,所以开不开平方都无所谓. b表示圆心,可列 sigma((x[i][j]-b[j])^2)=sigma((x[i+1][j]-b[j])^2) 化简得 sigma(2*b[j]*(x[i+1][j]-x[i][j]))=sigma(x[i+1][j]^2-x[i][j]^2) 然后就得到n个等式,而且题目保证有解,就套高斯就行了. 第一次学高斯

机器学习笔记(十)EM算法及实践(以混合高斯模型(GMM)为例来次完整的EM)

今天要来讨论的是EM算法.第一眼看到EM我就想到了我大枫哥,EM Master,千里马,RUA!!!不知道看这个博客的人有没有懂这个梗的.好的,言归正传,今天要讲的EM算法,全称是Expectation maximization,期望最大化.怎么个意思呢,就是给你一堆观测样本,让你给出这个模型的参数估计.我靠,这套路我们前面讨论各种回归的时候不是已经用烂了吗?求期望,求对数期望,求导为0,得到参数估计值,这套路我懂啊,MLE!但问题在于,如果这个问题存在中间的隐变量呢?会不会把我们的套路给带崩呢

深度理解高斯滤波器

1.高斯滤波器综述 高斯滤波器是一类根据高斯函数的形状来选择权值的线性平滑滤波器.高斯平滑滤波器对于抑制服从正态分布的噪声非常有效.一维零均值高斯函数为: g(x)=exp( -x^2/(2 sigma^2) 其中,高斯分布参数Sigma决定了高斯函数的宽度.对于图像处理来说,常用二维零均值离散高斯函数作平滑滤波器. 高斯函数具有五个重要的性质,这些性质使得它在早期图像处理中特别有用.这些性质表明,高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器,且在实际图像处理中得到了工程人员的