首页 > 其他分享 >P3389 【模板】高斯消元法

P3389 【模板】高斯消元法

时间:2024-01-25 11:33:06浏览次数:30  
标签:int double 高斯消 模板 P3389 元法

#include<bits/stdc++.h>
using namespace std;
double max(double a,double b)
{
	if(a>=b) return a;
	if(a<b) return b;
}
int n;
double a[1010][1010];
double a1[1010][1010];
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=n+1;j++)
		{
			scanf("%lf",&a[i][j]);
		}
	}
	for(int i=1;i<=n;i++)
	{
		int maxx=-INT_MAX,l;
		for(int j=i;j<=n;j++)
		{
			if(abs(a[j][i])>maxx)
			{
				maxx=abs(a[j][i]);
				l=j;
			}
		} 
		for(int k=1;k<=n+1;k++)
		{
			swap(a[i][k],a[l][k]);
		}
		if(a[i][i]==0)
		{
			cout<<"No Solution"<<endl;
			return 0;
		}
		for(int j=i+1;j<=n+1;++j)
		{
			a[i][j]/=a[i][i];
		} 
		a[i][i]=1;
		for(int j=i+1;j<=n;j++)
		{
			a1[j][i]=a[j][i];
		} 
		for(int j=i+1;j<=n;++j)
		{
            for(int k=i;k<=n+1;++k)
			{
            	a[j][k]-=a[i][k]*a1[j][i];
			} 
        }
	}
	for(int i=n-1;i>=1;i--)
	{
		for(int j=i+1;j<=n;j++)
		{
			a[i][n+1]-=a[i][j]*a[j][n+1];
		}
	}
    for(int i=1;i<=n;++i)
	{
		printf("%.2f\n",a[i][n+1]);
	} 
	return 0;
}

标签:int,double,高斯消,模板,P3389,元法
From: https://www.cnblogs.com/wenzhihao2023/p/17986802

相关文章

  • 一次线性方程组 高斯消元笔记
    高斯消元原理高斯消元用来解如下形式的方程组:\[\begin{cases}a_{1,1}x_1+a_{1,2}x_2+\cdots+a_{1,n}x_n=b_1\\a_{2,1}x_1+a_{2,2}x_2+\cdots+a_{2,n}x_n=b_2\\\cdots\\a_{n,1}x_1+a_{n,2}x_2+\cdots+a_{n,n}x_n=b_n\end{cases......
  • 高斯消元
    高斯消元设有n个未知数m个方程的线性方程组\[\begin{cases}a_{11}x_{1}+a_{12}x_{2}+\dots+a_{1n}x{n}=b_{1}\\a_{21}x_{1}+a_{22}x_{2}+\dots+a_{2n}x{n}=b_2\\\dots\dots\\a_{m1}x_1+a_{m2}x_{2}+\dots+a_{mn}x_{n}=b_m\end{cases}\]其中\(a_{ij}\)是第i个方程的第......
  • 高斯消元
    作用解线性方程组,将其系数和常数放在矩阵中,利用加减消元,得到一个倒三角,反着代入计算即可。double型可以选最大的一行交换,减少误差。异或型可以bitset优化,加减变^,乘除变&。稀疏矩阵可以手动代入消元,减少计算量。Link......
  • 2023.11.8 高斯消元记录
    2021ICPC沈阳I题https://link.zhihu.com/?target=https%3A//ac.nowcoder.com/acm/contest/24346/I2020ICPC济南A题https://ac.nowcoder.com/acm/contest/10662/A高斯消元只要构造出增广矩阵,求解就很简单了.对本题来说,矩阵乘开后,新矩阵的列向量,就是B*C的列向量.......
  • 高斯消元
    问题求解线性方程组算法思想高斯消元法的实现主要分为两种,一种是普通的高斯消元,将系数矩阵消为上三角矩阵,再一步步回代求出所有未知数;第二种是高斯-约旦消元法,将系数矩阵消为对角矩阵,不需要回代即可直接解出未知数,这里展示第二种做法。代码实现例题:P3389【模板】高斯消元法......
  • 浅谈高斯消元法
    2023.6.16:发布2023.8.29:修缮,加上自己觉得通俗易懂的理解,更新矩阵求逆。高斯消元高斯消元可以用于线性方程组求解或者行列式计算,求矩阵的逆等等,也算是比较基础的一个思想。消元法定义消元法是将方程组中的一方程的未知数用含有另一未知数的代数式表示,并将其带入到另一方程中,......
  • 【学习笔记】简单数论-高斯消元与线性空间
    友情提示本博客内部分内容因缺乏样例,可能晦涩难懂,建议参考蓝书或者数论小白都能看懂的线性方程组及其解法。线性方程组线性方程组是由\(M\)个\(N\)元一次方程共同构成的。线性方程组的所有系数可以写成一个\(M\)行\(N\)列的系数矩阵,再加上每个方程等号右侧的常数,可......
  • 高斯消去法python代码
    高斯消去法实现多元线性方程组求解1.流程概述高斯消去法(GaussianElimination)是一种用于求解多元线性方程组的常用方法。它通过将方程组表示为增广矩阵的形式,然后进行一系列的行变换,将增广矩阵转化为上三角矩阵,最后利用回代法求解方程组。以下是高斯消去法的流程:步骤操作......
  • 高斯消元法
    高斯消元法-约当消元法\(m\)个一次方程,\(n\)个变量,可以得到\(m\)行\(n+1\)列的增广矩阵将增广矩阵通过行初等变换为行最简形我们观察增广矩阵,线性方程组的解有\(3\)种情况唯一解有无穷多组解无解高斯-约旦消元法,是高斯消元法的一种,消元的结果是一个简化阶梯矩阵、消......
  • 高斯消元法求线性方程组
    高斯消元法作用可以快速求解n元线性方程组:\[\begin{cases}a_{11}x_1+a_{12}x_2+a_{13}x_3+\dots+a_{1n}x_n=b_1\\a_{21}x_1+a_{22}x_2+a_{23}x_3+\dots+a_{2n}x_n=b_2\\\dots\\a_{n1}x_1+a_{n2}x_2+a_{n3}x_3+\dots+a_{nn}x_{n}=b_n\\\end{cases}\]思路利用线性代数......