zoukankan      html  css  js  c++  java
  • 高斯消元

    高斯消元模板

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<cmath>
    using namespace std;
    const int maxn=201;
    typedef  double Matrix[maxn][maxn];
    void gauss(Matrix A,int n)             //消元过程 
    {
    	int i,j,k,r;
    	for(i=0;i<n;i++)
    	{
    		r=i;
    		for(j=i+1;j<n;j++)
    		if(fabs(A[j][i])>fabs(A[r][i]))   r=j;
    		if(r!=i)
    		for(j=0;j<=n;j++)
    		swap(A[r][j],A[i][j]);
    		for(j=n;j>=i;j--)
    		for(k=i+1;k<n;++k)
    		A[k][j]-=A[k][i]/A[i][i]*A[i][j];
    	}
    	for(i=n-1;i>=0;i--)
    	{
    		for(j=i+1;j<n;j++)
    		A[i][n]-=A[j][n]*A[i][j];
    		A[i][n]/=A[i][i];
    	}
    }
    Matrix A;
    int main()
    {
    	int n;
    	while(cin>>n)
    	{
    		for(int i=0;i<n;i++)
    		for(int j=0;j<=n;j++)
    		scanf("%lf",&A[i][j]);
    		gauss(A,n);
    		for(int i=0;i<n-1;i++)  //A[i][n]就是所求的解 
    		printf("%lf ",A[i][n]);
    		printf("%lf
    ",A[n-1][n]);
    	}
    	return 0;
    }



  • 相关阅读:
    hrbust1279
    U盘快捷方式中毒处理办法
    计算几何
    poj1113
    凸包模版
    STL容器
    HDU2048
    HDU2047
    HDU2045
    python面试题总结
  • 原文地址:https://www.cnblogs.com/wolf940509/p/6617124.html
Copyright © 2011-2022 走看看